Main Page Class Hierarchy Compound List File List Compound Members File Members

# movie.h

Go to the documentation of this file.

    00001
    00002
    00003 //
    00004 //      MOVIE.H                                         (c)     YoY'01                                          WEB: www.aestesis.org
    00005 //
    00008 #ifndef                                                 _MOVIE_H_
    00009 #define                                                 _MOVIE_H_
    00012 #include                                                <windows.h>
    00013 #include                                                <uuids.h>               // ID Com Object
    00014 #include                                                <VFW.H>         // Video For Windows
    00015 #include                                                <amstream.h>    // DirectShow multimedia stream interfaces
    00016 #include                                                <ddraw.h>           // DirectDrawEx interfaces
    00017
    00018 #include                                                "types.h"
    00019 #include                                                "node.h"
    00020 #include                                                "bitmap.h"
    00023
    00024 //      If you use directly the variables in the class API, it's at your own risks. Prefer the methods...
    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         //ADLL bool                                     get                                                             (class Abitmap *b, int xd, int yd, int state, int pos=CURRENT);
    00071         //ADLL bool                                     get                                                             (class Abitmap *b, int xd, int yd, int xs, int ys, int w, int h, int pos=CURRENT);
    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         // private DXmedia
    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         // pricate FLI/FLC
    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_