85 lines
2.5 KiB
C++
85 lines
2.5 KiB
C++
/*************************************************************************/
|
|
/* File : CKMidiSound.h */
|
|
/* Author : Francisco Cabrita */
|
|
/* */
|
|
/* Virtools SDK */
|
|
/* Copyright (c) Virtools 2000, All Rights Reserved. */
|
|
/*************************************************************************/
|
|
#ifndef CKMIDISOUND_H
|
|
|
|
#define CKMIDISOUND_H "$Id:$"
|
|
|
|
#include "CKSound.h"
|
|
|
|
|
|
/**************************************************************************
|
|
Name: CKMidiSound
|
|
Summary: Midi sound.
|
|
|
|
Remarks:
|
|
+ CKMidiSound provides the basic methods for playing a midi sound file.
|
|
+ Its class id is CKCID_MIDISOUND
|
|
See also: CKWaveSound,CKSoundManager
|
|
******************************************************************************/
|
|
class CKMidiSound : public CKSound {
|
|
public :
|
|
|
|
//---------------------------------------------------
|
|
// Sound File
|
|
CKERROR SetSoundFileName(CKSTRING filename);
|
|
CKSTRING GetSoundFileName();
|
|
|
|
//----------------------------------------------------
|
|
// Current Position In MilliSeconds
|
|
CKDWORD GetCurrentPos();
|
|
|
|
//-----------------------------------------------------
|
|
// Sound File
|
|
CKERROR Play();
|
|
CKERROR Stop();
|
|
CKERROR Pause(CKBOOL pause=TRUE);
|
|
CKBOOL IsPlaying();
|
|
CKBOOL IsPaused();
|
|
|
|
//-------------------------------------------------------------------
|
|
#ifdef DOCJETDUMMY // Docjet secret macro
|
|
#else
|
|
|
|
CKMidiSound(CKContext *Context,CKSTRING name=NULL);
|
|
virtual ~CKMidiSound();
|
|
virtual CK_CLASSID GetClassID();
|
|
|
|
virtual CKStateChunk* Save(CKFile *file,CKDWORD flags);
|
|
virtual CKERROR Load(CKStateChunk *chunk,CKFile* file);
|
|
|
|
virtual int GetMemoryOccupation();
|
|
|
|
//--------------------------------------------
|
|
// Class Registering
|
|
static CKSTRING GetClassName();
|
|
static int GetDependenciesCount(int mode);
|
|
static CKSTRING GetDependencies(int i,int mode);
|
|
static void Register();
|
|
static CKMidiSound* CreateInstance(CKContext *Context);
|
|
static void ReleaseInstance(CKContext* iContext,CKMidiSound*);
|
|
static CK_CLASSID m_ClassID;
|
|
|
|
// Dynamic Cast method (returns NULL if the object can't be casted)
|
|
static CKMidiSound* Cast(CKObject* iO)
|
|
{
|
|
return CKIsChildClassOf(iO,CKCID_MIDISOUND)?(CKMidiSound*)iO:NULL;
|
|
}
|
|
|
|
CKERROR OpenFile();
|
|
CKERROR CloseFile();
|
|
CKERROR Prepare();
|
|
CKERROR Start();
|
|
protected :
|
|
void* m_Source;
|
|
CKMidiManager* m_MidiManager;
|
|
#endif // Docjet secret macro
|
|
};
|
|
|
|
#endif
|
|
|