class CAudioOutput : public CAudioIO {
public:
/* Constructor & Destructor */
- CAudioOutput(CAudioInfo& info);
- CAudioOutput(
- unsigned int smapleRate,
- CAudioInfo::EChannel channel,
- CAudioInfo::ESampleType sampleType,
- CAudioInfo::EAudioType type);
- ~CAudioOutput();
+ explicit CAudioOutput(CAudioInfo& info);
+ ~CAudioOutput() = default;
/* Overridden Handler */
- virtual void onStream(CPulseAudioClient* pClient, size_t length);
+ void onStream(CPulseAudioClient* pClient, size_t length) override;
+ void onCorked(CPulseAudioClient* pClient, bool corked) override;
/* Implemented Methods */
- virtual void initialize();
- virtual void finalize();
+ void initialize() override;
+ void finalize() override;
- virtual void prepare();
- virtual void unprepare();
+ void prepare() override;
+ void unprepare() override;
- virtual void pause();
- virtual void resume();
+ void pause() override;
+ void resume() override;
- virtual void drain();
- virtual void flush();
+ void drain();
+ void flush() override;
- virtual int getBufferSize();
+ int getBufferSize() override;
/* Methods */
size_t write(const void* buffer, size_t length);
private:
/* Private Methods */
- void __setInit(bool flag);
- bool __IsInit();
- bool __IsReady();
+ void __setInit(bool flag) noexcept;
+ bool __IsInit() noexcept;
+ bool __IsReady() noexcept;
+ void __dumpStat() noexcept;
+ void __dumpStat(size_t length) noexcept;
- bool __mIsUsedSyncWrite;
- bool __mIsInit;
+ bool __mIsUsedSyncWrite {};
+ bool __mIsInit {};
+
+ std::atomic<uint64_t> __mTotalWrittenCount {};
+ std::atomic<uint64_t> __mTotalWrittenBytes {};
};