00001
00002
00003
00004
00005
00008
00009 #define _MOVIE_H_
00012 #include <windows.h>
00013 #include <uuids.h>
00014 #include <VFW.H>
00015 #include <amstream.h>
00016 #include <ddraw.h>
00017
00018 #include "types.h"
00019 #include "node.h"
00020 #include "bitmap.h"
00023
00024
00025
00028
00029 #define guidMOVIE (Afile::CI.guid)
00030
00033
00034 class Amovie : public Anode
00035 {
00036 public:
00037
00038 enum
00039 {
00040 CURRENT=-100,
00041 FIRST,
00042 LAST,
00043 NEXT,
00044 PREVIOUS
00045 };
00046
00047 enum
00048 {
00049 typeNORMAL,
00050 typeSTREAMLOAD,
00051 typeFLIFLCLOAD
00052 };
00053
00054 ADLL static ACI CI;
00055 virtual ACI *getCI () { return &CI; }
00056
00057 ADLL Amovie (char *name, int w, int h, int nbBits, int nbFrames=0);
00058 ADLL Amovie (char *name, char *filename);
00059 ADLL virtual ~Amovie ();
00060
00061 ADLL void clear ();
00062
00063 ADLL bool remove (int pos=CURRENT);
00064 ADLL bool insert (class Abitmap *b=NULL, int pos=CURRENT);
00065 ADLL bool append (class Abitmap *b=NULL, int pos=CURRENT);
00066 ADLL bool select (int pos=NEXT);
00067
00068 ADLL bool get (class Abitmap *b, int pos=CURRENT);
00069
00070
00071
00072 ADLL bool get (class Abitmap *b, int xd, int yd, int wd, int hd, int xs, int ys, int ws, int hs, int state, int flags, float alpha, dword colorkey, int pos=CURRENT);
00073
00074 class bitmapL *firstB;
00075 class bitmapL *lastB;
00076
00077 class bitmapL *current;
00078 int currentI;
00079
00080 int w;
00081 int h;
00082 int nbBits;
00083 int nbFrames;
00084
00085 int type;
00086 bool isOK;
00087
00088
00089
00090 bool open (char *filename);
00091 void close ();
00092
00093 IAMMultiMediaStream *m_pMMStream;
00094 IMediaStream *m_pPrimaryVidStream;
00095 IDirectDrawMediaStream *m_pDDStream;
00096 IDirectDrawSurface *m_pDDSurfaceAnim;
00097 IDirectDrawStreamSample *m_pSample;
00098 STREAM_TIME fTime;
00099 bool isLast;
00100
00101
00102
00103 struct fli *fliflc;
00104 class Abitmap *bfli;
00105 bool openFLI (char *filename);
00106 void closeFLI ();
00107
00108 bool del (class bitmapL *bl);
00109 };
00110
00113 #endif //_MOVIE_H_