00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef SNDDATA_H
00021 #define SNDDATA_H
00022
00023 #include "iutil/databuff.h"
00024 #include "isndsys/ss_structs.h"
00025 #include "isndsys/ss_data.h"
00026 #include "csutil/scf_implementation.h"
00027
00028 namespace CS
00029 {
00030 namespace SndSys
00031 {
00032
00033
00034 class CS_CRYSTALSPACE_EXPORT SndSysBasicData :
00035 public scfImplementation1<SndSysBasicData, iSndSysData>
00036 {
00037 public:
00038 SndSysBasicData(iBase *pParent);
00039 virtual ~SndSysBasicData();
00040
00042
00044 protected:
00045
00048
00049
00050 virtual void Initialize() = 0;
00051
00052
00054
00056
00057
00058
00059
00060 public:
00062 virtual const csSndSysSoundFormat *GetFormat();
00063
00065 virtual size_t GetFrameCount();
00066
00075 virtual size_t GetDataSize() = 0;
00076
00081 virtual iSndSysStream *CreateStream (csSndSysSoundFormat *pRenderFormat, int Mode3D) = 0;
00082
00084
00085 virtual void SetDescription (const char *pDescription);
00086
00088
00089 virtual const char *GetDescription() { return m_pDescription; }
00090
00092
00094 protected:
00095
00097 bool m_bInfoReady;
00098
00100
00101
00102 csSndSysSoundFormat m_SoundFormat;
00103
00105 size_t m_FrameCount;
00106
00108 char *m_pDescription;
00109 };
00110
00111
00112
00113 }
00114
00115 }
00116
00117
00118
00119 #endif // #ifndef SNDDATA_H
00120