/* Main.rexx */

options results; address MrMIDI

if ~show('L', 'rexxsupport.library') then do
  if ~addlib('rexxsupport.library', 0, -30, 0) then do
    say('rexxsupport.library is not available. Exiting...')
    exit
  end
end
if ~show('L', 'rexxutil.library') then do
  if ~addlib('rexxutil.library', 0, -30, 0) then do
    say('rexxutil.library is not available. Exiting...')
    exit
  end
end

ASLFR_DrawersOnly	= 0x8008002f;	ASLFR_TitleText		= 0x80080001
MUIA_Cycle_Active	= 0x80421788;	MUIA_Disabled		= 0x80423661
MUIA_Dropable		= 0x8042fbce;	MUIA_InputMode		= 0x8042fb04
MUIA_Listview_DragType	= 0x80425cd3;	MUIA_Listview_ClickColumn	= 0x8042d1b3
MUIA_Listview_DoubleClick	= 0x80424635
MUIA_Listview_MultiSelect	= 0x80427e08
MUIA_List_AutoVisible	= 0x8042a445
MUIA_List_DragSortable	= 0x80426099;	MUIA_List_Format	= 0x80423c0a
MUIA_Menuitem_ShortCut	= 0x80422030;	MUIA_Menuitem_Title	= 0x804218be
MUIA_Pressed		= 0x80423535;	MUIA_Selected		= 0x8042654b
MUIA_ShowMe		= 0x80429ba8;	MUIA_Slider_Level	= 0x8042ae3a
MUIA_Slider_Max		= 0x8042d78a;	MUIA_Slider_Min		= 0x8042e404
MUIA_Window_Open	= 0x80428aa0;	MUIA_Window_Sleep	= 0x8042e7db
MUIM_Application_AboutMUI	= 0x8042d21d
MUIM_Application_OpenConfigWindow	= 0x804299ba
MUIV_InputMode_RelVerify	= 1;	MUIV_Listview_DragType_Immediate	= 1
MUIV_Listview_MultiSelect_Default	= 1

setvar cont 0; setvar stopped 0; setvar current_song ""; setvar current_time '00:00'
setvar total_time '00:00:00'

window ID WIND1 TITLE '"MrMIDI"' COMMAND '"Clean"'
 menu LABEL "Project"
  item COMMAND '"Save 1"' ATTRS MUIA_Menuitem_Shortcut 'S' LABEL "Save Prefs"
  item COMMAND '"method 'MUIM_Application_OpenConfigWindow'"',
   ATTRS MUIA_Menuitem_Shortcut 'P' PORT MrMIDI LABEL "MUI Prefs..."
  item ATTRS MUIA_Menuitem_Title '-1'
  item COMMAND '"About"' ATTRS MUIA_Menuitem_Shortcut 'R' LABEL "About MrMIDI..."
  item COMMAND '"method 'MUIM_Application_AboutMUI' 0"',
   ATTRS MUIA_Menuitem_Shortcut 'M' PORT MrMIDI LABEL "About MUI..."
  item ATTRS MUIA_Menuitem_Title '-1'
  item COMMAND '"Clean"' ATTRS MUIA_Menuitem_Shortcut 'Q' LABEL "Quit"
 endmenu
 group ID MAIN FRAME
  string ID FNAME CONTENT "No song is loaded."
  text ID LCD LABEL "MrMPEG is also available from Aminet."
  group HORIZ
   label SINGLE "Song:"
   text ID ACTIV LABEL "\033b\033r  0"
   label SINGLE "/"
   text ID MAX LABEL "\033b\033r  0"
   label SINGLE "Time:"
   text ID CURNT LABEL "\033b\033r00:00"
   label SINGLE "/"
   text ID TOTAL LABEL "\033b\033r00:00:00"
  endgroup
  group HORIZ
   group
    knob ID VOLM ATTRS MUIA_Slider_Max 500 MUIA_Slider_Min 0 MUIA_Slider_Level 300,
     MUIA_InputMode MUIV_InputMode_RelVerify
    label "Volume"
   endgroup
   group
    group HORIZ
     image ID PREV SPEC "4:MrMIDI:images/Previous.mf0" COMMAND '"Prev"'
     image ID RWND SPEC "4:MrMIDI:images/Backward.mf0" ATTRS MUIA_Disabled 1
     check ID PLAY SPEC "4:MrMIDI:images/Play.mf0" COMMAND '"Play"'
     image ID FFWD SPEC "4:MrMIDI:images/Forward.mf0" ATTRS MUIA_Disabled 1
     image ID NEXT SPEC "4:MrMIDI:images/Next.mf0" COMMAND '"Next"'
     image ID STOP SPEC "4:MrMIDI:images/Stop.mf0" COMMAND '"Stop"'
     image ID EJCT SPEC "4:MrMIDI:images/Eject.mf0" COMMAND '"Eject"'
     check ID LIST SPEC "4:MrMIDI:images/SongList.mf0" ATTRS MUIA_Selected 1,
      COMMAND '"window ID WIND2 ATTRS 'MUIA_Window_Open' %s"' PORT MrMIDI
    endgroup
    group HORIZ
     check ID ADVC SPEC "4:MrMIDI:images/Advanced.mf0" ATTRS MUIA_Selected 1,
      COMMAND '"group ID GRUP1 ATTRS 'MUIA_ShowMe' %s"' PORT MrMIDI
     check ID MONO SPEC "4:MrMIDI:images/Expand.mf0" COMMAND '"Continue"'
     check ID FILT SPEC "4:MrMIDI:images/Filter.mf0" ATTRS MUIA_Disabled 1
     check ID RAND SPEC "4:MrMIDI:images/Random.mf0"
     cycle ID REPT ATTRS MUIA_Cycle_Active 2 LABEL 'No Repeat,Repeat 1,Repeat All'
    endgroup
    text ID PROG LABEL "Stopped."
   endgroup
  endgroup
 endgroup
 group ID GRUP1 FRAME HORIZ
  group
   label DOUBLE "Freq. (Hz):"
   label DOUBLE "Polyphony:"
   label DOUBLE "Priority:"
   label DOUBLE "Tone:"
   label DOUBLE "Drum:"
   label DOUBLE "Buffer (KS):"
   label DOUBLE "Velocity Map:"
   label DOUBLE "Volume Map:"
  endgroup
  group
   cycle ID FREQ COMMAND '"Continue"' LABEL '4000,8000,11025,22050,28603,44100,48000,80000'
   slider ID POLY ATTRS MUIA_Slider_Max 64 MUIA_Slider_Min 8 MUIA_Slider_Level 8
   slider ID PRIO ATTRS MUIA_Slider_Max 30 MUIA_Slider_Min '-30' MUIA_Slider_Level 0
   group HORIZ
    check ID TOFI SPEC "4:MrMIDI:images/Filter.mf0"
    string ID TOMP CONTENT 'Standard'
   endgroup
   group HORIZ
    check ID DRFI SPEC "4:MrMIDI:images/Filter.mf0"
    string ID DRMP CONTENT 'Standard'
   endgroup
   slider ID BUFF ATTRS MUIA_Slider_Max 128 MUIA_Slider_Min 1 MUIA_Slider_Level 16
   cycle ID VEMP COMMAND '"Continue"' LABEL 'Linear,Quadratic,Exponential'
   cycle ID VOMP COMMAND '"Continue"' LABEL 'Linear,Quadratic,Exponential'
  endgroup
 endgroup
endwindow
window ID WIND2 TITLE '"Play List"'
 menu LABEL "Project"
  item COMMAND '"Save 1"' ATTRS MUIA_Menuitem_Shortcut 'S' LABEL "Save Prefs"
  item COMMAND '"method 'MUIM_Application_OpenConfigWindow'"',
   ATTRS MUIA_Menuitem_Shortcut 'P' PORT MrMIDI LABEL "MUI Prefs..."
  item ATTRS MUIA_Menuitem_Title '-1'
  item COMMAND '"About"' ATTRS MUIA_Menuitem_Shortcut 'R' LABEL "About MrMIDI..."
  item COMMAND '"method 'MUIM_Application_AboutMUI' 0"',
   ATTRS MUIA_Menuitem_Shortcut 'M' PORT MrMIDI LABEL "About MUI..."
  item ATTRS MUIA_Menuitem_Title '-1'
  item COMMAND '"Clean"' ATTRS MUIA_Menuitem_Shortcut 'Q' LABEL "Quit"
 endmenu
 group HORIZ
  group
   label SINGLE "GMPlay Path:"
   label SINGLE "MIDI Files Path:"
  endgroup
  group
   popasl ID PATH SPEC "6:20" ATTRS ASLFR_DrawersOnly 1 ASLFR_TitleText '"Select path for GMPlay"'
   popasl ID FPATH SPEC "6:20" ATTRS ASLFR_DrawersOnly 1 ASLFR_TitleText '"Select path for MIDI files"'
  endgroup
 endgroup
 list ID SLIST TITLE '"Song Path,Time,Format,Tracks,DPQ"' ATTRS MUIA_Listview_DragType,
  MUIV_Listview_DragType_Immediate MUIA_List_DragSortable 1 MUIA_Dropable 1,
  MUIA_List_AutoVisible 1,
  MUIA_List_Format '"P=\033r C=1 BAR,C=0 BAR,P=\033r BAR,P=\033r BAR,P=\033r"',
  MUIA_Listview_MultiSelect MUIV_Listview_MultiSelect_Default PORT INLINE COMMAND '"
  options results; address MrMIDI; check ID PLAY; if result = 0 then do;
  setvar cont 1; check ID PLAY ATTRS 'MUIA_Selected' 1; end; else do;
  call Continue.rexx; end"'
 group HORIZ
  button ID INST COMMAND '"Insert"' LABEL "Insert"
  button ID DELE COMMAND '"Delete"' LABEL "Delete"
  button ID CLR COMMAND '"Clear"' LABEL "Clear"
  button ID SORT COMMAND '"Sort"' LABEL "Sort"
 endgroup
 group HORIZ
  button ID LLOAD COMMAND '"ListLoad 1"' LABEL "Load"
  button ID LSAVE COMMAND '"ListSave 1"' LABEL "Save"
  button ID INCL COMMAND '"ListLoad 2"' LABEL "Include"
 endgroup
endwindow
call Load
call ListLoad(0)
callhook ID SLIST APP COMMAND '"DropInsert %s"'
callhook ID MAIN APP PORT INLINE COMMAND """options results; address MrMIDI;
 call Clear; call DropInsert '%s'; check ID PLAY ATTRS "MUIA_Selected" 1"""
callhook ID VOLM ATTRS MUIA_Pressed 0 COMMAND '"Continue"'
exit
