[4] | 1 | /* rexx - Get the extension of video types added using
|
---|
| 2 | the multimedia setup object. For example *.QT.
|
---|
| 3 | This script is called by M_MMVideo.
|
---|
| 4 | */
|
---|
| 5 |
|
---|
| 6 | call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
|
---|
| 7 | call SysLoadFuncs
|
---|
| 8 |
|
---|
| 9 | allExt=""
|
---|
| 10 | waveaudio=""
|
---|
| 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 video devices */
|
---|
| 52 | /* OpenMPEG by IBM is handled by it's own script called by M_MMPG */
|
---|
| 53 | IF POS("IBMMPEG", TRANSLATE(WORD(waveaudio, b))) = 0 THEN
|
---|
| 54 | tempExt=tempExt||' '||parseWaveDevice(WORD(waveaudio, b))
|
---|
| 55 | END
|
---|
| 56 |
|
---|
| 57 | /* Build string and remove known extensions */
|
---|
| 58 | DO b=1 to WORDS(tempExt)
|
---|
| 59 | curExt=WORD(tempExt,b)
|
---|
| 60 | SELECT
|
---|
| 61 | WHEN TRANSLATE(curExt)="AVI" THEN NOP /* Already supported by a spezialized class */
|
---|
| 62 | WHEN TRANSLATE(curExt)="FLI" THEN NOP
|
---|
| 63 | WHEN TRANSLATE(curExt)="MOV" THEN NOP
|
---|
| 64 | WHEN TRANSLATE(curExt)="MPG" THEN NOP
|
---|
| 65 |
|
---|
| 66 | OTHERWISE
|
---|
| 67 | if allExt\='' THEN allExt=allExt||','
|
---|
| 68 | allExt=allExt||'*.'||STRIP(curExt)
|
---|
| 69 | END
|
---|
| 70 | END
|
---|
| 71 | return allExt
|
---|
| 72 | EXIT
|
---|
| 73 |
|
---|
| 74 | /**************************************/
|
---|
| 75 |
|
---|
| 76 | parseDrivers:
|
---|
| 77 | a=a+1
|
---|
| 78 | DO WHILE LEFT(mmini.a,1)\='['
|
---|
| 79 | IF ABBREV(TRANSLATE(mmini.a),"DIGITALVIDEO")=1 THEN DO
|
---|
| 80 | thePos=POS("=",mmini.a)
|
---|
| 81 | if thePos=0 then return
|
---|
| 82 | waveaudio=TRANSLATE(RIGHT(mmini.a, LENGTH(mmini.a)-thePos)," ",",") /* There may be several entries */
|
---|
| 83 | return
|
---|
| 84 | END
|
---|
| 85 | a=a+1
|
---|
| 86 | IF a>mmini.0 THEN return
|
---|
| 87 | END
|
---|
| 88 | return
|
---|
| 89 |
|
---|
| 90 | parseWavedevice:
|
---|
| 91 |
|
---|
| 92 | theDevice='['ARG(1)']'
|
---|
| 93 | DO a=1 to mmini.0
|
---|
| 94 | if ABBREV(TRANSLATE(mmini.a), TRANSLATE(theDevice))=1 THEN DO
|
---|
| 95 | /* Device section found */
|
---|
| 96 | a=a+1
|
---|
| 97 | DO WHILE LEFT(mmini.a,1)\='['
|
---|
| 98 | IF ABBREV(TRANSLATE(mmini.a),"EXTNAMES")=1 THEN DO
|
---|
| 99 | thePos=POS("=",mmini.a)
|
---|
| 100 | if thePos=0 then return
|
---|
| 101 | ext=SUBWORD(TRANSLATE(RIGHT(mmini.a, LENGTH(mmini.a)-thePos)," ",","),2)
|
---|
| 102 | return ext
|
---|
| 103 | END
|
---|
| 104 | a=a+1
|
---|
| 105 | IF a>mmini.0 THEN return ""
|
---|
| 106 | END
|
---|
| 107 | END
|
---|
| 108 | END
|
---|
| 109 | return ""
|
---|
| 110 |
|
---|