| 1 | /* rexx - Get the extension of MPEG types added using
|
|---|
| 2 | the multimedia setup object. For example *.DAT.
|
|---|
| 3 | This script is called by M_MMPG.
|
|---|
| 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 | /* We only want OpenMPEG by IBM */
|
|---|
| 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 | WHEN TRANSLATE(curExt)="VBS" THEN NOP /* This one is also handled by MMMPG */
|
|---|
| 66 |
|
|---|
| 67 |
|
|---|
| 68 | OTHERWISE
|
|---|
| 69 | if allExt\='' THEN allExt=allExt||','
|
|---|
| 70 | allExt=allExt||'*.'||STRIP(curExt)
|
|---|
| 71 | END
|
|---|
| 72 | END
|
|---|
| 73 |
|
|---|
| 74 | return allExt
|
|---|
| 75 | EXIT
|
|---|
| 76 |
|
|---|
| 77 | /**************************************/
|
|---|
| 78 |
|
|---|
| 79 | parseDrivers:
|
|---|
| 80 | a=a+1
|
|---|
| 81 | DO WHILE LEFT(mmini.a,1)\='['
|
|---|
| 82 | IF ABBREV(TRANSLATE(mmini.a),"DIGITALVIDEO")=1 THEN DO
|
|---|
| 83 | thePos=POS("=",mmini.a)
|
|---|
| 84 | if thePos=0 then return
|
|---|
| 85 | waveaudio=TRANSLATE(RIGHT(mmini.a, LENGTH(mmini.a)-thePos)," ",",") /* There may be several entries */
|
|---|
| 86 | return
|
|---|
| 87 | END
|
|---|
| 88 | a=a+1
|
|---|
| 89 | IF a>mmini.0 THEN return
|
|---|
| 90 | END
|
|---|
| 91 | return
|
|---|
| 92 |
|
|---|
| 93 | parseWavedevice:
|
|---|
| 94 |
|
|---|
| 95 | theDevice='['ARG(1)']'
|
|---|
| 96 | DO a=1 to mmini.0
|
|---|
| 97 | if ABBREV(TRANSLATE(mmini.a), TRANSLATE(theDevice))=1 THEN DO
|
|---|
| 98 | /* Device section found */
|
|---|
| 99 | a=a+1
|
|---|
| 100 | DO WHILE LEFT(mmini.a,1)\='['
|
|---|
| 101 | IF ABBREV(TRANSLATE(mmini.a),"EXTNAMES")=1 THEN DO
|
|---|
| 102 | thePos=POS("=",mmini.a)
|
|---|
| 103 | if thePos=0 then return
|
|---|
| 104 | ext=SUBWORD(TRANSLATE(RIGHT(mmini.a, LENGTH(mmini.a)-thePos)," ",","),2)
|
|---|
| 105 | return ext
|
|---|
| 106 | END
|
|---|
| 107 | a=a+1
|
|---|
| 108 | IF a>mmini.0 THEN return ""
|
|---|
| 109 | END
|
|---|
| 110 | END
|
|---|
| 111 | END
|
|---|
| 112 | return ""
|
|---|