home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 16 / CD_ASCQ_16_0994.iso / news / 4611 / fw16d.ins / SAMPLES / AVIVIDEO.PRG < prev    next >
Text File  |  1994-06-07  |  9KB  |  212 lines

  1. #include "FiveWin.ch"
  2.  
  3. Function AviVideo()
  4.    Local cPrompt    // Declared to avoid array range error. See FOR loop
  5.    Local oDlg,lMute,lLeft,lRight,lOpen
  6.    Local oPLay,oStop,oAvTrack,oReTrack,oOpenClose,oSalir
  7.    Local oT1,oT2,oT3,oT4,oT5,oT6,oT7,oT8,oT9,oT10
  8.    Local oL1,oL2,oL3,oL4,oL5,oL6,oL7,oL8,oL9,oL10,oL11,oC12,oC13,oC14,oC15
  9.    Local l1,l2,l3,l4,l5,l6,l7,l8,l9,l10,l11,c12,c13,c14,c15
  10.    Local cBuffer:=Space(200),oSBRight,oSBLeft,nVolR:=0,nVolL:=0
  11.    Local oTextLV,oTextRV
  12.    Local oTimer,oTracks[25]
  13.    Local aoStat[14],acStat[14]
  14.    Local cFile:=Space(40),cMiStly,oBitMap
  15.    Local nA,oFile,oType,oFind
  16.   
  17.    cMiStly=Alltrim(Str(nOr(WS_TABSTOP,WS_VISIBLE,WS_CHILD,WS_BORDER)))
  18.  
  19.    DEFINE DIALOG oDlg RESOURCE "AVIVIDEO"
  20.    
  21.    mciSendStr("OPEN AVIVIDEO ALIAS VIDEO STYLE POPUP",@cBuffer,oDlg:hWnd)
  22.  
  23.     DEFINE TIMER oTimer INTERVAL 5000 ACTION (GetStat(@acStat,@oDlg),RefreshStat(@aoStat,@acStat))
  24.  
  25.    mciSendStr("CAPABILITY VIDEO CAN EJECT"      ,@cBuffer,oDlg:hWnd)
  26.    l1 :=  cBuffer=="verdadero"
  27.    mciSendStr("CAPABILITY VIDEO CAN PLAY"       ,@cBuffer,oDlg:hWnd)  
  28.    l2 := cBuffer=="verdadero"
  29.    mciSendStr("CAPABILITY VIDEO CAN RECORD"     ,@cBuffer,oDlg:hWnd)
  30.    l3 := cBuffer=="verdadero"
  31.    mciSendStr("CAPABILITY VIDEO CAN REVERSE"       ,@cBuffer,oDlg:hWnd)
  32.    l4 := cBuffer=="verdadero"
  33.    mciSendStr("CAPABILITY VIDEO CAN SAVE",@cBuffer,oDlg:hWnd)
  34.    l5 := cBuffer=="verdadero"
  35.    mciSendStr("CAPABILITY VIDEO CAN STRECH"      ,@cBuffer,oDlg:hWnd)
  36.    l6 := cBuffer=="verdadero"
  37.    mciSendStr("CAPABILITY VIDEO COMPOUND DEVICE"      ,@cBuffer,oDlg:hWnd)
  38.    l7 := cBuffer=="verdadero"
  39.    mciSendStr("CAPABILITY VIDEO HAS AUDIO"      ,@cBuffer,oDlg:hWnd)
  40.    l8 := cBuffer=="verdadero"
  41.    mciSendStr("CAPABILITY VIDEO HAS VIDEO"      ,@cBuffer,oDlg:hWnd)
  42.    l9 := cBuffer=="verdadero"
  43.    mciSendStr("CAPABILITY VIDEO USES FILES"      ,@cBuffer,oDlg:hWnd)
  44.    l10 := cBuffer=="verdadero"
  45.    mciSendStr("CAPABILITY VIDEO USES PALETTES"      ,@cBuffer,oDlg:hWnd)
  46.    l11 := cBuffer=="verdadero"
  47.    mciSendStr("CAPABILITY VIDEO FAST PLAY RATE"      ,@cBuffer,oDlg:hWnd)
  48.    c12 := cBuffer
  49.    mciSendStr("CAPABILITY VIDEO NORMAL PLAY RATE"      ,@cBuffer,oDlg:hWnd)
  50.    c13 := cBuffer
  51.    mciSendStr("CAPABILITY VIDEO SLOW PLAY RATE"      ,@cBuffer,oDlg:hWnd)
  52.    c14 := cBuffer
  53.    mciSendStr("CAPABILITY VIDEO WINDOWS"      ,@cBuffer,oDlg:hWnd)
  54.    c15 := cBuffer
  55.  
  56.  
  57.    REDEFINE BUTTON oPlay      ID 103 OF oDlg ACTION mciSendStr("PLAY VIDEO FROM 0",@cBuffer,oDlg:hWnd)
  58.    REDEFINE BUTTON oStop      ID 109 OF oDlg ACTION mciSendStr("STOP VIDEO",@cBuffer,oDlg:hWnd)
  59.    REDEFINE BUTTON oAvTrack   ID 101 OF oDlg ACTION ( AvPista(@oDlg),mciSendStr("PLAY VIDEO",@cBuffer,oDlg:hWnd) )
  60.    REDEFINE BUTTON oReTrack   ID 106 OF oDlg ACTION ( RePista(@oDlg),mciSendStr("PLAY VIDEO",@cBuffer,oDlg:hWnd) )
  61.    REDEFINE BUTTON oOpenClose ID 107 OF oDlg ACTION OpenClose(@oDlg)
  62.    REDEFINE BUTTON oSalir     ID 115 OF oDlg ACTION ( mciSendStr("STOP VIDEO",@cBuffer,oDlg:hWnd),mciSendStr("CLOSE VIDEO",@cBuffer,oDlg:hWnd),oDlg:End() )
  63.  
  64.    REDEFINE BITMAP oBitMap ID 500 OF oDlg
  65.  
  66.    REDEFINE BUTTON oFind ID 116 OF oDlg ACTION ( cFile:=cGetFile("Animation File (*.avi) | *.avi","Select a Animation File"),;
  67.     mciSendStr("CLOSE VIDEO",@cBuffer,oDlg:hWnd),;
  68.     mciSendStr("OPEN AVIVIDEO!"+Upper(Alltrim(cFile))+" ALIAS VIDEO PARENT "+Alltrim(str(oBitMap:hWnd)),@cBuffer,oDlg:hWnd),;
  69.     mciSendStr("put video destination at 0 0 170 156",@cBuffer,oDlg:hWnd),;
  70.     mciSendStr("WINDOW VIDEO HANDLE "+Alltrim(str(oBitMap:hWnd)),@cBuffer,oDlg:hWnd),;
  71.     oFile:Refresh())
  72.  
  73.    REDEFINE GET oFile VAR cFile ID 300 OF oDlg VALID;
  74.    (If(Empty(cFile),(cFile:=cGetFile("Animation File (*.avi) | *.avi","Select a Animation File"))!=nil,.t.),;
  75.     mciSendStr("CLOSE VIDEO",@cBuffer,oDlg:hWnd)!=-1,;
  76.     mciSendStr("OPEN AVIVIDEO!"+Upper(Alltrim(cFile))+" ALIAS VIDEO PARENT "+Alltrim(str(oBitMap:hWnd)),@cBuffer,oDlg:hWnd)!=-1,;
  77.     mciSendStr("put video destination at 0 0 170 156",@cBuffer,oDlg:hWnd)!=-1,;
  78.     mciSendStr("WINDOW VIDEO HANDLE "+Alltrim(str(oBitMap:hWnd)),@cBuffer,oDlg:hWnd)!=-1,;
  79.     oFile:Refresh()==nil)
  80.  
  81.  
  82.    REDEFINE CHECKBOX oL1 VAR l1  ID 150 OF oDlg
  83.    REDEFINE CHECKBOX oL2 VAR l2  ID 151 OF oDlg
  84.    REDEFINE CHECKBOX oL3 VAR l3  ID 152 OF oDlg
  85.    REDEFINE CHECKBOX oL4 VAR l4  ID 153 OF oDlg
  86.    REDEFINE CHECKBOX oL5 VAR l5  ID 154 OF oDlg
  87.    REDEFINE CHECKBOX oL6 VAR l6  ID 155 OF oDlg
  88.    REDEFINE CHECKBOX oL7 VAR l7  ID 156 OF oDlg
  89.    REDEFINE CHECKBOX oL8 VAR l8  ID 157 OF oDlg
  90.    REDEFINE CHECKBOX oL6 VAR l9  ID 158 OF oDlg
  91.    REDEFINE CHECKBOX oL7 VAR l10 ID 159 OF oDlg
  92.    REDEFINE CHECKBOX oL8 VAR l11 ID 140 OF oDlg
  93.  
  94.    REDEFINE SAY oC12 PROMPT c12 ID 141 OF oDlg
  95.    REDEFINE SAY oC13 PROMPT c13 ID 142 OF oDlg
  96.    REDEFINE SAY oC14 PROMPT c14 ID 143 OF oDlg
  97.    REDEFINE SAY oC15 PROMPT c15 ID 144 OF oDlg
  98.  
  99.    mciSendStr("CAPABILITY VIDEO DEVICE TYPE"      ,@cBuffer,oDlg:hWnd)
  100.    REDEFINE SAY oType PROMPT UPPER(cBuffer) ID 190 OF oDlg
  101.  
  102.    AuxGetVol(5,@nVolL,@nVolR)
  103.    REDEFINE SAY oTextLV PROMPT Str(nVolL) ID 122 OF oDlg
  104.    REDEFINE SAY oTextRV PROMPT Str(nVolR) ID 123 OF oDlg
  105.  
  106.    GetStat(@acStat,@oDlg)
  107.    For nA=1 TO LEN(aoStat)
  108.       cPrompt := acStat[nA]
  109.       REDEFINE SAY aoStat[nA] PROMPT cPrompt ID 160+(nA-1) OF oDlg
  110.    Next nA
  111.  
  112.    REDEFINE SCROLLBAR oSBRight ID 130 RANGE 0,32 ;
  113.     ON UP   (AuxGetVol(5,@nVolL,@nVolR),;
  114.              AuxSetVol(5,if(nVolL<63000,nVolL+2040,nVolL),nVolR),;
  115.              AuxGetVol(5,@nVolL,@nVolR),;
  116.              oTextLV:SetText(Str(nVolL)),oTextRV:SetText(Str(nVolR)) ) ;
  117.     ON DOWN (AuxGetVol(5,@nVolL,@nVolR),;
  118.              AuxSetVol(5,if(nVolL>2040,nVolL-2040,nVolL),nVolR),;
  119.              AuxGetVol(5,@nVolL,@nVolR),;
  120.              oTextLV:SetText(Str(nVolL)),oTextRV:SetText(Str(nVolR)) )  OF oDlg
  121.  
  122.    REDEFINE SCROLLBAR oSBLeft  ID 131 RANGE 0,32 ;
  123.     ON UP  (AuxGetVol(5,@nVolL,@nVolR),;
  124.             AuxSetVol(5,nVolL,if(nVolR<63000,nVolR+2040,nVolR)),;
  125.             AuxGetVol(5,@nVolL,@nVolR),;
  126.             oTextLV:SetText(Str(nVolL)),oTextRV:SetText(Str(nVolR)) ) ;
  127.     ON DOWN (AuxGetVol(5,@nVolL,@nVolR),;
  128.              AuxSetVol(5,nVolL,if(nVolR>2040,nVolR-2040,nVolR)),;
  129.              AuxGetVol(5,@nVolL,@nVolR),;
  130.              oTextLV:SetText(Str(nVolL)),oTextRV:SetText(Str(nVolR)) ) OF oDlg
  131.  
  132.    ACTIVATE DIALOG oDlg ON INIT (oSBLeft:SetPos(nVolL/2047)==oSBRight:SetPos(nVolR/2047),oTimer:Activate()==Nil)
  133.  
  134.    RELEASE TIMER oTimer   
  135.  
  136.    RETURN Nil
  137.  
  138. Static Function GetStat(acStat,oDlg)
  139.    Local cBuffer:=Space(200),aMessages:={"STATUS VIDEO CURRENT TRACK",;
  140.                                          "STATUS VIDEO FORWARD",;
  141.                                          "STATUS VIDEO LENGTH",;
  142.                                          "STATUS VIDEO MEDIA PRESENT",;
  143.                                          "STATUS VIDEO MODE",;
  144.                                          "STATUS VIDEO NUMBER OF TRACKS",;
  145.                                          "STATUS VIDEO PALETTE HANDLE",;
  146.                                          "STATUS VIDEO POSITION",;
  147.                                          "STATUS VIDEO READY",;
  148.                                          "STATUS VIDEO SPEED",;
  149.                                          "STATUS VIDEO START POSITION",;
  150.                                          "STATUS VIDEO STRECH",;
  151.                                          "STATUS VIDEO TIME FORMAT",;
  152.                                          "STATUS VIDEO WINDOW HANDLE"}
  153.    Local nA,cActTrack
  154.  
  155.    For nA=1 TO Len(aMessages)
  156.       mciSendStr(aMessages[nA],@cBuffer,oDlg:hWnd)
  157.       acStat[nA]=Upper(trim(cBuffer))
  158.    Next nA
  159.    Return
  160.  
  161. Static Function RefreshStat(aoStat,acStat)
  162.    Local nA
  163.    
  164.    For nA=1 to Len(aoStat)
  165.       aoStat[nA]:SetText(acStat[nA])
  166.    Next nA
  167.    Return
  168.  
  169.  
  170. Static Function ActPista(oDlg)
  171.    Local nActPista,cBuffer:=Space(200)
  172.  
  173.    mciSendStr("STATUS VIDEO CURRENT TRACK",@cBuffer,oDlg:hWnd)
  174.    nActPista=Val(cBuffer)
  175.  
  176.    Return "TRACK : "+Ltrim(Str(nActPista))
  177.  
  178.  
  179. Static Function OpenClose(oDlg)
  180.    Local cStatus,cBuffer:=Space(200)
  181.  
  182.    mciSendStr("STATUS VIDEO MODE",@cBuffer,oDlg:hWnd)
  183.  
  184.    If Upper(cBuffer)="ABIERTO" //.or. Empty(Upper(cBuffer))
  185.       mciSendStr("SET VIDEO DOOR CLOSED",@cBuffer,oDlg:hWnd)
  186.    Else
  187.       mciSendStr("SET VIDEO DOOR OPEN",@cBuffer,oDlg:hWnd)
  188.    Endif
  189.   
  190.    Return
  191.  
  192.  
  193. Static Function AvPista(oDlg)
  194.    Local nActPista,cBuffer:=Space(200)
  195.  
  196.    mciSendStr("STATUS VIDEO CURRENT TRACK",@cBuffer,oDlg:hWnd)
  197.    nActPista=Val(cBuffer)
  198.  
  199.    mciSendStr("SEEK VIDEO TO "+ltrim(Str(nActPista+1)),@cBuffer,oDlg:hWnd)
  200.   
  201.    Return
  202.  
  203. Static Function RePista(oDlg)
  204.    Local nActPista,cBuffer:=Space(200)
  205.  
  206.    mciSendStr("STATUS VIDEO CURRENT TRACK",@cBuffer,oDlg:hWnd)
  207.    nActPista=Val(cBuffer)
  208.  
  209.    mciSendStr("SEEK VIDEO TO "+ltrim(Str(nActPista-1)),@cBuffer,oDlg:hWnd)
  210.    
  211.    Return
  212.