OSDN Git Service

11cb94c24aa3e6c4ea5a1f2ca116c6bb4f4797c5
[moflib/moflib.git] / moflib-1.0 / moflib / moflib / mof / sound / SoundBuffer.hpp
1 #pragma once
2 #include <dsound.h>
3 #include <memory>
4 #include "mof/sound/SoundFile.hpp"
5 #include <mof/sound/component_sound.hpp>
6
7 namespace mof{
8 namespace sound
9 {
10         class DirectSoundDevice;
11 }
12         class SoundBuffer : public mof::sound::component_sound
13         {
14                 LPDIRECTSOUNDBUFFER8 m_pBuffer;
15                 SoundFile* m_pResource;
16                 DWORD default_frequency_;
17         protected:
18                 std::shared_ptr<sound::DirectSoundDevice> pDevice_;
19                 LPDIRECTSOUNDBUFFER8 getSoundBuffer(){return m_pBuffer;}
20                 SoundFile* getResource(){return m_pResource;}
21         public:
22                 SoundBuffer(std::shared_ptr<sound::DirectSoundDevice> pDevice, LPDIRECTSOUNDBUFFER8 pBuffer , SoundFile* pResouce);
23                 virtual ~SoundBuffer();
24
25                 virtual bool initialize() = 0;
26                 virtual bool play(bool looping) = 0;
27                 virtual void stop() = 0;
28                 virtual void update();
29         };
30
31 };