home *** CD-ROM | disk | FTP | other *** search
/ Dream 52 / Amiga_Dream_52.iso / Amiga / Workbench / DOpus / Play16-GUIplay.lha / play16-Play.dopus5 < prev   
Text File  |  1998-05-06  |  5KB  |  213 lines

  1. /* $VER: Play16-play.dopus5 1.1 (06 May 1998)
  2.    ⌐1998 by mike@kily.ruhr.de (http://kily.home.pages.de)
  3.  
  4.  DOPUS5.5+ AREXX Script for Play16-Soundplaying
  5.  with ProgressBar-GUI with timecounter !
  6.  
  7.  needs:
  8.   DOPUS 5.5+
  9.   play16 1.8
  10.  
  11.   RexxMaster (ARexx) running
  12.   mounted PIPE: device SYS:DEVS:DOSDRIVERS/PIPE
  13.   kill > Task breaker tool by Magnus Holmgren (included)
  14.  
  15.  description:
  16.   A DOPUS GUI for the Great Play16 player by Thomas Wenzel.
  17.   Displays Name/Soundformat/Time in a DOPUS PROGRESS Window.
  18.   Shows the runtime on a proggressbar and a timecounter.
  19.   Checks dopusfiletypes and recognizes CDDA format.
  20.  
  21.  installation:
  22.   as Button,Menu,...
  23.   NO Parameters, only select: <AREXX> Dopus5:ARexx/Play16-Play.dopus5
  24.  
  25.   If you want to use this script from multiply OPUS add the DOPUS Port:
  26.   <AREXX> Dopus5:ARexx/Play16-play.dopus5 {Qp}
  27.  
  28.   For Filetype-startup (dobbleclick start) install it as:
  29.   <AREXX> Dopus5:ARexx/Play16-play.dopus5 {Qp} {Ql} {o}
  30.  
  31.  usage:
  32.   select all sound files and start Play16-play.
  33.   if you want to skip a soundfile press the abort button.
  34.   to abort the complete script abort two times in the first 5 secs.
  35.  
  36.  configuration:
  37.   check/change the play16 parameters (playmode) in this script.
  38.   to change the abort time change "stop<5 & secs<5" in this script.
  39.  
  40.  bugs:
  41.   The time display is only 98% correct.
  42.  
  43.  info:
  44.   if you want the same script/GUI for MPEG soundfiles
  45.   use my MPEGA-GUIplay.lha  (Aminet or Supportpage)
  46.   This is the same GUI for MPEGA by Stephane TAVENARD.
  47.  
  48.  EmailWare:
  49.   this script ist Email-ware,
  50.   please mail me your favourit Internet-Site !
  51.  
  52. */
  53. OPTIONS RESULTS
  54.  
  55. playmode="PRE FILTER=AUTO OUT=Paula14c"
  56.  
  57.  
  58.  
  59. PARSE ARG portname' 'handle' 'file
  60.  
  61. IF portname='' THEN portname='DOPUS.1'
  62. ADDRESS VALUE portname
  63.  
  64. IF handle="" THEN DO
  65.  
  66.  LISTER QUERY SOURCE
  67.  handle=result
  68.  IF RC~=0 THEN DO
  69.   DOPUS REQUEST '"no Source-directory selected !?!" OOPS!'
  70.   EXIT
  71.  END
  72.  
  73.  LISTER QUERY Handle selfiles stem files.
  74.  IF files.count=0 THEN DO
  75.   DOPUS REQUEST '"no sound-file selected !?!" OOPS!'
  76.   EXIT
  77.  END
  78.  
  79. END
  80.  
  81. IF file~="" then DO
  82.  files.0=compress(file,'"')
  83.  files.count=1
  84. END
  85.  
  86. LISTER QUERY Handle path
  87. pfad=result
  88.  
  89. LISTER SET Handle BUSY ON
  90. LISTER SET Handle newprogress name info bar abort
  91.  
  92. DO j = 0 TO files.count-1
  93.  
  94.  file='"'pfad||files.j'"'
  95.  
  96.  DOPUS getfiletype file
  97.  art = upper(RESULT)
  98.  skip=0
  99.  if (index(art,"AUDIO")=0 & index(art,"SOUND")=0) | index(art,"MPEG")>0 then
  100.  DO
  101.     in=files.j||'0a'x" is not a sound file ?!"||'0a'x"Filetype="art
  102.     dopus request '"'in'"' "Skip|CDDA|Sound"
  103.     if rc=1 then skip=1
  104.     if rc=2 then art="CDDA"
  105.  END
  106.                                        
  107.  IF SKIP~=1 then DO
  108.  
  109.  call time('R')
  110.  if index(art,"CDDA")>0 then ADDRESS COMMAND 'RUN >NIL: <NIL: play16 'playmode' freq 44100 RAW bits 16 tracks 2 intel V=1 'file' >PIPE:play16t'
  111.  else ADDRESS COMMAND 'RUN >NIL: <NIL: play16 'playmode' V=1 'file' >PIPE:play16t'
  112.  
  113.  CALL Open('play16out','PIPE:play16t','r')
  114.  in=Readch('play16out',1)
  115.  iin=""
  116.  format=" RAW"
  117.  do forever
  118.   in=Readch('play16out',1)
  119.   newl = Verify(in,'0a'x,'m')
  120.   if newl>0 then do
  121.    if index(iin,"Play16")>0 then parse var iin version" by"dummy
  122.    if index(iin,"Filetype")>0 then parse var iin "Filetype is"format"."
  123.    if index(iin,"tracks")>0 then parse var iin dummy": "tracks
  124.    if index(iin,"Bits")>0 then parse var iin dummy": "bits
  125.    if index(iin,"Compression")>0 then parse var iin dummy": "comp
  126.    if index(iin,"time")>0 then parse var iin dummy": "time
  127.    if index(iin,"frequency")>0 then parse var iin dummy": "freq
  128.    if index(iin,"playin")>0 then leave
  129.    if index(iin,"Error")>0 then do
  130.     LISTER SET Handle BUSY OFF
  131.     iin="Play16"||'0a'x||iin
  132.     dopus request '"'iin'"' "Oops"
  133.     CALL Close('play16out')
  134.     exit
  135.    end
  136.    iin=""
  137.  
  138.   end
  139.   iin=iin||in
  140.  end
  141.  
  142.  parse var time pm":"ps
  143.  if tracks=1 then tracks="mono"
  144.  else tracks="stereo"
  145.  format=format" "tracks" "bits"bit "freq"hz"
  146.  ptotal=pm*60+ps
  147.  
  148.  LISTER SET Handle NEWPROGRESS NAME "Name: "files.j
  149.  LISTER SET Handle NEWPROGRESS INFO "00:00 / 00:00 / loading sound..."
  150.  LISTER SET Handle NEWPROGRESS title j+1' / 'files.count' - 'version
  151.  LISTER SET Handle NEWPROGRESS bar ptotal 0
  152.  
  153.  secs=0
  154.  mt=0
  155.  kst=0
  156.  
  157.  do while secs<ptotal
  158.  
  159.   azeit=secs
  160.   secs=TRUNC(time('E'))
  161.   if secs=azeit then address command "wait 1 sec"
  162.   secs=TRUNC(time('E'))
  163.  
  164.   st=secs-kst
  165.   if st>59 then
  166.   DO
  167.    mt=mt+1
  168.    kst=kst+60
  169.    st=secs-kst
  170.   END
  171.  
  172.   zmt=mt
  173.   if length(mt)<2 then zmt="0"mt
  174.   zst=st
  175.   if length(st)<2 then zst="0"st
  176.   zpm=pm
  177.   if length(pm)<2 then zpm="0"pm
  178.  
  179.   LISTER SET Handle NEWPROGRESS INFO zpm":"ps" / "zmt":"zst" / "format
  180.   LISTER SET Handle NEWPROGRESS bar ptotal secs
  181.   LISTER QUERY Handle abort
  182.   skip=result
  183.  
  184.   IF skip=1 THEN
  185.   DO
  186.    ADDRESS COMMAND 'kill play16 >nil:'
  187.    CALL Close('play16out')
  188.    if stop<5 & secs<5 then
  189.    DO
  190.     LISTER REFRESH Handle
  191.     LISTER SET Handle BUSY OFF
  192.     EXIT
  193.    end
  194.    stop=secs
  195.    secs=ptotal
  196.   END
  197.  
  198.  END
  199.  END
  200.  
  201.  LISTER CLEAR Handle abort
  202.  LISTER SELECT Handle '"'files.j'"' OFF
  203.  LISTER REFRESH Handle
  204.  
  205.  
  206. end
  207.  
  208. ADDRESS COMMAND 'kill play16 >nil:'
  209. LISTER SET Handle BUSY OFF
  210. CALL Close('play16out')
  211.  
  212. EXIT
  213.