[2] | 1 | /* rexx - Get the extension of audio types added using
|
---|
| 2 | the multimedia setup object. For example *.FLA.
|
---|
[4] | 3 | This script is called by M_MMAudio and mmfind.exe.
|
---|
[2] | 4 | */
|
---|
| 5 |
|
---|
| 6 | call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
|
---|
| 7 | call SysLoadFuncs
|
---|
| 8 |
|
---|
| 9 | allExt=""
|
---|
[4] | 10 | waveaudio=""
|
---|
[2] | 11 |
|
---|
| 12 | /* Get MMOS2 directory */
|
---|
| 13 | mmos2Dir=STRIP(TRANSLATE(value("MMBASE",,"OS2ENVIRONMENT")," ",";"))
|
---|
| 14 | if LEFT(mmos2Dir,1)='\' THEN
|
---|
| 15 | mmpm2Ini=mmos2Dir||'mmpm2.ini'
|
---|
| 16 | else
|
---|
| 17 | mmpm2Ini=mmos2Dir||'\mmpm2.ini'
|
---|
| 18 |
|
---|
| 19 | if STREAM(mmpm2ini, "C", "Query exists")='' THEN DO
|
---|
| 20 | /* MMPM2.INI not found */
|
---|
| 21 | rc=""
|
---|
| 22 | exit ""
|
---|
| 23 | END
|
---|
| 24 |
|
---|
| 25 | /* Read ini */
|
---|
| 26 | a=0
|
---|
| 27 | DO WHILE LINES(mmpm2ini)
|
---|
| 28 | a=a+1
|
---|
| 29 | mmini.a=STRIP(LINEIN(mmpm2ini))
|
---|
| 30 | END
|
---|
| 31 | mmini.0=a
|
---|
| 32 | ret=STREAM(mmpm2ini, "C", "close")
|
---|
| 33 |
|
---|
| 34 | /* Find [DRIVERS] section */
|
---|
| 35 | DO a=1 to mmini.0
|
---|
| 36 | if ABBREV(TRANSLATE(mmini.a), "[DRIVERS]")=1 THEN DO
|
---|
| 37 | call parseDrivers
|
---|
| 38 | LEAVE
|
---|
| 39 | END
|
---|
| 40 | END
|
---|
| 41 |
|
---|
| 42 | if waveaudio="" THEN DO
|
---|
| 43 | rc=""
|
---|
| 44 | exit ""
|
---|
| 45 | END
|
---|
| 46 | /*Now we have the wave device(s) */
|
---|
| 47 |
|
---|
| 48 | /* Get extensions from all devices */
|
---|
| 49 | tempext=""
|
---|
| 50 | DO b=1 to WORDS(waveaudio)
|
---|
| 51 | /* We may have several waveaudio devices */
|
---|
| 52 | tempExt=tempExt||' '||parseWaveDevice(WORD(waveaudio, b))
|
---|
| 53 | END
|
---|
| 54 |
|
---|
| 55 | /* Build string and remove known extensions */
|
---|
| 56 | DO b=1 to WORDS(tempExt)
|
---|
| 57 | curExt=WORD(tempExt,b)
|
---|
| 58 | SELECT
|
---|
| 59 | WHEN TRANSLATE(curExt)="MP3" THEN NOP /* Already supported by a spezialized class */
|
---|
| 60 | WHEN TRANSLATE(curExt)="OGG" THEN NOP
|
---|
| 61 | WHEN TRANSLATE(curExt)="FLA" THEN NOP
|
---|
| 62 | WHEN TRANSLATE(curExt)="FLAC" THEN NOP
|
---|
[4] | 63 | WHEN TRANSLATE(curExt)="WAV" THEN NOP
|
---|
[2] | 64 |
|
---|
| 65 | OTHERWISE
|
---|
| 66 | if allExt\='' THEN allExt=allExt||','
|
---|
| 67 | allExt=allExt||'*.'||STRIP(curExt)
|
---|
| 68 | END
|
---|
| 69 | END
|
---|
| 70 | return allExt
|
---|
| 71 | EXIT
|
---|
| 72 |
|
---|
| 73 | /**************************************/
|
---|
| 74 |
|
---|
| 75 | parseDrivers:
|
---|
| 76 | a=a+1
|
---|
| 77 | DO WHILE LEFT(mmini.a,1)\='['
|
---|
| 78 | IF ABBREV(TRANSLATE(mmini.a),"WAVEAUDIO")=1 THEN DO
|
---|
| 79 | thePos=POS("=",mmini.a)
|
---|
| 80 | if thePos=0 then return
|
---|
| 81 | waveaudio=TRANSLATE(RIGHT(mmini.a, LENGTH(mmini.a)-thePos)," ",",")
|
---|
| 82 | return
|
---|
| 83 | END
|
---|
| 84 | a=a+1
|
---|
[4] | 85 | IF a>mmini.0 THEN return
|
---|
[2] | 86 | END
|
---|
| 87 | return
|
---|
| 88 |
|
---|
| 89 | parseWavedevice:
|
---|
| 90 |
|
---|
| 91 | theDevice='['ARG(1)']'
|
---|
| 92 | DO a=1 to mmini.0
|
---|
| 93 | if ABBREV(TRANSLATE(mmini.a), TRANSLATE(theDevice))=1 THEN DO
|
---|
| 94 | /* Device section found */
|
---|
| 95 | a=a+1
|
---|
| 96 | DO WHILE LEFT(mmini.a,1)\='['
|
---|
| 97 | IF ABBREV(TRANSLATE(mmini.a),"EXTNAMES")=1 THEN DO
|
---|
| 98 | thePos=POS("=",mmini.a)
|
---|
| 99 | if thePos=0 then return
|
---|
| 100 | ext=SUBWORD(TRANSLATE(RIGHT(mmini.a, LENGTH(mmini.a)-thePos)," ",","),2)
|
---|
| 101 | return ext
|
---|
| 102 | END
|
---|
| 103 | a=a+1
|
---|
[4] | 104 | IF a>mmini.0 THEN return ""
|
---|
[2] | 105 | END
|
---|
| 106 | END
|
---|
| 107 | END
|
---|
| 108 | return ""
|
---|