#pragma once

class CDataBase
{
private:
	int id;

public:
	CDataBase (void) { }
	virtual ~CDataBase (void) { }
};

class CEffectData : public CDataBase
{
private:

	void ReadAudioData (void);
	void ReadVideoData (void);
	void WriteAudioData (void);
	void WriteVideoData (void);

	void InitAudio (void);
	void InitVideo (void);

	void InitialAudio (void);
	void InitialVideo (void);

	CString m_VideoFileName;
	CString m_AudioFileName;
	CString m_DataFileName;
	CString m_Path;

	CString m_Class;
	CString m_StartRunning;
	CString m_Translation;
	CString m_RotationType;

	// video data
	CString m_FX;
	CString m_VideoType;
	CString m_Fog;
	CString m_SimMode;
	CString m_SimExecute;
	CString m_VideoStatus;
	CString m_Locator;

	// audio data
	CString m_AudioType;
	CString m_Sample;
	CString m_Loop;
	CString m_MinRange;
	CString m_MaxRange;
	CString m_AudioStatus;
	CString m_AudioShouldExecute;
	CString m_AudioStartRunning;

public:
	bool m_Dirty;


	CEffectData (CString path);
	~CEffectData (void);
	void Init (void);
	void InitialData (CString datafilename);

	const CString VideoFileName (void) const
	{
		return m_VideoFileName;
	}
	const CString AudioFileName (void) const
	{
		return m_AudioFileName;
	}
	const CString DataFileName (void) const
	{
		return m_DataFileName;
	}
	const CString Path (void) const
	{
		return m_Path;
	}

	const CString Class (void) const
	{
		return m_Class;
	}
	const CString StartRunning (void) const
	{
		return m_StartRunning;
	}
	const CString Translation (void) const
	{
		return m_Translation;
	}
	const CString RotationType (void) const
	{
		return m_RotationType;
	}

	// video data
	const CString FX (void) const
	{
		return m_FX;
	}
	const CString VideoType (void) const
	{
		return m_VideoType;
	}
	const CString Fog (void) const
	{
		return m_Fog;
	}
	const CString SimMode (void) const
	{
		return m_SimMode;
	}
	const CString SimExecute (void) const
	{
		return m_SimExecute;
	}
	const CString VideoStatus (void) const
	{
		return m_VideoStatus;
	}
	const CString Locator (void) const
	{
		return m_Locator;
	}

	// audio data
	const CString AudioType (void) const
	{
		return m_AudioType;
	}
	const CString Sample (void) const
	{
		return m_Sample;
	}
	const CString Loop (void) const
	{
		return m_Loop;
	}
	const CString MinRange (void) const
	{
		return m_MinRange;
	}
	const CString MaxRange (void) const
	{
		return m_MaxRange;
	}
	const CString AudioStatus (void) const
	{
		return m_AudioStatus;
	}
	const CString AudioShouldExecute (void) const
	{
		return m_AudioShouldExecute;
	}
	const CString AudioStartRunning (void) const
	{
		return m_AudioStartRunning;
	}


	void VideoFileName (const char *p1);
	void AudioFileName (const char *p1);
	void DataFileName (const char *p1);
	void Path (const char *p1);

	void Class (const char *p1);
	void StartRunning (const char *p1);
	void Translation (const char *p1);
	void RotationType (const char *p1);

	// video data
	void FX (const char *p1);
	void VideoType (const char *p1);
	void Fog (const char *p1);
	void SimMode (const char *p1);
	void SimExecute (const char *p1);
	void VideoStatus (const char *p1);
	void Locator (const char *p1);

	// audio data
	void AudioType (const char *p1);
	void Sample (const char *p1);
	void Loop (const char *p1);
	void MinRange (const char *p1);
	void MaxRange (const char *p1);
	void AudioStatus (const char *p1);
	void AudioShouldExecute (const char *p1);
	void AudioStartRunning (const char *p1);

	void ReadData (CString datafilename);
	void WriteData (void);

};
