mirror of
https://github.com/microsoft/Microsoft-3D-Movie-Maker.git
synced 2024-11-22 02:12:33 +01:00
159 lines
3.2 KiB
C++
159 lines
3.2 KiB
C++
/* Copyright (c) Microsoft Corporation.
|
|
Licensed under the MIT License. */
|
|
|
|
/* Copyright (c) Microsoft Corporation.
|
|
Licensed under the MIT License. */
|
|
|
|
/***************************************************************************
|
|
Author: ShonK
|
|
Project: Kauai
|
|
Copyright (c) Microsoft Corporation
|
|
|
|
Video playback.
|
|
|
|
***************************************************************************/
|
|
#ifndef VIDEO_H
|
|
#define VIDEO_H
|
|
|
|
|
|
/***************************************************************************
|
|
Generic video class. This is an interface that supports the GVDS
|
|
(video stream) and GVDW (video window) classes.
|
|
***************************************************************************/
|
|
typedef class GVID *PGVID;
|
|
#define GVID_PAR CMH
|
|
#define kclsGVID 'GVID'
|
|
class GVID : public GVID_PAR
|
|
{
|
|
RTCLASS_DEC
|
|
|
|
protected:
|
|
GVID(long hid);
|
|
~GVID(void) {}
|
|
|
|
public:
|
|
static PGVID PgvidNew(PFNI pfni, PGOB pgobBase,
|
|
bool fHwndBased = fFalse, long hid = hidNil);
|
|
|
|
virtual long NfrMac(void) = 0;
|
|
virtual long NfrCur(void) = 0;
|
|
virtual void GotoNfr(long nfr) = 0;
|
|
|
|
virtual bool FPlaying(void) = 0;
|
|
virtual bool FPlay(RC *prc = pvNil) = 0;
|
|
virtual void Stop(void) = 0;
|
|
|
|
virtual void Draw(PGNV pgnv, RC *prc) = 0;
|
|
virtual void GetRc(RC *prc) = 0;
|
|
virtual void SetRcPlay(RC *prc) = 0;
|
|
};
|
|
|
|
|
|
/****************************************
|
|
Video stream class.
|
|
****************************************/
|
|
typedef class GVDS *PGVDS;
|
|
#define GVDS_PAR GVID
|
|
#define kclsGVDS 'GVDS'
|
|
class GVDS : public GVDS_PAR
|
|
{
|
|
RTCLASS_DEC
|
|
CMD_MAP_DEC(GVDS)
|
|
ASSERT
|
|
|
|
protected:
|
|
long _nfrMac;
|
|
long _nfrCur;
|
|
long _nfrMarked;
|
|
long _dxp;
|
|
long _dyp;
|
|
|
|
PGOB _pgobBase;
|
|
RC _rcPlay;
|
|
ulong _tsPlay;
|
|
|
|
bool _fPlaying;
|
|
|
|
#ifdef WIN
|
|
long _dnfr;
|
|
PAVIFILE _pavif;
|
|
PAVISTREAM _pavis;
|
|
PGETFRAME _pavig;
|
|
HDRAWDIB _hdd;
|
|
#endif //WIN
|
|
|
|
GVDS(long hid);
|
|
~GVDS(void);
|
|
|
|
virtual bool _FInit(PFNI pfni, PGOB pgobBase);
|
|
|
|
public:
|
|
static PGVDS PgvdsNew(PFNI pfni, PGOB pgobBase, long hid = hidNil);
|
|
|
|
virtual long NfrMac(void);
|
|
virtual long NfrCur(void);
|
|
virtual void GotoNfr(long nfr);
|
|
|
|
virtual bool FPlaying(void);
|
|
virtual bool FPlay(RC *prc = pvNil);
|
|
virtual void Stop(void);
|
|
|
|
virtual void Draw(PGNV pgnv, RC *prc);
|
|
virtual void GetRc(RC *prc);
|
|
virtual void SetRcPlay(RC *prc);
|
|
|
|
virtual bool FCmdAll(PCMD pcmd);
|
|
};
|
|
|
|
|
|
/****************************************
|
|
Video in a window class.
|
|
****************************************/
|
|
typedef class GVDW *PGVDW;
|
|
#define GVDW_PAR GVID
|
|
#define kclsGVDW 'GVDW'
|
|
class GVDW : public GVDW_PAR
|
|
{
|
|
RTCLASS_DEC
|
|
ASSERT
|
|
|
|
protected:
|
|
HWND _hwndMovie;
|
|
long _lwDevice;
|
|
long _dxp;
|
|
long _dyp;
|
|
RC _rc;
|
|
RC _rcPlay;
|
|
long _nfrMac;
|
|
PGOB _pgobBase;
|
|
long _cactPal;
|
|
|
|
bool _fDeviceOpen: 1;
|
|
bool _fPlaying: 1;
|
|
bool _fVisible: 1;
|
|
|
|
GVDW(long hid);
|
|
~GVDW(void);
|
|
|
|
virtual bool _FInit(PFNI pfni, PGOB pgobBase);
|
|
virtual void _SetRc(void);
|
|
|
|
public:
|
|
static PGVDW PgvdwNew(PFNI pfni, PGOB pgobBase, long hid = hidNil);
|
|
|
|
virtual long NfrMac(void);
|
|
virtual long NfrCur(void);
|
|
virtual void GotoNfr(long nfr);
|
|
|
|
virtual bool FPlaying(void);
|
|
virtual bool FPlay(RC *prc = pvNil);
|
|
virtual void Stop(void);
|
|
|
|
virtual void Draw(PGNV pgnv, RC *prc);
|
|
virtual void GetRc(RC *prc);
|
|
virtual void SetRcPlay(RC *prc);
|
|
};
|
|
|
|
#endif //!VIDEO_H
|
|
|