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 >
Wrap
Text File
|
1994-06-07
|
9KB
|
212 lines
#include "FiveWin.ch"
Function AviVideo()
Local cPrompt // Declared to avoid array range error. See FOR loop
Local oDlg,lMute,lLeft,lRight,lOpen
Local oPLay,oStop,oAvTrack,oReTrack,oOpenClose,oSalir
Local oT1,oT2,oT3,oT4,oT5,oT6,oT7,oT8,oT9,oT10
Local oL1,oL2,oL3,oL4,oL5,oL6,oL7,oL8,oL9,oL10,oL11,oC12,oC13,oC14,oC15
Local l1,l2,l3,l4,l5,l6,l7,l8,l9,l10,l11,c12,c13,c14,c15
Local cBuffer:=Space(200),oSBRight,oSBLeft,nVolR:=0,nVolL:=0
Local oTextLV,oTextRV
Local oTimer,oTracks[25]
Local aoStat[14],acStat[14]
Local cFile:=Space(40),cMiStly,oBitMap
Local nA,oFile,oType,oFind
cMiStly=Alltrim(Str(nOr(WS_TABSTOP,WS_VISIBLE,WS_CHILD,WS_BORDER)))
DEFINE DIALOG oDlg RESOURCE "AVIVIDEO"
mciSendStr("OPEN AVIVIDEO ALIAS VIDEO STYLE POPUP",@cBuffer,oDlg:hWnd)
DEFINE TIMER oTimer INTERVAL 5000 ACTION (GetStat(@acStat,@oDlg),RefreshStat(@aoStat,@acStat))
mciSendStr("CAPABILITY VIDEO CAN EJECT" ,@cBuffer,oDlg:hWnd)
l1 := cBuffer=="verdadero"
mciSendStr("CAPABILITY VIDEO CAN PLAY" ,@cBuffer,oDlg:hWnd)
l2 := cBuffer=="verdadero"
mciSendStr("CAPABILITY VIDEO CAN RECORD" ,@cBuffer,oDlg:hWnd)
l3 := cBuffer=="verdadero"
mciSendStr("CAPABILITY VIDEO CAN REVERSE" ,@cBuffer,oDlg:hWnd)
l4 := cBuffer=="verdadero"
mciSendStr("CAPABILITY VIDEO CAN SAVE",@cBuffer,oDlg:hWnd)
l5 := cBuffer=="verdadero"
mciSendStr("CAPABILITY VIDEO CAN STRECH" ,@cBuffer,oDlg:hWnd)
l6 := cBuffer=="verdadero"
mciSendStr("CAPABILITY VIDEO COMPOUND DEVICE" ,@cBuffer,oDlg:hWnd)
l7 := cBuffer=="verdadero"
mciSendStr("CAPABILITY VIDEO HAS AUDIO" ,@cBuffer,oDlg:hWnd)
l8 := cBuffer=="verdadero"
mciSendStr("CAPABILITY VIDEO HAS VIDEO" ,@cBuffer,oDlg:hWnd)
l9 := cBuffer=="verdadero"
mciSendStr("CAPABILITY VIDEO USES FILES" ,@cBuffer,oDlg:hWnd)
l10 := cBuffer=="verdadero"
mciSendStr("CAPABILITY VIDEO USES PALETTES" ,@cBuffer,oDlg:hWnd)
l11 := cBuffer=="verdadero"
mciSendStr("CAPABILITY VIDEO FAST PLAY RATE" ,@cBuffer,oDlg:hWnd)
c12 := cBuffer
mciSendStr("CAPABILITY VIDEO NORMAL PLAY RATE" ,@cBuffer,oDlg:hWnd)
c13 := cBuffer
mciSendStr("CAPABILITY VIDEO SLOW PLAY RATE" ,@cBuffer,oDlg:hWnd)
c14 := cBuffer
mciSendStr("CAPABILITY VIDEO WINDOWS" ,@cBuffer,oDlg:hWnd)
c15 := cBuffer
REDEFINE BUTTON oPlay ID 103 OF oDlg ACTION mciSendStr("PLAY VIDEO FROM 0",@cBuffer,oDlg:hWnd)
REDEFINE BUTTON oStop ID 109 OF oDlg ACTION mciSendStr("STOP VIDEO",@cBuffer,oDlg:hWnd)
REDEFINE BUTTON oAvTrack ID 101 OF oDlg ACTION ( AvPista(@oDlg),mciSendStr("PLAY VIDEO",@cBuffer,oDlg:hWnd) )
REDEFINE BUTTON oReTrack ID 106 OF oDlg ACTION ( RePista(@oDlg),mciSendStr("PLAY VIDEO",@cBuffer,oDlg:hWnd) )
REDEFINE BUTTON oOpenClose ID 107 OF oDlg ACTION OpenClose(@oDlg)
REDEFINE BUTTON oSalir ID 115 OF oDlg ACTION ( mciSendStr("STOP VIDEO",@cBuffer,oDlg:hWnd),mciSendStr("CLOSE VIDEO",@cBuffer,oDlg:hWnd),oDlg:End() )
REDEFINE BITMAP oBitMap ID 500 OF oDlg
REDEFINE BUTTON oFind ID 116 OF oDlg ACTION ( cFile:=cGetFile("Animation File (*.avi) | *.avi","Select a Animation File"),;
mciSendStr("CLOSE VIDEO",@cBuffer,oDlg:hWnd),;
mciSendStr("OPEN AVIVIDEO!"+Upper(Alltrim(cFile))+" ALIAS VIDEO PARENT "+Alltrim(str(oBitMap:hWnd)),@cBuffer,oDlg:hWnd),;
mciSendStr("put video destination at 0 0 170 156",@cBuffer,oDlg:hWnd),;
mciSendStr("WINDOW VIDEO HANDLE "+Alltrim(str(oBitMap:hWnd)),@cBuffer,oDlg:hWnd),;
oFile:Refresh())
REDEFINE GET oFile VAR cFile ID 300 OF oDlg VALID;
(If(Empty(cFile),(cFile:=cGetFile("Animation File (*.avi) | *.avi","Select a Animation File"))!=nil,.t.),;
mciSendStr("CLOSE VIDEO",@cBuffer,oDlg:hWnd)!=-1,;
mciSendStr("OPEN AVIVIDEO!"+Upper(Alltrim(cFile))+" ALIAS VIDEO PARENT "+Alltrim(str(oBitMap:hWnd)),@cBuffer,oDlg:hWnd)!=-1,;
mciSendStr("put video destination at 0 0 170 156",@cBuffer,oDlg:hWnd)!=-1,;
mciSendStr("WINDOW VIDEO HANDLE "+Alltrim(str(oBitMap:hWnd)),@cBuffer,oDlg:hWnd)!=-1,;
oFile:Refresh()==nil)
REDEFINE CHECKBOX oL1 VAR l1 ID 150 OF oDlg
REDEFINE CHECKBOX oL2 VAR l2 ID 151 OF oDlg
REDEFINE CHECKBOX oL3 VAR l3 ID 152 OF oDlg
REDEFINE CHECKBOX oL4 VAR l4 ID 153 OF oDlg
REDEFINE CHECKBOX oL5 VAR l5 ID 154 OF oDlg
REDEFINE CHECKBOX oL6 VAR l6 ID 155 OF oDlg
REDEFINE CHECKBOX oL7 VAR l7 ID 156 OF oDlg
REDEFINE CHECKBOX oL8 VAR l8 ID 157 OF oDlg
REDEFINE CHECKBOX oL6 VAR l9 ID 158 OF oDlg
REDEFINE CHECKBOX oL7 VAR l10 ID 159 OF oDlg
REDEFINE CHECKBOX oL8 VAR l11 ID 140 OF oDlg
REDEFINE SAY oC12 PROMPT c12 ID 141 OF oDlg
REDEFINE SAY oC13 PROMPT c13 ID 142 OF oDlg
REDEFINE SAY oC14 PROMPT c14 ID 143 OF oDlg
REDEFINE SAY oC15 PROMPT c15 ID 144 OF oDlg
mciSendStr("CAPABILITY VIDEO DEVICE TYPE" ,@cBuffer,oDlg:hWnd)
REDEFINE SAY oType PROMPT UPPER(cBuffer) ID 190 OF oDlg
AuxGetVol(5,@nVolL,@nVolR)
REDEFINE SAY oTextLV PROMPT Str(nVolL) ID 122 OF oDlg
REDEFINE SAY oTextRV PROMPT Str(nVolR) ID 123 OF oDlg
GetStat(@acStat,@oDlg)
For nA=1 TO LEN(aoStat)
cPrompt := acStat[nA]
REDEFINE SAY aoStat[nA] PROMPT cPrompt ID 160+(nA-1) OF oDlg
Next nA
REDEFINE SCROLLBAR oSBRight ID 130 RANGE 0,32 ;
ON UP (AuxGetVol(5,@nVolL,@nVolR),;
AuxSetVol(5,if(nVolL<63000,nVolL+2040,nVolL),nVolR),;
AuxGetVol(5,@nVolL,@nVolR),;
oTextLV:SetText(Str(nVolL)),oTextRV:SetText(Str(nVolR)) ) ;
ON DOWN (AuxGetVol(5,@nVolL,@nVolR),;
AuxSetVol(5,if(nVolL>2040,nVolL-2040,nVolL),nVolR),;
AuxGetVol(5,@nVolL,@nVolR),;
oTextLV:SetText(Str(nVolL)),oTextRV:SetText(Str(nVolR)) ) OF oDlg
REDEFINE SCROLLBAR oSBLeft ID 131 RANGE 0,32 ;
ON UP (AuxGetVol(5,@nVolL,@nVolR),;
AuxSetVol(5,nVolL,if(nVolR<63000,nVolR+2040,nVolR)),;
AuxGetVol(5,@nVolL,@nVolR),;
oTextLV:SetText(Str(nVolL)),oTextRV:SetText(Str(nVolR)) ) ;
ON DOWN (AuxGetVol(5,@nVolL,@nVolR),;
AuxSetVol(5,nVolL,if(nVolR>2040,nVolR-2040,nVolR)),;
AuxGetVol(5,@nVolL,@nVolR),;
oTextLV:SetText(Str(nVolL)),oTextRV:SetText(Str(nVolR)) ) OF oDlg
ACTIVATE DIALOG oDlg ON INIT (oSBLeft:SetPos(nVolL/2047)==oSBRight:SetPos(nVolR/2047),oTimer:Activate()==Nil)
RELEASE TIMER oTimer
RETURN Nil
Static Function GetStat(acStat,oDlg)
Local cBuffer:=Space(200),aMessages:={"STATUS VIDEO CURRENT TRACK",;
"STATUS VIDEO FORWARD",;
"STATUS VIDEO LENGTH",;
"STATUS VIDEO MEDIA PRESENT",;
"STATUS VIDEO MODE",;
"STATUS VIDEO NUMBER OF TRACKS",;
"STATUS VIDEO PALETTE HANDLE",;
"STATUS VIDEO POSITION",;
"STATUS VIDEO READY",;
"STATUS VIDEO SPEED",;
"STATUS VIDEO START POSITION",;
"STATUS VIDEO STRECH",;
"STATUS VIDEO TIME FORMAT",;
"STATUS VIDEO WINDOW HANDLE"}
Local nA,cActTrack
For nA=1 TO Len(aMessages)
mciSendStr(aMessages[nA],@cBuffer,oDlg:hWnd)
acStat[nA]=Upper(trim(cBuffer))
Next nA
Return
Static Function RefreshStat(aoStat,acStat)
Local nA
For nA=1 to Len(aoStat)
aoStat[nA]:SetText(acStat[nA])
Next nA
Return
Static Function ActPista(oDlg)
Local nActPista,cBuffer:=Space(200)
mciSendStr("STATUS VIDEO CURRENT TRACK",@cBuffer,oDlg:hWnd)
nActPista=Val(cBuffer)
Return "TRACK : "+Ltrim(Str(nActPista))
Static Function OpenClose(oDlg)
Local cStatus,cBuffer:=Space(200)
mciSendStr("STATUS VIDEO MODE",@cBuffer,oDlg:hWnd)
If Upper(cBuffer)="ABIERTO" //.or. Empty(Upper(cBuffer))
mciSendStr("SET VIDEO DOOR CLOSED",@cBuffer,oDlg:hWnd)
Else
mciSendStr("SET VIDEO DOOR OPEN",@cBuffer,oDlg:hWnd)
Endif
Return
Static Function AvPista(oDlg)
Local nActPista,cBuffer:=Space(200)
mciSendStr("STATUS VIDEO CURRENT TRACK",@cBuffer,oDlg:hWnd)
nActPista=Val(cBuffer)
mciSendStr("SEEK VIDEO TO "+ltrim(Str(nActPista+1)),@cBuffer,oDlg:hWnd)
Return
Static Function RePista(oDlg)
Local nActPista,cBuffer:=Space(200)
mciSendStr("STATUS VIDEO CURRENT TRACK",@cBuffer,oDlg:hWnd)
nActPista=Val(cBuffer)
mciSendStr("SEEK VIDEO TO "+ltrim(Str(nActPista-1)),@cBuffer,oDlg:hWnd)
Return