VideoList database file format ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Last updated: 23rd January 2001 For : Adding Long Play This contains the video data. It is filetype &17F (registered 25th February 1999 as "VideoLst"). <byte> Version (&01) <halfword> Number of videos in database [repeats for each video] <string> Video title (32 chars) <byte> Flags: 0 - Type: VHS 1 - Type: Beta 2 - Type: 8mm 3 - Type: DVC 4 - Type: Other 5 - Unused 6 - Unused 7 - Video is prerecorded <byte> Length (hours) <byte> Length (minutes) Total length = (hours * 60) + minutes <byte> Time free (hours) <byte> Time free (minutes) <halfword> Identity number <byte> Number of programmes currently in this video [repeats 20 times] <byte> Programme number <string> Programme title (32 chars) <string> Programme details (128 chars) <byte> Length (hours) <byte> Length (minutes) <byte> Channel <byte> Date (day) <byte> Date (month is lower 4 bits; bits 6 & 7 are century) <byte> Date (year (century is recorded along with month)) <byte> Flags: 0 - Locked 1 - Unused 2 - Unused 3 - Programme is Long Play (v0.66 or later) [end repeat] [end repeat] Each record is 3400 bytes long. In order to find a record for loading, we use the algorythm "(which% * 3400) + 3". This allows up to 65535 videos to be catalogued, a video file which would be 212.5Mb in size! The century is an offset from 1900. Thus '0' is 19xx, '1' is 20xx and so on. The month, year and day count from 1 to 12, 99 and 31 respectively. It is possible to set a date to 31st February by hacking the file as validation is only performed when setting the date. Extension, as of version 0.65: If the word following the logical end of file (ie, ((max*3400)+3) ) is "FSLD" (&444C5346), then the FastLoader data is appended. FastLoader is no longer stored in !Scrap. The FastLoader data is basically the struct used by C to maintain the on-screen index. Ignore any references to a "fastload" file stored within !Scrap, that is now obsolete. For completeness, the FastLoader extension is: <end of database> <word> &444C5346 ("FSLD") <word> Video count <block> Struct block (see below) <word> Total time on all videos <word> Total free on all videos The struct format is: struct index { char title[32]; char flags[1]; /* Same as in video database */ char length[2]; char free[2]; char ident[2]; char programmes[1]; }; If you read VideoList data, the use of the FastLoader information is entirely at your discretion. Likewise, if you output VideoList files, you do not need to include this if you don't wish to, VideoList will regenerate it if it is not present. However, when dealing with larger databases ('larger' is purely subjective), it is suggested you create FastLoader data if possible as it takes time to scan and generate it. The title MUST be null terminated. The other 'char' entities should be treated as bytes or halfwords, so they don't require terminating.