00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #if !defined(STREAM_H)
00023 #define STREAM_H
00024
00025 #include "Presentable.h"
00026
00027 #include "Ingredients.h"
00028 #include "Root.h"
00029 #include "BaseClasses.h"
00030 #include "Actions.h"
00031
00032 class MHStream : public MHPresentable
00033 {
00034 public:
00035 MHStream();
00036 virtual const char *ClassName() { return "Stream"; }
00037 virtual void Initialise(MHParseNode *p, MHEngine *engine);
00038 virtual void PrintMe(FILE *fd, int nTabs) const;
00039
00040 virtual void Preparation(MHEngine *engine);
00041 virtual void Activation(MHEngine *engine);
00042 virtual void Deactivation(MHEngine *engine);
00043 virtual void Destruction(MHEngine *engine);
00044 virtual void ContentPreparation(MHEngine *engine);
00045
00046 virtual MHRoot *FindByObjectNo(int n);
00047 protected:
00048 MHOwnPtrSequence <MHPresentable> m_Multiplex;
00049 enum Storage { ST_Mem = 1, ST_Stream = 2 } m_nStorage;
00050 int m_nLooping;
00051 };
00052
00053
00054 class MHAudio : public MHPresentable
00055 {
00056 public:
00057 MHAudio();
00058 virtual const char *ClassName() { return "Audio"; }
00059 virtual void Initialise(MHParseNode *p, MHEngine *engine);
00060 virtual void PrintMe(FILE *fd, int nTabs) const;
00061
00062 virtual void Activation(MHEngine *engine);
00063 virtual void Deactivation(MHEngine *engine);
00064
00065 virtual void SetStreamRef(MHEngine *, const MHContentRef &);
00066 virtual void BeginPlaying(MHEngine *engine);
00067 virtual void StopPlaying(MHEngine *engine);
00068
00069 protected:
00070 int m_nComponentTag;
00071 int m_nOriginalVol;
00072
00073 bool m_fStreamPlaying;
00074 MHContentRef m_streamContentRef;
00075 };
00076
00077 class MHVideo : public MHVisible
00078 {
00079 public:
00080 MHVideo();
00081 virtual const char *ClassName() { return "Video"; }
00082 virtual void Initialise(MHParseNode *p, MHEngine *engine);
00083 virtual void PrintMe(FILE *fd, int nTabs) const;
00084
00085 virtual void Preparation(MHEngine *engine);
00086 virtual void ContentPreparation(MHEngine *engine);
00087
00088 virtual void Activation(MHEngine *engine);
00089 virtual void Deactivation(MHEngine *engine);
00090
00091 virtual void Display(MHEngine *);
00092 virtual QRegion GetVisibleArea();
00093 virtual QRegion GetOpaqueArea() { return GetVisibleArea(); }
00094
00095
00096 virtual void ScaleVideo(int xScale, int yScale, MHEngine *);
00097 virtual void SetVideoDecodeOffset(int newXOffset, int newYOffset, MHEngine *);
00098 virtual void GetVideoDecodeOffset(MHRoot *pXOffset, MHRoot *pYOffset, MHEngine *);
00099
00100 virtual void SetStreamRef(MHEngine *, const MHContentRef &);
00101 virtual void BeginPlaying(MHEngine *engine);
00102 virtual void StopPlaying(MHEngine *engine);
00103
00104 protected:
00105 int m_nComponentTag;
00106 enum Termination { VI_Freeze = 1, VI_Disappear } m_Termination;
00107
00108 int m_nXDecodeOffset, m_nYDecodeOffset;
00109 int m_nDecodeWidth, m_nDecodeHeight;
00110
00111 bool m_fStreamPlaying;
00112 MHContentRef m_streamContentRef;
00113 };
00114
00115
00116 class MHRTGraphics : public MHVisible
00117 {
00118 public:
00119 MHRTGraphics();
00120 virtual const char *ClassName() { return "RTGraphics"; }
00121 virtual ~MHRTGraphics();
00122 virtual void Initialise(MHParseNode *p, MHEngine *engine);
00123 virtual void PrintMe(FILE *fd, int nTabs) const;
00124 virtual void Display(MHEngine *) {}
00125 };
00126
00127
00128 class MHScaleVideo: public MHActionIntInt {
00129 public:
00130 MHScaleVideo(): MHActionIntInt(":ScaleVideo") {}
00131 virtual void CallAction(MHEngine *engine, MHRoot *pTarget, int nArg1, int nArg2) { pTarget->ScaleVideo(nArg1, nArg2, engine); }
00132 };
00133
00134
00135 class MHSetVideoDecodeOffset: public MHActionIntInt
00136 {
00137 public:
00138 MHSetVideoDecodeOffset(): MHActionIntInt(":SetVideoDecodeOffset") {}
00139 virtual void CallAction(MHEngine *engine, MHRoot *pTarget, int nArg1, int nArg2) { pTarget->SetVideoDecodeOffset(nArg1, nArg2, engine); }
00140 };
00141
00142 class MHGetVideoDecodeOffset: public MHActionObjectRef2
00143 {
00144 public:
00145 MHGetVideoDecodeOffset(): MHActionObjectRef2(":GetVideoDecodeOffset") {}
00146 virtual void CallAction(MHEngine *engine, MHRoot *pTarget, MHRoot *pArg1, MHRoot *pArg2) { pTarget->GetVideoDecodeOffset(pArg1, pArg2, engine); }
00147 };
00148
00149
00150 #endif