bookmark.db
5 participantes
Página 4 de 8.
Página 4 de 8. • 1, 2, 3, 4, 5, 6, 7, 8
Re: bookmark.db
vic1972 escribió:Good morning George
Yes, very interesting.
One question, about that listing you get with what to seems to be like a dump of tParameter;
when do you exactly get?
Because i have this dump from a long time ago trace, but i have not been able to reproduce this dump;
do you always get this full dump after the interruption of a playing media?
Well, that is a good question, but I have to say that I don't know actually ...
This teeout listing is not new, it was created a couple of days ago but I returned to study it again just after the publishing your teeout2 in that forum. I remember that I tried to change values in bookmark.db and copy it to /tmp/ramfs/ for many times so that the complete tParameter dump could be a result of overwriting the db file in a "bad moment" so something like "recovery process" could take place to recover /tmp/ramfs/bookmark.db from /usr/local/etc/dvdplayer/bookmark.db (it could be connected with the fact, that 29 files have the same "candidate_time") ... but it is my guess only
In fact, this complete dump appeared for a once only. In normal situation there is a single line there (ie about the just current file whose playing was stopped/interrupted).
George2005- Mensajes : 112
Fecha de inscripción : 26/10/2010
Edad : 49
Localización : Olomouc - Czech Republic
Re: bookmark.db
ok
I new idea
is the use of triggers in the bookmark.db
In our current solution, the restart point is lost when looking for key the original filename.
Right now, i do not know how powerfull the triggers can be, and if they have string solutions,
but it will be very nice that the triggers do automatically two things:
1. duplicate the entry, so original file is not lost.
2. do the string replace from original to 0_RecentFile____.ts
I new idea
is the use of triggers in the bookmark.db
In our current solution, the restart point is lost when looking for key the original filename.
Right now, i do not know how powerfull the triggers can be, and if they have string solutions,
but it will be very nice that the triggers do automatically two things:
1. duplicate the entry, so original file is not lost.
2. do the string replace from original to 0_RecentFile____.ts
vic1972- Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga
Re: bookmark.db
vic1972 escribió:ok
I new idea
is the use of triggers in the bookmark.db
In our current solution, the restart point is lost when looking for key the original filename.
Right now, i do not know how powerfull the triggers can be, and if they have string solutions,
but it will be very nice that the triggers do automatically two things:
1. duplicate the entry, so original file is not lost.
2. do the string replace from original to 0_RecentFile____.ts
Wow! It sounds great !!!
I fact, I was not thinking about using database features like triggers for bookmark.db yet. But if it would work, it would be a very smart and clever solution. So I will try to find some information about triggering in sqlite ...
George2005- Mensajes : 112
Fecha de inscripción : 26/10/2010
Edad : 49
Localización : Olomouc - Czech Republic
Re: bookmark.db
Look at scheduling db. There is also a trigger to move ending of recording from EPG.George2005 escribió:
I fact, I was not thinking about using database features like triggers for bookmark.db yet. But if it would work, it would be a very smart and clever solution. So I will try to find some information about triggering in sqlite ...
Re: bookmark.db
Hello,
I have finished a very alpha development.
If you will like to test, do the habitual procedure.
bookmark.db is growing with the different 0_RecentFiles ....
I think we need a solution.
sqlite> select id,fKey from tParameter;
1|DB_VERSION
2|DB_DEVELOP_VERSION
3|SETUP_INIT
4|RESTORE_DEFAULT_FROM_DB
5|0m
6|0k
7|fileset:///tmp/ramfs/volumes/HDD ( Internal )/REC/0_RecentFile________________________.ts
8|1m
9|1k
10|fileset:///tmp/ramfs/volumes/HDD ( Internal )/REC/0_RecentFile________________________.ts
11|2m
12|2k
13|fileset:///tmp/ramfs/volumes/HDD ( Internal )/REC/Telediario 2º EdiciÓn 2011_20110114_2149.ts
14|3m
15|3k
16|fileset:///tmp/ramfs/volumes/HDD ( Internal )/REC/Vive La Via_20110113_1925.ts
sqlite>
I have finished a very alpha development.
If you will like to test, do the habitual procedure.
bookmark.db is growing with the different 0_RecentFiles ....
I think we need a solution.
sqlite> select id,fKey from tParameter;
1|DB_VERSION
2|DB_DEVELOP_VERSION
3|SETUP_INIT
4|RESTORE_DEFAULT_FROM_DB
5|0m
6|0k
7|fileset:///tmp/ramfs/volumes/HDD ( Internal )/REC/0_RecentFile________________________.ts
8|1m
9|1k
10|fileset:///tmp/ramfs/volumes/HDD ( Internal )/REC/0_RecentFile________________________.ts
11|2m
12|2k
13|fileset:///tmp/ramfs/volumes/HDD ( Internal )/REC/Telediario 2º EdiciÓn 2011_20110114_2149.ts
14|3m
15|3k
16|fileset:///tmp/ramfs/volumes/HDD ( Internal )/REC/Vive La Via_20110113_1925.ts
sqlite>
vic1972- Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga
Re: bookmark.db
vic1972 escribió:Hello,
I have finished a very alpha development.
If you will like to test, do the habitual procedure.
bookmark.db is growing with the different 0_RecentFiles ....
I think we need a solution.
sqlite> select id,fKey from tParameter;
1|DB_VERSION
2|DB_DEVELOP_VERSION
3|SETUP_INIT
4|RESTORE_DEFAULT_FROM_DB
5|0m
6|0k
7|fileset:///tmp/ramfs/volumes/HDD ( Internal )/REC/0_RecentFile________________________.ts
8|1m
9|1k
10|fileset:///tmp/ramfs/volumes/HDD ( Internal )/REC/0_RecentFile________________________.ts
11|2m
12|2k
13|fileset:///tmp/ramfs/volumes/HDD ( Internal )/REC/Telediario 2º EdiciÓn 2011_20110114_2149.ts
14|3m
15|3k
16|fileset:///tmp/ramfs/volumes/HDD ( Internal )/REC/Vive La Via_20110113_1925.ts
sqlite>
So I tested to use triggers and it seems that it works, actually Triggers update 1st row and 3rd row of RecentFile.ts by values from records of last played file just in the moment of its stopping/interrupting.
As the sqlite doesn't support variables, constants and regular expressions, the trigger codes seem quite weird As recursive triggers are not also supported, I learned that there is not needed to exclude triggering at the records of RecentFile.ts itself.
Btw: In this testing conditions I presume that the record for 0_RecentFile.ts already exists in the database but of course in real conditions it will be treated.
I was also thinking to create a new table (eg tHarmony) which could be used to store RecentFilePattern ('fileset%RecentFile.ts') or the IDs for RecentFile.ts records to avoid the necessity to use unsure constructions like "WHERE id = (SELECT id FROM tParameter WHERE fKey LIKE 'fileset%RecentFile.ts') - 2". The LastFullname record could also be placed into tHarmony table so the triggers could update it so it wouldn't be needed to parse DVDPlayer stdout to get the current last filename which we need to create a hardlink. And if we add the quite unique string (eg #&$HarmonyLastFullname$&#) to such filename you can find it in bookmark.db in binary form so you needn't use any sqlite tool ...
The mentioned triggers follow:
- Código:
CREATE TRIGGER "main"."Upd3rdRowByUPDATE" AFTER UPDATE ON tParameter WHEN old.fKey LIKE 'fileset%' BEGIN UPDATE tParameter SET fValue = new.fValue WHERE fKey LIKE 'fileset%RecentFile.ts'; END ;
CREATE TRIGGER "main"."Upd3rdRowByINSERT" AFTER INSERT ON tParameter WHEN new.fKey LIKE 'fileset%' BEGIN UPDATE tParameter SET fValue = new.fValue WHERE fKey LIKE 'fileset%RecentFile.ts'; END ;
CREATE TRIGGER "main"."Upd1stRowByUPDATE" AFTER UPDATE ON tParameter WHEN old.fKey LIKE '_m' OR old.fKey LIKE '__m' OR old.fKey LIKE '___m' BEGIN UPDATE tParameter SET fValue = new.fValue WHERE id = (SELECT id FROM tParameter WHERE fKey LIKE 'fileset%RecentFile.ts') - 2; END ;
CREATE TRIGGER "main"."Upd1stRowByINSERT" AFTER INSERT ON tParameter WHEN new.fKey LIKE '_m' OR new.fKey LIKE '__m' OR new.fKey LIKE '___m' BEGIN UPDATE tParameter SET fValue = new.fValue WHERE id = (SELECT id FROM tParameter WHERE fKey LIKE 'fileset%RecentFile.ts') - 2; END ;
George2005- Mensajes : 112
Fecha de inscripción : 26/10/2010
Edad : 49
Localización : Olomouc - Czech Republic
Re: bookmark.db
very good.
It seems we are approaching to the final solution.
For the moment, I think we have clear, that we want a unique resume file: 0_RecentFile.ts
We do not want different files 0_RecentFiles________.ts
It seems also clear, that we need an initial DB with record for 0_RecentFile.ts, already done:
http://dl.dropbox.com/u/684543/varios/ms450h/RePlay/bookmark.db_0_RecentFile
Your triggers seems nice, I will need to fully check.
Meanwhile I have also a brand new idea, with a question for you.
You know we have these 3 records per file( xxm, xxk, URI_filename with resume_blob):
which rows are compulsory to modify for the resume? only the third one (URI_filename)?
or we need second and third records to be modified?
I ask this because I think it might be also solved with a unique sql statement:
/tmp/hdd/root/custom/bin/sqlite3 query.sql
where query.sql in this file:
update tParameter set fValue=(select hex(fValue) from tParameter where fKey like '%Bob Esponja_20101128_1454.ts%') where fKey like '%0_RecentFile%';
Basically this will leave untouched the original played file, and update the blob with the right value for 0_RecentFile.ts
It seems we are approaching to the final solution.
For the moment, I think we have clear, that we want a unique resume file: 0_RecentFile.ts
We do not want different files 0_RecentFiles________.ts
It seems also clear, that we need an initial DB with record for 0_RecentFile.ts, already done:
http://dl.dropbox.com/u/684543/varios/ms450h/RePlay/bookmark.db_0_RecentFile
Your triggers seems nice, I will need to fully check.
Meanwhile I have also a brand new idea, with a question for you.
You know we have these 3 records per file( xxm, xxk, URI_filename with resume_blob):
which rows are compulsory to modify for the resume? only the third one (URI_filename)?
or we need second and third records to be modified?
I ask this because I think it might be also solved with a unique sql statement:
/tmp/hdd/root/custom/bin/sqlite3 query.sql
where query.sql in this file:
update tParameter set fValue=(select hex(fValue) from tParameter where fKey like '%Bob Esponja_20101128_1454.ts%') where fKey like '%0_RecentFile%';
Basically this will leave untouched the original played file, and update the blob with the right value for 0_RecentFile.ts
vic1972- Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga
Re: bookmark.db
vic1972 escribió: very good.
It seems we are approaching to the final solution.
For the moment, I think we have clear, that we want a unique resume file: 0_RecentFile.ts
We do not want different files 0_RecentFiles________.ts
It seems also clear, that we need an initial DB with record for 0_RecentFile.ts, already done:
http://dl.dropbox.com/u/684543/varios/ms450h/RePlay/bookmark.db_0_RecentFile
Your triggers seems nice, I will need to fully check.
Meanwhile I have also a brand new idea, with a question for you.
You know we have these 3 records per file( xxm, xxk, URI_filename with resume_blob):
which rows are compulsory to modify for the resume? only the third one (URI_filename)?
or we need second and third records to be modified?
I ask this because I think it might be also solved with a unique sql statement:
/tmp/hdd/root/custom/bin/sqlite3 query.sql
where query.sql in this file:
update tParameter set fValue=(select hex(fValue) from tParameter where fKey like '%Bob Esponja_20101128_1454.ts%') where fKey like '%0_RecentFile%';
Basically this will leave untouched the original played file, and update the blob with the right value for 0_RecentFile.ts
Well, for the resume playing it is compulsory to modify the BLOB in the 3rd row, actually.
But my triggers also modify the 1st row BLOB, as it is a date & time of modificaton of original file, which is displayed on screen in REC menu just below the Movie Preview Windows. It is about not to confuse user with the wrong date & time of playing interruption.
Of course it is possible to perform an sql statement like "sqlite3 query.sql", it does the same as triggers, but I think that you want to avoid using any sql tool.
About initial database with record for 0_RecentFile.ts etc.: I was thinking about the writing sql statement to create it from "regular" bookmark.db (it could also be something like "recovery" process)
A) Delete all records except the first four (which contain DB_VERSION etc.)
B) Create 3 rows for 0_RecentFile.ts, so this file was just "0" record:
id -> fKey -> fValue
5 -> 0m -> X'00000000'
6 -> 0k -> BLOB with filename
7 -> fileset:/// ... 0_RecentFile.ts -> X'00000000000000000000000000000000'
There also would be a "initial" trigger which check if these 3 rows exists and if not, it perform this recovery sql statement. So in triggers mentioned in the previous post we could use clauses "WHERE id = 7" instead of "WHERE fKey LIKE 'fileset%0_RecentFile.ts' and "WHERE id = 5" instead of "WHERE id = (SELECT id FROM tParameter WHERE fKey LIKE 'fileset%0_RecentFile.ts') - 2"
George2005- Mensajes : 112
Fecha de inscripción : 26/10/2010
Edad : 49
Localización : Olomouc - Czech Republic
Re: bookmark.db
Congratulations George, your triggers worked fine at first attemp with no modifications
The resume facility is working now
Please do some testing, you just need:
the modified db with the initial entry and triggers: http://dl.dropbox.com/u/684543/varios/ms450h/RePlay/bookmark_0_RecentFile_con_triggers.db
and last version of PM, which you know the place
- Código:
6|0k|66696C657365743A2F2F2F746D702F72616D66732F766F6C756D65732F484444202820496E7465726E616C20292F5245432F305F526563656E7446696C652E7473
7|fileset:///tmp/ramfs/volumes/HDD ( Internal )/REC/0_RecentFile.ts|0D0000001E0C000012DC45CA00000000
8|1m|DF27344D
9|1k|66696C657365743A2F2F2F746D702F72616D66732F766F6C756D65732F484444202820496E7465726E616C20292F5245432F426F62204573706F6E6A6120457370656369616C204E6176696461642E7473
10|fileset:///tmp/ramfs/volumes/HDD ( Internal )/REC/Bob Esponja Especial Navidad.ts|1F0000002D1F0000B50EE2BB01000000
11|2m|0827344D
12|2k|66696C657365743A2F2F2F746D702F72616D66732F766F6C756D65732F484444202820496E7465726E616C20292F5245432F43696E655F204A61636B2048756E746572207920656C207465736F726F207065726469646F20646520556761726974695F32303131303131335F323135382E7473
13|fileset:///tmp/ramfs/volumes/HDD ( Internal )/REC/Cine_ Jack Hunter y el tesoro perdido de Ugariti_20110113_2158.ts|0E000000A0110000120635E200000000
14|3m|9A28344D
15|3k|66696C657365743A2F2F2F746D702F72616D66732F766F6C756D65732F484444202820496E7465726E616C20292F5245432F42454E20313020414C49454E20464F5243455F32303131303131365F323032352E7473
16|fileset:///tmp/ramfs/volumes/HDD ( Internal )/REC/BEN 10 ALIEN FORCE_20110116_2025.ts|0D0000001E0C000012DC45CA00000000
sqlite>
The resume facility is working now
Please do some testing, you just need:
the modified db with the initial entry and triggers: http://dl.dropbox.com/u/684543/varios/ms450h/RePlay/bookmark_0_RecentFile_con_triggers.db
and last version of PM, which you know the place
vic1972- Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga
Re: bookmark.db
vic1972 escribió:Congratulations George, your triggers worked fine at first attemp with no modifications
- Código:
6|0k|66696C657365743A2F2F2F746D702F72616D66732F766F6C756D65732F484444202820496E7465726E616C20292F5245432F305F526563656E7446696C652E7473
7|fileset:///tmp/ramfs/volumes/HDD ( Internal )/REC/0_RecentFile.ts|0D0000001E0C000012DC45CA00000000
8|1m|DF27344D
9|1k|66696C657365743A2F2F2F746D702F72616D66732F766F6C756D65732F484444202820496E7465726E616C20292F5245432F426F62204573706F6E6A6120457370656369616C204E6176696461642E7473
10|fileset:///tmp/ramfs/volumes/HDD ( Internal )/REC/Bob Esponja Especial Navidad.ts|1F0000002D1F0000B50EE2BB01000000
11|2m|0827344D
12|2k|66696C657365743A2F2F2F746D702F72616D66732F766F6C756D65732F484444202820496E7465726E616C20292F5245432F43696E655F204A61636B2048756E746572207920656C207465736F726F207065726469646F20646520556761726974695F32303131303131335F323135382E7473
13|fileset:///tmp/ramfs/volumes/HDD ( Internal )/REC/Cine_ Jack Hunter y el tesoro perdido de Ugariti_20110113_2158.ts|0E000000A0110000120635E200000000
14|3m|9A28344D
15|3k|66696C657365743A2F2F2F746D702F72616D66732F766F6C756D65732F484444202820496E7465726E616C20292F5245432F42454E20313020414C49454E20464F5243455F32303131303131365F323032352E7473
16|fileset:///tmp/ramfs/volumes/HDD ( Internal )/REC/BEN 10 ALIEN FORCE_20110116_2025.ts|0D0000001E0C000012DC45CA00000000
sqlite>
The resume facility is working now
Please do some testing, you just need:
the modified db with the initial entry and triggers: http://dl.dropbox.com/u/684543/varios/ms450h/RePlay/bookmark_0_RecentFile_con_triggers.db
and last version of PM, which you know the place
Hi Victor, thanks for your appreciation! I would also like to congratulate you, because your code works great !!! It is fantastic to see that Red Button is able to resume playing the last recording
I encountered only two problems:
1. As I wrote before there is a problem with creating symbolic links targeted to files with "strange" characters (eg eastern-european characters like "ěščřžýáíé ...") which are unfortunately widely used by our EPGs (and maybe in other countries, too)
2. When the playing of "0_RecentFile.ts" just starts, the resume playing window is still displayed waiting for select "Yes" or "No" to continue playing. So it seems that in command sequence the last OK (' ') command is missing to confirm the "Yes" option.
Btw: At the first moment I was quite surprised that the new PipeManagement has only 94 KB in comparion with previous versions which were about 225 KB long so I thought that the download failed in a half
George2005- Mensajes : 112
Fecha de inscripción : 26/10/2010
Edad : 49
Localización : Olomouc - Czech Republic
Re: bookmark.db
In new version of BusyBox there is full support for UTF-8, which is used by DvdPlayer. So I hope, this issue should be solved. (I have installed it and it works great).George2005 escribió:
I encountered only two problems:
1. As I wrote before there is a problem with creating symbolic links targeted to files with "strange" characters (eg eastern-european characters like "ěščřžýáíé ...") which are unfortunately widely used by our EPGs (and maybe in other countries, too)
I think the deafult selected button is "No" so there must be left command and then OK command.George2005 escribió:
2. When the playing of "0_RecentFile.ts" just starts, the resume playing window is still displayed waiting for select "Yes" or "No" to continue playing. So it seems that in command sequence the last OK (' ') command is missing to confirm the "Yes" option.
Actually the final size of PipeManagement is about 50kB (with debug output enabled, without it is more smaller )George2005 escribió:
Btw: At the first moment I was quite surprised that the new PipeManagement has only 94 KB in comparion with previous versions which were about 225 KB long so I thought that the download failed in a half
Re: bookmark.db
Yes, this is great.
Now we can tun a bit, and prepare for next release.
Yes, the OK button is there, but it seems when you sent the $ commands, it takes some seconds, and the OK buttons are lost some where
I will test to add some sleep seconds commands there, that is easy.
Regarding the chars, it seems next firmware release will have a new version of busybox, and so this will be also fixed.
Now, what do we do with the tunned bookmark.db,
if i delete this file, it seems dvdplayer generates this from zero, so, it seems bookmark.db is not included in the firmware,
so, we will have to find a way/trick to do this update with triggers, or replace with the good one....
Now we can tun a bit, and prepare for next release.
Yes, the OK button is there, but it seems when you sent the $ commands, it takes some seconds, and the OK buttons are lost some where
I will test to add some sleep seconds commands there, that is easy.
Regarding the chars, it seems next firmware release will have a new version of busybox, and so this will be also fixed.
Now, what do we do with the tunned bookmark.db,
if i delete this file, it seems dvdplayer generates this from zero, so, it seems bookmark.db is not included in the firmware,
so, we will have to find a way/trick to do this update with triggers, or replace with the good one....
vic1972- Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga
Re: bookmark.db
Vic et al.,vic1972 escribió:Yes, this is great. Now we can tun a bit, and prepare for next release. [...]will have a new version of busybox, [...]
I understand you are eager to share with all of us your recent findings and developments. But I think before issuing a new release we should first arrive to some conclusion with respect to the so many hangs, instabilities and other problems which plague the recent releases and which are most probably caused by the greedy consumption that some components of these releases make of the scarce MS450 physical resources (mainly memory).
I have other things that I would also like to see in a new release; namely, stopping the hard disk(s) when they are inactive for a while (see here) and remove the external pipes of PipeManagement (see here and here); the first one is pretty mature (I have it successfully running for one week), but for sure it needs to be tested by more people. The second idea still needs some development.
But in any case, with so many users out there hopefully waiting for a minimally stable firmware, I think it is a very bad idea to release firmware/software that incorporate new (and for sure more resource-demanding) features, without having found what makes the previous releases so unstable.
Best,
Última edición por evr el Mar Ene 18, 2011 7:51 pm, editado 1 vez (Razón : some typos)
evr- Mensajes : 279
Fecha de inscripción : 12/10/2010
Re: bookmark.db
vic1972 escribió:Yes, this is great.
Now we can tun a bit, and prepare for next release.
Yes, the OK button is there, but it seems when you sent the $ commands, it takes some seconds, and the OK buttons are lost some where
I will test to add some sleep seconds commands there, that is easy.
Regarding the chars, it seems next firmware release will have a new version of busybox, and so this will be also fixed.
Now, what do we do with the tunned bookmark.db,
if i delete this file, it seems dvdplayer generates this from zero, so, it seems bookmark.db is not included in the firmware,
so, we will have to find a way/trick to do this update with triggers, or replace with the good one....
Well, you are right that if you delete bookmark.db from /usr/local/etc/dvdplayer/ that DvdPlayer creates new one "from the scratch", ie completely empty. As the triggers in sqlite can access tables in the same database only, it is not possible to modify bookmark.db by trigger from other db file (eg. schedule_record.db or setup.real).
So I added a new table to bookmark.db called tHarmony which mainly I want to use as a replacement for constants/variables (which are not supported by sqlite) but I also added a record with newly generated GUID {DC1E300C-E7F1-4EF9-B5BF-40EDB6DC56C6} (see picture) which is easy to find even in binary form. So PipeManagement can check if bookmark.db contains this GUID and if not, it replaces such original bookmark.db by our "tuned" version from backup.
George2005- Mensajes : 112
Fecha de inscripción : 26/10/2010
Edad : 49
Localización : Olomouc - Czech Republic
Re: bookmark.db
evr escribió:Vic et al.,
I understand you are eager to share with all of us your recent findings and developments. But I think before issuing a new release we should first arrive to some conclusion with respect to the so many hangs, instabilities and other problems which plague the recent releases and which are most probably caused by the greedy consumption that some components of these releases make of the scarce MS450 physical resources (mainly memory).
I have other things that I would also like to see in a new release; namely, stopping the hard disk(s) when they are inactive for a while (see here) and remove the external pipes of PipeManagement (see here and here); the first one is pretty mature (I have it successfully running for one week), but for sure it needs to be tested by more people. The second idea still needs some development.
But in any case, with so many users out there hopefully waiting for a minimally stable firmware, I think it is a very bad idea to release firmware/software that incorporate new (and for sure more resource-demanding) features, without having found what makes the previous releases so unstable.
Best,
I hesitate for a long time to react or not... so here is my opinion.
We all know about issues which still happens, but if you can tell us here is problem, we can fix it. I want to say these issues cannot be reproduced on any of our PVR (I have PVR running 24x7 for months without problems, last time I spent on discovering the instability after long time running and found the rtorrent was the one - which is now replaced by Transmission and now all works better). Anyway the human resources are now very limited. We start without any testing the solutions we prepare and I and Victor must say it were really dark ages. Today, situation is better and we have a small group of testers.
I notice some of your message here at forum about memory resources and must say you write little nonsenses. If PVR boots and the memory is filled by 80% (from 256MB the 60MB is free) is excellent result and not bad situation, after some time the memory is used more because of caching and using PHP, which holds many resources in memory as sessions). This is Linux, not the Redmond operating system. I activated myself next 256MB swap, but it is not used at all (about 2MB is used, but it is negligible).
I see you have some new ideas to be implemented. But I not understand Spanish well so they remains unnoticed. This is why we create SF.net page with all the features as bug-tracking and feature-enhancements request. Why you don't write your ideas there?
And if you want 'minimal stable firmware' just install official firmware from LG. There is no such as minimal firmware...
The toolchain I use for compiling:
For rebuild
binutils configuration - http://www.fozona.cz/LG/toolchain/binutils-2.20.1-config.status
gcc configuration for uClib - http://www.fozona.cz/LG/toolchain/gcc-4.5.1-uclib-config.status
gcc configuration full support - http://www.fozona.cz/LG/toolchain/gcc-4.5.1-full-config.status
Binaries
binutils - http://www.fozona.cz/LG/toolchain/binutils-2.20.1.tar.bz2
gcc - http://www.fozona.cz/LG/toolchain/gcc-4.5.1.tar.bz2
cross compile toolchain - http://www.fozona.cz/LG/toolchain/cross-mipsel.tar.bz2
kernel source - http://www.fozona.cz/LG/toolchain/kernel-venus.tar.bz2
complete target environment - http://www.fozona.cz/LG/toolchain/target-mipsel.tar.bz2
Scripts
preparing environment - http://www.fozona.cz/LG/toolchain/lg_crossenv.sh
BTW: wtf is with the message editor? all control buttons disappear or are nonfunctional...
Re: bookmark.db
Hello George,
I see, so you propose this unique binary string as a way to dectect wether or not this is the good bookmark.db.
So, after the firmware install with the new PM, it will do the checking when a reproduction is stopped.
At this moment, we search for the unique guid, if is there then do nothing, but if it is not,
then we copy the good bookmark.db over the one generated by lg. right? ...
but with this, we will lost the info of the first reproduction... this is not not a big problem for user, to lost the restart point of only one reproduction ..
I wonder if there will be another solution ..
Ahh another thing,
I guess the bookmark have space for 256 entries, ..
now, what happens when a new entry is registered (the 257th) will overwrite over the first record that entered,
or the one not accesed ...
Hope you understand what i want to say, we cannot lose the "0_RecentFile.ts" entry.
pass me the .schema , so i can have that new table information.
I see, so you propose this unique binary string as a way to dectect wether or not this is the good bookmark.db.
So, after the firmware install with the new PM, it will do the checking when a reproduction is stopped.
At this moment, we search for the unique guid, if is there then do nothing, but if it is not,
then we copy the good bookmark.db over the one generated by lg. right? ...
but with this, we will lost the info of the first reproduction... this is not not a big problem for user, to lost the restart point of only one reproduction ..
I wonder if there will be another solution ..
Ahh another thing,
I guess the bookmark have space for 256 entries, ..
now, what happens when a new entry is registered (the 257th) will overwrite over the first record that entered,
or the one not accesed ...
Hope you understand what i want to say, we cannot lose the "0_RecentFile.ts" entry.
pass me the .schema , so i can have that new table information.
vic1972- Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga
Re: bookmark.db
More things,
I have fixed the OK button, now it have one more second,
I wonder if it will work well in all system ...
we might probably add another ok hit, as this is not wrong to press the ok button in a play.
Config file also changed, added a new section:
[RedButtonReplay]
# 1=Enabled 0=Disabled
RedButtonReplay_Enable=1
So, if people do not like this feature, have just to disabled with 0, and will no appear for them the 0_RecentFile.ts
I am using it everyday, and it is very usefull, specially when you watch a movie in several pieces ...
New test version have been uploaded.
I have fixed the OK button, now it have one more second,
I wonder if it will work well in all system ...
we might probably add another ok hit, as this is not wrong to press the ok button in a play.
Config file also changed, added a new section:
[RedButtonReplay]
# 1=Enabled 0=Disabled
RedButtonReplay_Enable=1
So, if people do not like this feature, have just to disabled with 0, and will no appear for them the 0_RecentFile.ts
I am using it everyday, and it is very usefull, specially when you watch a movie in several pieces ...
New test version have been uploaded.
vic1972- Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga
Re: bookmark.db
Keltek,Keltek escribió:[[...]]I hesitate for a long time to react or not... so here is my opinion. [...]
Thanks for finally deciding to react!
This message is just to let you (et al.) know that I do have things to say about your message and that I will reply as soon as I find some time to think again about this hobby (I'v just entered in a too-busy period at work and this will last until the end of January).
Best wishes for your next release!
evr- Mensajes : 279
Fecha de inscripción : 12/10/2010
Re: bookmark.db
You are right that we can lost the resume playing time for recording which was saved prior the bookmark.db changing. But if we could solve it, we need such a sqlite client to add triggers and table into existing bookmark.db. Keltek wrote something about it, but I am not sure if it could be possible so I am trying to manage everything intrinsically just using triggers etc.vic1972 escribió:Hello George,
I see, so you propose this unique binary string as a way to dectect wether or not this is the good bookmark.db.
So, after the firmware install with the new PM, it will do the checking when a reproduction is stopped.
At this moment, we search for the unique guid, if is there then do nothing, but if it is not,
then we copy the good bookmark.db over the one generated by lg. right? ...
but with this, we will lost the info of the first reproduction... this is not not a big problem for user, to lost the restart point of only one reproduction ..
I wonder if there will be another solution ..
Ahh another thing,
I guess the bookmark have space for 256 entries, ..
now, what happens when a new entry is registered (the 257th) will overwrite over the first record that entered,
or the one not accesed ...
Hope you understand what i want to say, we cannot lose the "0_RecentFile.ts" entry.
pass me the .schema , so i can have that new table information.
I created an extended version of triggers with autorecovery feature - before any changes in db it checks if the appropriate records (3 rows) for 0_RecentFile.ts exist as the first records (ie the file number "0" in fKey ("0k", "0m")), and if not, it makes a fresh table and recover all records for 0_RecentFile.ts. It seemed logical that Recent File records were placed at the beginning as file number "0" so the DvdPlayer could add another records just after them. But it was not worked reliably
So I tried to investigate it and I learned that DdvPlayer works with bookmark.db in a quite strange way. It seems that it doesn't rely on database records but it uses its internal counter for creating new records in bookmark.db. For example: I used extended version mentioned above, ie with just only records (ie 3 rows) for 0_RecentFile.ts. As these records have the file number "0" in fKey ("0k", "0m") I expected that another records created by DvdPlayer would have the file number "1" ("1k", "1m") but in fact DvdPlayer added records with the file number "9"! In another case there were about 10 files (30 rows) stored in bookmark.db file. The first of them were also records for 0_RecentFile.ts, ie with the file number "0" but DvdPlayer maybe tried to add records also with the file number "0" and as the fKey value must be unique so it replaced the record for 0_RecentFile.ts by another one based on its internal counter. That it could be also an answer for your question what will happen if the 257th entry takes places. I have not tested yet, but I think that DvdPlayer will overwrite the existing records from the beginning, ie as the file number "0".
So as the essential for us is not to loose records for 0_RecentFile.ts (ie recover it automatically in case of its accidental erasing) I want to rework autorecovery feature to support a recover 0_RecentFile.ts records which would be placed wheresoever in the table (not just at the beginning). That's why I am not able to provide you a schema for a new (tHarmony) table now as I think that there will be some changes there ...
So please be patient, thanks!
George2005- Mensajes : 112
Fecha de inscripción : 26/10/2010
Edad : 49
Localización : Olomouc - Czech Republic
Re: bookmark.db
wow , very interesting all stuff you discovering. please go ahead.
I guess is now more difficult, if LG goes one way, and not really using id of DB.
some ideas:
It would be nice, if we could "block" some way our 0_RecentFile.ts records;
Are the first 3 rows usefull for lg....? the ones with the versions, etc ..
Or the trigger to always check first 0_RecentFile.ts records exists first thing to check, and then the updates ...
Also for testing will be nice to have a full bookmark.db with all records,
as you can guess i have deleted mine many times, now
Probably someone can share with us his bookmark.db ...
Please, take your time.
I have many other battles opened
If you have the time, please test the last PM to see if now the OK button is pressed in time.thanks.
I guess is now more difficult, if LG goes one way, and not really using id of DB.
some ideas:
It would be nice, if we could "block" some way our 0_RecentFile.ts records;
Are the first 3 rows usefull for lg....? the ones with the versions, etc ..
Or the trigger to always check first 0_RecentFile.ts records exists first thing to check, and then the updates ...
Also for testing will be nice to have a full bookmark.db with all records,
as you can guess i have deleted mine many times, now
Probably someone can share with us his bookmark.db ...
Please, take your time.
I have many other battles opened
If you have the time, please test the last PM to see if now the OK button is pressed in time.thanks.
vic1972- Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga
Re: bookmark.db
vic1972 escribió:wow , very interesting all stuff you discovering. please go ahead.
I guess is now more difficult, if LG goes one way, and not really using id of DB.
some ideas:
It would be nice, if we could "block" some way our 0_RecentFile.ts records;
Are the first 3 rows usefull for lg....? the ones with the versions, etc ..
Or the trigger to always check first 0_RecentFile.ts records exists first thing to check, and then the updates ...
Also for testing will be nice to have a full bookmark.db with all records,
as you can guess i have deleted mine many times, now
Probably someone can share with us his bookmark.db ...
Please, take your time.
I have many other battles opened
If you have the time, please test the last PM to see if now the OK button is pressed in time.thanks.
I tested some variants of locating 0_RecentFile.ts in a table including the variant of placing them instead of the first records (DB_VERSION etc.), but it seems that the crucial thing is not a position in table, but the file number. As I learned before that DvdPlayer uses its internal counter so the file numbers in fKey serve like a "unique keys" actually, I tried to use the file number "beyond the scope" (ie "9999") for 0_RecentFile.ts and it worked So I am almost sure that it would be a solution - as the maximum file number which DvdPlayer uses is 256, it shouldn't create records with the file number of 9999.
So I wrote a new set of SQL statements to create appropriate triggers as well as the supplemental (tHarmony) table. It includes Auto Recovery feature which (before any table change) checks if 0_RecentFile.ts records exist wheresoever in the table and if not, then it re-create them. So it is also possible to use it in the original bookmark.db to create new records for 0_RecentFile.ts.
I also tested your new PM version and confirmation of resume playing window works now actually. But I encountered the problems of Red Button itself - it seems to me that Red Button doesn't work in the moment just after the returning from the Media menu - I have to press it twice (or more) in almost all cases. Btw: it could be great not to use Red Button at all, so the playing of 0_RecentFile.ts could start automatically (as we discussed before).
The last thing - I noticed that 0_RecentFile.ts file is not sometimes located at the first position of list of recordings. Of course there is not a problem in case of sorting files by NAME so it could be connected with the date & time of 0_RecentFile.ts file. In case of sorting by LATEST sometimes the 0_RecentFile.ts is at the second position in list - but it is not a problem, because there is a last played file (ie symlink target) at the first position itself. But in case of sorting by TIME the problem takes place actually. It seems that DvdPlayer sorts the recordings just by the time only - eg. the file with time of "0:01" is the first item in the list and file with time of "23:59" is the last item in the list which is a real problem ...
Last but not least: mentioned above SQL statements follow:
- Código:
/* create supplemental (tHarmony) table */
CREATE TABLE "tHarmony" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE , "fKey" TEXT, "fValue" BLOB); /* table structure */
INSERT INTO tHarmony (fKey, fValue) VALUES ('GUID','DC1E300C-E7F1-4EF9-B5BF-40EDB6DC56C6'); /* unique Id in TEXT (STRING) form for identification the modified db file */
INSERT INTO tHarmony (fKey, fValue) VALUES ('RecentFilenameText','fileset:///tmp/ramfs/volumes/HDD ( Internal )/REC/0_RecentFile.ts'); /* full name od Recent File in TEXT form */
INSERT INTO tHarmony (fKey, fValue) VALUES ('RecentFilenameBLOB',X'66696C657365743A2F2F2F746D702F72616D66732F766F6C756D65732F484444202820496E7465726E616C20292F5245432F305F526563656E7446696C652E7473'); /* full name od Recent File in BLOB form */
INSERT INTO tHarmony (fKey, fValue) VALUES ('RecentFilenameNumber','9999'); /* the number of Recent File in db records */
INSERT INTO tHarmony (fKey, fValue) VALUES ('AutoRecoveryEnable',1); /* 1 - enable Auto Recovery of Recent File db records */
INSERT INTO tHarmony (fKey, fValue) VALUES ('AutoRecoveryRaiseTrigger',zeroblob(16)); /* used for raise the recovery trigger by changing a value to a new value */
/* tParameter table "AFTER UPDATE" triggers */
CREATE TRIGGER "main"."Upd3rdRowByUPDATE" AFTER UPDATE ON tParameter WHEN old.fKey LIKE 'fileset%' BEGIN UPDATE tParameter SET fValue = new.fValue WHERE fKey = (SELECT fValue FROM tHarmony WHERE fKey = 'RecentFilenameText'); END;
CREATE TRIGGER "main"."Upd3rdRowByINSERT" AFTER INSERT ON tParameter WHEN new.fKey LIKE 'fileset%' BEGIN UPDATE tParameter SET fValue = new.fValue WHERE fKey = (SELECT fValue FROM tHarmony WHERE fKey = 'RecentFilenameText'); END;
CREATE TRIGGER "main"."Upd1stRowByUPDATE" AFTER UPDATE ON tParameter WHEN old.fKey LIKE '_m' OR old.fKey LIKE '__m' OR old.fKey LIKE '___m' BEGIN UPDATE tParameter SET fValue = new.fValue WHERE id = (SELECT id FROM tParameter WHERE fKey = (SELECT fValue FROM tHarmony WHERE fKey = 'RecentFilenameText')) - 2; END;
CREATE TRIGGER "main"."Upd1stRowByINSERT" AFTER INSERT ON tParameter WHEN new.fKey LIKE '_m' OR new.fKey LIKE '__m' OR new.fKey LIKE '___m' BEGIN UPDATE tParameter SET fValue = new.fValue WHERE id = (SELECT id FROM tParameter WHERE fKey = (SELECT fValue FROM tHarmony WHERE fKey = 'RecentFilenameText')) - 2; END;
/* tParameter table "BEFORE UPDATE" triggers (raise tHarmony table trigger by updating tHarmony = setting the random value into it */
CREATE TRIGGER "main"."AutoRecoveryByUPDATE" BEFORE UPDATE ON tParameter BEGIN UPDATE tHarmony SET fValue = randomblob(16) WHERE fKey = 'AutoRecoveryRaiseTrigger'; END;
CREATE TRIGGER "main"."AutoRecoveryByINSERT" BEFORE INSERT ON tParameter BEGIN UPDATE tHarmony SET fValue = randomblob(16) WHERE fKey = 'AutoRecoveryRaiseTrigger'; END;
CREATE TRIGGER "main"."AutoRecoveryByDELETE" BEFORE DELETE ON tParameter BEGIN UPDATE tHarmony SET fValue = randomblob(16) WHERE fKey = 'AutoRecoveryRaiseTrigger'; END;
/* tHarmony table trigger (Auto Recovery handling) */
CREATE TRIGGER "main"."AutoRecoveryHandle" AFTER UPDATE ON tHarmony WHEN (CASE WHEN (((SELECT id FROM tParameter WHERE fKey = (SELECT fValue FROM tHarmony WHERE fKey = 'RecentFilenameNumber') || 'm') + 1 = (SELECT id FROM tParameter WHERE fKey = (SELECT fValue FROM tHarmony WHERE fKey = 'RecentFilenameNumber') || 'k')) AND ((SELECT fValue FROM tParameter WHERE fKey = (SELECT fValue FROM tHarmony WHERE fKey = 'RecentFilenameNumber') || 'k') = (SELECT fValue FROM tHarmony WHERE fKey = 'RecentFilenameBLOB')) AND ((SELECT fKey FROM tParameter WHERE id = (SELECT id FROM tParameter WHERE fKey = ((SELECT fValue FROM tHarmony WHERE fKey = 'RecentFilenameNumber') || 'k')) + 1) = (SELECT fValue FROM tHarmony WHERE fKey = 'RecentFilenameText'))) THEN 0 ELSE (SELECT fValue FROM tHarmony WHERE fKey = 'AutoRecoveryEnable') END) BEGIN
/* try to delete any previous db records regarding the Recent File in ANY way */
DELETE FROM tParameter WHERE fKey = (SELECT fValue FROM tHarmony WHERE fKey = 'RecentFilenameNumber') || 'm';
DELETE FROM tParameter WHERE fKey = (SELECT fValue FROM tHarmony WHERE fKey = 'RecentFilenameNumber') || 'k';
DELETE FROM tParameter WHERE fKey = (SELECT fValue FROM tHarmony WHERE fKey = 'RecentFilenameText');
DELETE FROM tParameter WHERE fValue = (SELECT fValue FROM tHarmony WHERE fKey = 'RecentFilenameBLOB');
/* create new db records for Recent File */
INSERT INTO tParameter (fKey, fValue) VALUES ((SELECT fValue FROM tHarmony WHERE fKey = 'RecentFilenameNumber') || 'm',zeroblob(4));
INSERT INTO tParameter (fKey, fValue) VALUES ((SELECT fValue FROM tHarmony WHERE fKey = 'RecentFilenameNumber') || 'k',(SELECT fValue FROM tHarmony WHERE fKey = 'RecentFilenameBLOB'));
INSERT INTO tParameter (fKey, fValue) VALUES ((SELECT fValue FROM tHarmony WHERE fKey = 'RecentFilenameText'),zeroblob(16));
/* abandon all subsequent "AFTER UPDATE" triggers */
SELECT RAISE(IGNORE);
END;
George2005- Mensajes : 112
Fecha de inscripción : 26/10/2010
Edad : 49
Localización : Olomouc - Czech Republic
Re: bookmark.db
George2005 escribió:
I tested some variants of locating 0_RecentFile.ts in a table including the variant of placing them instead of the first records (DB_VERSION etc.), but it seems that the crucial thing is not a position in table, but the file number. As I learned before that DvdPlayer uses its internal counter so the file numbers in fKey serve like a "unique keys" actually, I tried to use the file number "beyond the scope" (ie "9999") for 0_RecentFile.ts and it worked So I am almost sure that it would be a solution - as the maximum file number which DvdPlayer uses is 256, it shouldn't create records with the file number of 9999.
Again congratulations!!!
Great discovery this 9999.
I need more time to check the rest of your great message
I will change the logic for red button,
and also, I will apply the log for when detectection of records, so it apply at least when it is detected.
vic1972- Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga
Re: bookmark.db
George2005 escribió:
So I wrote a new set of SQL statements to create appropriate triggers as well as the supplemental (tHarmony) table. It includes Auto Recovery feature which (before any table change) checks if 0_RecentFile.ts records exist wheresoever in the table and if not, then it re-create them. So it is also possible to use it in the original bookmark.db to create new records for 0_RecentFile.ts.
Ok, what will be the idea for the replacement of the bookmark.db ?
Suggestion 1: Each time PM start will check if GUID is in the actual bookmark.db, if not replace with the good
one which will be stored some where in the firmware.
Suggestion 2: I guess this check and replacement can also be done in the /usr/local/etc/rcS main script.
any others....?
George2005 escribió:
I also tested your new PM version and confirmation of resume playing window works now actually. But I encountered the problems of Red Button itself - it seems to me that Red Button doesn't work in the moment just after the returning from the Media menu - I have to press it twice (or more) in almost all cases. Btw: it could be great not to use Red Button at all, so the playing of 0_RecentFile.ts could start automatically (as we discussed before).
OK,
I have done some modifications for improvements of detections.
But, note and test the following, when in TDT mode, hit the yellow button, which basically send the $ dollar commands.
Have you notice that some times it does not respond, or that it takes some seconds .....
Obviously we are having the same little issue with the red button.
I will investigate this, probably sending " $ " , instead of "$" will work better, dont know...
George2005 escribió:
The last thing - I noticed that 0_RecentFile.ts file is not sometimes located at the first position of list of recordings. Of course there is not a problem in case of sorting files by NAME so it could be connected with the date & time of 0_RecentFile.ts file. In case of sorting by LATEST sometimes the 0_RecentFile.ts is at the second position in list - but it is not a problem, because there is a last played file (ie symlink target) at the first position itself. But in case of sorting by TIME the problem takes place actually. It seems that DvdPlayer sorts the recordings just by the time only - eg. the file with time of "0:01" is the first item in the list and file with time of "23:59" is the last item in the list which is a real problem ...
0_RecentFile.ts is the first if ordered by alpha.
As you know we also "touch" the file, so it get the actual date&hour,
it might happen that newer files occurs, like for instance a new recording ...
I am not sure if I have fully understood you; is there something else we can do to fix this ... ??
I will test later the new triggers now it is impossible.
More new things.
Starting to think about new improvements, support for: film.avi , that is for new extensions,
if i detected end of playing film.avi, I could creat link to: 0_RecentFile.avi to link the original .avi file.
Will the triggers be able to handle this, or it will be very complex to make supports to all the extensions ...?
As you can see I cannot stop thinking of new ideas
cheers
vic1972- Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga
Re: bookmark.db
As it might be usefull,
copied a brand new bookmark.db file:
http://dl.dropbox.com/u/684543/varios/ms450h/RePlay/bookmark.db_original
Later we can add the lattest set of triggers.
copied a brand new bookmark.db file:
http://dl.dropbox.com/u/684543/varios/ms450h/RePlay/bookmark.db_original
Later we can add the lattest set of triggers.
vic1972- Mensajes : 2260
Fecha de inscripción : 09/12/2009
Edad : 52
Localización : Malaga
Re: bookmark.db
Well, both suggestions seem OK, there is a one problem in general (as you wrote before), ie if some recordings were stored in original bookmark.db then they were lost by replacing the modified bookmark.db file - sugested solution follows:vic1972 escribió:
Ok, what will be the idea for the replacement of the bookmark.db ?
Suggestion 1: Each time PM start will check if GUID is in the actual bookmark.db, if not replace with the good
one which will be stored some where in the firmware.
Suggestion 2: I guess this check and replacement can also be done in the /usr/local/etc/rcS main script.
any others....?
I noticed that if bookmark.db is missing in /usr/local/etc/dvdplayer/ at the time of starting then DvdPlayer creates "fresh" bookmark.db, which is completely empty (without any tables except of master one) and it is exactly 1024 bytes long. I tried to replaced it with modified bookmark.db and it seemed to be OK. So it could be possible to detect if such file exists with filesize of 1024 B and if yes, then replace it by modified bookmark.db. If bookmark.db wouldn't exist at all then PM could copy modified.db without any problems. And if bookmark.db would exist with filesize more than 1 KB and wouldn't contain GUID then it probably stores some recordings so they could be lost by replacing bookmark.db. So there would be a special button in LGMenu which could "upgrade" bookmark.db to modified version. In fact we could use php sqlite api to create tHarmony table & triggers in original bookmark.db. Of course there could be an option in PM.ini to allow "force" the replacing original bookmark.db by modified version automatically even if it isn't empty.
OK, I understand, it is by design ...vic1972 escribió:
OK,
I have done some modifications for improvements of detections.
But, note and test the following, when in TDT mode, hit the yellow button, which basically send the $ dollar commands.
Have you notice that some times it does not respond, or that it takes some seconds .....
Obviously we are having the same little issue with the red button.
I will investigate this, probably sending " $ " , instead of "$" will work better, dont know...
Sorry, I try to clarify it:vic1972 escribió:
0_RecentFile.ts is the first if ordered by alpha.
As you know we also "touch" the file, so it get the actual date&hour,
it might happen that newer files occurs, like for instance a new recording ...
I am not sure if I have fully understood you; is there something else we can do to fix this ... ??
As you know there are 3 sorting modes for Recordings list: LATEST, TITLE NAME and TIME. Sorting by TITLE NAME is OK, it is simply about alphabetical order, so 0_RecentFile.ts is the first item in list. Sorting by LATEST is quite OK, too - 0_RecentFile.ts is touched so it has current date & time so it should be the first item in the list. Sometimes I noticed that 0_RecentFile.ts is the second item and the first item is the last played recording (eg StarWars.ts), ie the file which is the target of 0_RecentFile.ts symbolic link. I don't know why, as the date & time of StarWars.ts is the exactly same as the 0_RecentFile.ts symbolic link and name of 0_RecentFile.ts is in alphabetical order before the name of StarWars.ts. But it isn't a problem, because it is the same file so the final effect of playing StarWars.ts is the same as playing 0_RecentFile.ts. Sorting by TIME I don't use at all but I tried to test it and there is problem actually. This sorting uses just the time of file only and ignores the date. So it is impossible to show 0_RecentFile.ts as the first item in list if any recording with prior time exists even it is couple of days old! Eg: File StarWars.ts - filedate: 01.01.2001, filetime: 0:02 it would be the first in the list every time except the situation that 0_RecentFile.ts would have the filetime 0:01 regardless its filedate! But I don't think it is needed to solve for us as I can't imagine who could use such weird sorting
OK, I hope that triggers will work without problems ...vic1972 escribió:
I will test later the new triggers now it is impossible.
Well, in fact I was also thinking about it before, but the string functions in sqlite are not quite good to parse the path & filename in situation when the different directories and file extensions are used. But I try to think about some tricks how the workaround it (I will see ...)vic1972 escribió:
More new things.
Starting to think about new improvements, support for: film.avi , that is for new extensions,
if i detected end of playing film.avi, I could creat link to: 0_RecentFile.avi to link the original .avi file.
Will the triggers be able to handle this, or it will be very complex to make supports to all the extensions ...?
As you can see I cannot stop thinking of new ideas
cheers
Última edición por George2005 el Dom Ene 23, 2011 12:21 pm, editado 1 vez
George2005- Mensajes : 112
Fecha de inscripción : 26/10/2010
Edad : 49
Localización : Olomouc - Czech Republic
Página 4 de 8. • 1, 2, 3, 4, 5, 6, 7, 8
Página 4 de 8.
Permisos de este foro:
No puedes responder a temas en este foro.