From 066e5987c515dfc34537d73ca9d2a81ddd1f9e1b Mon Sep 17 00:00:00 2001 From: chai Date: Sun, 21 Oct 2018 13:37:27 +0800 Subject: =?UTF-8?q?*=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libjin/Audio/je_source.h | 77 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 73 insertions(+), 4 deletions(-) (limited to 'src/libjin/Audio/je_source.h') diff --git a/src/libjin/Audio/je_source.h b/src/libjin/Audio/je_source.h index 9ef0b46..ac87c07 100644 --- a/src/libjin/Audio/je_source.h +++ b/src/libjin/Audio/je_source.h @@ -10,6 +10,9 @@ namespace JinEngine namespace Audio { + /// + /// Audio source encoding type. + /// enum SourceType { INVALID = 0, @@ -17,25 +20,90 @@ namespace JinEngine OGG, }; + /// + /// Audio source. + /// class Source { public: + /// + /// Source constructor. + /// Source() {}; + + /// + /// Source destructor. + /// virtual ~Source() {}; - /* interface */ - virtual void play() = 0; + + /// + /// Start playing source. + /// + virtual void play() = 0; + + /// + /// Stop playing source. + /// virtual void stop() = 0; + + /// + /// Pause source. + /// virtual void pause() = 0; + + /// + /// Resume source. + /// virtual void resume() = 0; + + /// + /// Rewind source. + /// virtual void rewind() = 0; + + /// + /// Whether the source is playing or not. + /// virtual bool isStopped() const = 0; + + /// + /// Whether the source is paused or not. + /// virtual bool isPaused() const = 0; + + /// + /// Set source pitch. + /// + /// @param pitch Pitch of source. + /// virtual void setPitch(float pitch) = 0; + + /// + /// Set volume of source. + /// + /// @param volume Volume of source. + /// virtual void setVolume(float volume) = 0; - virtual bool setLoop(bool loop) = 0; + + /// + /// Set source loop. + /// + /// @param loop Looping or not. + /// + virtual void setLoop(bool loop) = 0; + + /// + /// Set source rate. + /// + /// @param rate Rate of source. + /// virtual void setRate(float rate) = 0; protected: + + /// + /// Get type of source data. + /// static SourceType getType(const void* mem, int size); }; @@ -44,4 +112,5 @@ namespace JinEngine } // namespace JinEngine #endif // LIBJIN_MODULES_AUDIO -#endif // __JE_AUDIO_SOURCE_H + +#endif // __JE_AUDIO_SOURCE_H \ No newline at end of file -- cgit v1.1-26-g67d0