--- linuxsampler/trunk/Documentation/lscp.xml 2007/05/16 14:37:22 1188 +++ linuxsampler/trunk/Documentation/lscp.xml 2007/05/24 14:04:18 1200 @@ -5202,7 +5202,7 @@ to the instruments database by sending the following command: - ADD DB_INSTRUMENTS [<mode>] <db_dir> <file_path> [<instr_index>] + ADD DB_INSTRUMENTS [NON_MODAL] [<mode>] <db_dir> <file_path> [<instr_index>] Where <db_dir> is the absolute path name of a directory @@ -5220,6 +5220,14 @@ scanning will be done and has exactly the following possibilities: + "RECURSIVE" - + + All instruments will be processed, including those + in the subdirectories, and the respective subdirectory + tree structure will be recreated in the instruments + database + + "NON_RECURSIVE" - Only the instruments in the specified directory @@ -5236,23 +5244,29 @@ the specified database directory. - not supplied - - - The subdirectory tree structure will be recreated - in the instruments database and all instruments will be - processed and added to the respective subdirectory - in the instruments database. - - + The difference between regular and NON_MODAL versions of the command + is that the regular command returns when the scanning is finished + while NON_MODAL version returns immediately and a background process is launched. + The GET DB_INSTRUMENTS_JOB INFO + command can be used to monitor the scanning progress. + Possible Answers: "OK" - - on success + on success when NON_MODAL is not supplied + + + "OK[<job-id>]" - + + on success when NON_MODAL is supplied, where <job-id> + is a numerical ID used to obtain status information about the job progress. + See GET DB_INSTRUMENTS_JOB INFO + "ERR:<error-code>:<error-message>" - @@ -5784,6 +5798,70 @@ +
+ The front-end can ask for the current status of a + particular database instruments job by sending the following command: + + + GET DB_INSTRUMENTS_JOB INFO <job-id> + + + Where <job-id> should be replaced by the numerical ID + of the job the front-end is interested in. + + Possible Answers: + + + LinuxSampler will answer by sending a <CRLF> separated list. + Each answer line begins with the settings category name + followed by a colon and then a space character <SP> and finally + the info character string to that setting category. At the + moment the following categories are defined: + + + + FILES_TOTAL - + + The total number of files scheduled for scanning + + + FILES_SCANNED - + + The current number of scanned files + + + SCANNING - + + The absolute path name of the file which is currently + being scanned + + + STATUS - + + An integer value between 0 and 100 indicating the + scanning progress percentage of the file which is + currently being scanned + + + + + + + The mentioned fields above don't have to be in particular order. + + Example: + + + C: "GET DB_INSTRUMENTS_JOB INFO 2" + S: "FILES_TOTAL: 12" +    "FILES_SCANNED: 7" +    "SCANNING: /home/me/gigs/Bosendorfer 290.gig" +    "STATUS: 42" +    "." + + +
+ @@ -5883,9 +5961,13 @@
/ DB_INSTRUMENT_DIRECTORY SP pathname - / DB_INSTRUMENTS SP FLAT SP pathname SP pathname + / DB_INSTRUMENTS SP NON_MODAL SP scan_mode SP pathname SP pathname - / DB_INSTRUMENTS SP NON_RECURSIVE SP pathname SP pathname + / DB_INSTRUMENTS SP scan_mode SP pathname SP pathname + + / DB_INSTRUMENTS SP NON_MODAL SP pathname SP pathname + + / DB_INSTRUMENTS SP NON_MODAL SP pathname SP pathname SP instrument_index / DB_INSTRUMENTS SP pathname SP pathname @@ -5937,6 +6019,8 @@ / DB_INSTRUMENT_INFO + / DB_INSTRUMENTS_JOB_INFO + / MISCELLANEOUS / TOTAL_VOICE_COUNT @@ -5985,6 +6069,8 @@ / DB_INSTRUMENT_INFO + / DB_INSTRUMENTS_JOB_INFO + / MISCELLANEOUS / TOTAL_VOICE_COUNT @@ -6107,6 +6193,8 @@ / DB_INSTRUMENT SP INFO SP pathname + / DB_INSTRUMENTS_JOB SP INFO SP number + / VOLUME @@ -6501,6 +6589,16 @@ +scan_mode = + + RECURSIVE + + / NON_RECURSIVE + + / FLAT + + + @@ -6948,6 +7046,28 @@ the new name of the instrument, encapsulated into apostrophes. +
+ Client may want to be notified when the status of particular database + instruments job is changed by issuing the following command: + + + SUBSCRIBE DB_INSTRUMENTS_JOB_INFO + + + Server will start sending the following notification messages: + + + "NOTIFY:DB_INSTRUMENTS_JOB_INFO:<job-id>" + + + where <job-id> will be replaced by the numerical ID of the job, + which status is changed. The front-end will have to send the respective + command to actually get the status info. Because these messages + will be triggered by LSCP commands issued by other clients rather than real + time events happening on the server, it is believed that an empty notification + message is sufficient here. +
+
Client may want to be notified of miscellaneous and debugging events occurring at the server by issuing the following command: