class CAudioInput : public CAudioIO {
public:
/* Constructor & Destructor */
- CAudioInput(CAudioInfo& info);
- CAudioInput(
- unsigned int sampleRate,
- CAudioInfo::EChannel channel,
- CAudioInfo::ESampleType sampleType,
- CAudioInfo::EAudioType audioType);
- ~CAudioInput();
+ explicit CAudioInput(CAudioInfo& info);
+ ~CAudioInput() = default;
/* Overridden Handler */
- virtual void onStream(CPulseAudioClient* pClient, size_t length);
- virtual void onInterrupt(CAudioSessionHandler* pHandler, int id,
- mm_sound_focus_type_e focus_type, mm_sound_focus_state_e state,
- const char *reason_for_change, const char *additional_info);
- virtual void onSignal(CAudioSessionHandler* pHandler, mm_sound_signal_name_t signal, int value);
+ void onStream(CPulseAudioClient* pClient, size_t length) override;
/* Implemented Methods */
- virtual void initialize() throw(CAudioError);
- virtual void finalize();
+ void initialize() override;
+ void finalize() override;
- virtual void prepare() throw(CAudioError);
- virtual void unprepare() throw(CAudioError);
+ void prepare() override;
+ void unprepare() override;
- virtual void pause() throw(CAudioError);
- virtual void resume() throw(CAudioError);
+ void pause() override;
+ void resume() override;
- virtual void drain() throw(CAudioError);
- virtual void flush() throw(CAudioError);
+ void flush() override;
- virtual int getBufferSize() throw(CAudioError);
+ int getBufferSize() override;
/* Overridden Methods */
- virtual void setStreamCallback(SStreamCallback callback) throw(CAudioError);
+ void setStreamCallback(SStreamCallback callback) override;
/* Methods */
- size_t read(void* buffer, size_t length) throw(CAudioError);
- int peek(const void** buffer, size_t* length) throw(CAudioError);
- int drop() throw(CAudioError);
+ size_t read(void* buffer, size_t length);
+ int peek(const void** buffer, size_t* length);
+ int drop();
+
+ void setVolume(double volume);
+ double getVolume();
private:
/* Private Methods */
- void __setInit(bool flag);
- bool __IsInit();
- bool __IsReady();
+ void __setInit(bool flag) noexcept;
+ bool __IsInit() noexcept;
+ bool __IsReady() noexcept;
bool __mIsUsedSyncRead;
bool __mIsInit;
+
+ double __mVolume;
};