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