X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=async%2Fwasapi.h;fp=async%2Fwasapi.h;h=bc853d735bc376f41206b6706ae6916254dd40ea;hb=f93c520a4401ff865da2148bb71c4069413e12b6;hp=875aedb09fe2883a9921613d5353d13b97ee7339;hpb=ed394d38ea8927f7f6e63bd65c549760fc7229f2;p=winaudioj%2Fasync.git diff --git a/async/wasapi.h b/async/wasapi.h index 875aedb..bc853d7 100644 --- a/async/wasapi.h +++ b/async/wasapi.h @@ -51,7 +51,7 @@ struct device_manager /// WASAPIˆ—ƒNƒ‰ƒX 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_;} @@ -60,8 +60,10 @@ struct wasapi_shared_timer : public audio_base void create_wave_data(); /// ƒTƒEƒ“ƒhÄ¶ˆ— - 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: @@ -69,12 +71,14 @@ private: IMMDevicePtr current_device_; IAudioClientPtr audio_client_; IAudioRenderClientPtr audio_render_client_; - handle_holder buffer_control_event_; - co_task_memory mix_format_; + //handle_holder buffer_control_event_; + WAVEFORMATEXTENSIBLE mix_format_; bool is_enabled_; + bool is_start_; boost::shared_ptr exception_holder_; boost::uint32_t num_of_frames_; boost::uint32_t buffer_size_; + uint64_t position_; std::vector tone_buffer_; // Ä¶ƒŒƒCƒeƒ“ƒV