home *** CD-ROM | disk | FTP | other *** search
- /* DropInsert.rexx */
-
- options results; address MrMIDI; signal on syntax; parse arg temp_list
-
- MUIA_List_Active = 0x8042391c; MUIA_List_Entries = 0x80421654
- MUIA_Window_Sleep = 0x8042e7db; MUIV_List_Active_Top = -2
- MUIV_List_Insert_Active = -1; MUIV_List_Insert_Bottom = -3
- MUIV_List_Insert_Sorted = -2
-
- window ID WIND1 ATTRS MUIA_Window_Sleep 1
- window ID WIND2 ATTRS MUIA_Window_Sleep 1
- list ID SLIST ATTRS MUIA_List_Entries; entries = result
- if temp_list ~= "" then do
- do forever
- parse var temp_list first ',' temp_list
- if first == '' then leave
- if exists(first) then do
- popasl ID PATH; pathname = result
- temp_name = TmpFile('PIPE:MIDI_Temp.')
- address command 'ReadMIDI "'first'" >'temp_name
- if open('Output', temp_name, 'r') = 1 then do
- null = readln('Output')
- format = readln('Output')
- total_tracks = readln('Output')
- division = readln('Output')
- temp_song_time = readln('Output')
- call close('Output')
- if left(null, 4) = 'MIDI' then do
- parse var format dummy': 'format
- parse var total_tracks dummy': 'total_tracks
- parse var division dummy': 'division
- parse var temp_song_time dummy': 'temp_song_time
- if entries = 0 then
- list ID SLIST INSERT POS MUIV_List_Insert_Bottom,
- STRING first','temp_song_time','format','total_tracks','division
- else do
- list ID SLIST ATTRS MUIA_List_Entries; temp_max = result
- skip = 0
- do i = 0 to temp_max - 1
- list ID SLIST POS i
- parse var result temp_name','dummy
- if first = temp_name then do
- skip = 1
- break
- end
- end
- if ~skip then
- list ID SLIST INSERT POS MUIV_List_Insert_Active,
- STRING first','temp_song_time','format','total_tracks','division
- end
- end /* of if null */
- else request ID WARN GADGETS '"OK"' '"Corrupted MIDI file."'
- end /* of if open */
- else request ID WARN GADGETS '"OK"' '"Could not open a pipe."'
- end /* of if exists */
- else do
- temp_string = "Could not open the file '"first"'."
- request ID WARN GADGETS '"OK"' temp_string
- end
- end /* of do forever */
- list ID SLIST ATTRS MUIA_List_Entries; temp_max = result
- setvar max temp_max
- text ID MAX LABEL "\033b\033r"right(temp_max, 3)
- temp_total_time = 0
- do i = 0 to temp_max - 1
- list ID SLIST POS i
- parse var result dummy','temp_song_time','dummy2
- temp_total_time = temp_total_time + left(temp_song_time, 2) * 60 + right(temp_song_time, 2)
- end
- temp_string = right(temp_total_time % 3600, 2, 0)||":"||,
- right(temp_total_time // 3600 % 60, 2, 0)":"right(temp_total_time // 60, 2, 0)
- setvar total_time temp_string
- text ID TOTAL LABEL "\033b\033r"temp_string
- if entries = 0 then list ID SLIST ATTRS MUIA_List_Active MUIV_List_Active_Top
- end /* of if temp_list */
- window ID WIND2 ATTRS MUIA_Window_Sleep 0
- window ID WIND1 ATTRS MUIA_Window_Sleep 0
- return
-
- syntax:
- request ID WARN GADGETS '"OK"' '"\033b\033cError 'RC' in line 'SIGL':\033n\012\033c'errortext(RC)'"'
- window ID WIND2 ATTRS MUIA_Window_Sleep 0
- window ID WIND1 ATTRS MUIA_Window_Sleep 0
- return
-