/// WASAPI\8f\88\97\9d\83N\83\89\83X
struct wasapi_shared_timer : public audio_base
{
- wasapi_shared_timer();
+ explicit wasapi_shared_timer(::WAVEFORMATEXTENSIBLE& wfx);
virtual ~wasapi_shared_timer();
bool is_enabled () const {return is_enabled_;}
void create_wave_data();
/// \83T\83E\83\93\83h\8dÄ\90¶\8f\88\97\9d
- void play();
+ void play_buffer(BYTE* buffer);
+ void stop();
+ uint32_t get_buffer_byte_size () const { return buffer_size_ * num_of_frames_;}
win32_error_exception* const result() {return exception_holder_.get(); }
private:
IMMDevicePtr current_device_;
IAudioClientPtr audio_client_;
IAudioRenderClientPtr audio_render_client_;
- handle_holder buffer_control_event_;
- co_task_memory<WAVEFORMATEX> mix_format_;
+ //handle_holder buffer_control_event_;
+ WAVEFORMATEXTENSIBLE mix_format_;
bool is_enabled_;
+ bool is_start_;
boost::shared_ptr<win32_error_exception> exception_holder_;
boost::uint32_t num_of_frames_;
boost::uint32_t buffer_size_;
+ uint64_t position_;
std::vector<short> tone_buffer_;
// \8dÄ\90¶\83\8c\83C\83e\83\93\83V