00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef OSDL_AUDIO_CHANNEL_H_
00028 #define OSDL_AUDIO_CHANNEL_H_
00029
00030
00031 #include "OSDLAudioCommon.h"
00032
00033 #include "Ceylan.h"
00034
00035 #include <string>
00036
00037
00038
00039
00040 namespace OSDL
00041 {
00042
00043
00044
00045 namespace Audio
00046 {
00047
00048
00049
00051 class OSDL_DLL AudioChannelException: public AudioException
00052 {
00053 public:
00054
00055 AudioChannelException( const std::string & reason ) ;
00056 virtual ~AudioChannelException() throw() ;
00057 } ;
00058
00059
00060
00061
00073 class OSDL_DLL AudioChannel : public Ceylan::TextDisplayable
00074 {
00075
00076
00077 public:
00078
00079
00080
00095 explicit AudioChannel( ChannelNumber channelNumber ) ;
00096
00097
00098
00100 virtual ~AudioChannel() throw() ;
00101
00102
00103
00108 virtual ChannelNumber getNumber() const ;
00109
00110
00111
00118 virtual Volume getVolume() const ;
00119
00120
00121
00131 virtual void setVolume( Volume newVolume ) ;
00132
00133
00134
00150 virtual void setPanning(
00151 Ceylan::Maths::Percentage leftPercentage ) ;
00152
00153
00154
00162 virtual void unsetPanning() ;
00163
00164
00165
00181 virtual void setReverseStereo( bool reverse = true ) ;
00182
00183
00184
00201 virtual void setDistanceAttenuation(
00202 ListenerDistance distance ) ;
00203
00204
00205
00214 virtual void unsetDistanceAttenuation() ;
00215
00216
00217
00237 virtual void setPositionAttenuation( ListenerDistance distance,
00238 ListenerAngle angle ) ;
00239
00240
00241
00250 virtual void unsetPositionAttenuation() ;
00251
00252
00253
00259 virtual bool isPlaying() const ;
00260
00261
00262
00268 virtual bool isPaused() const ;
00269
00270
00271
00279 virtual FadingStatus getFadingStatus() const ;
00280
00281
00282
00292 virtual void pause() ;
00293
00294
00295
00303 virtual void resume() ;
00304
00305
00306
00317 virtual void waitEndOfPlayback() const ;
00318
00319
00320
00330 virtual void halt() ;
00331
00332
00333
00345 virtual void expireIn(
00346 Ceylan::System::Millisecond expireDuration ) ;
00347
00348
00349
00361 virtual void fadeOutDuring(
00362 Ceylan::System::Millisecond fadeOutDuration ) ;
00363
00364
00365
00378 virtual const std::string toString(
00379 Ceylan::VerbosityLevels level = Ceylan::high ) const ;
00380
00381
00382
00383
00384 protected:
00385
00386
00387
00403 virtual void onPlaybackFinished() ;
00404
00405
00406
00408 ChannelNumber _channelNumber ;
00409
00410
00411
00412
00413 private:
00414
00415
00416
00423 static void HandleFinishedPlaybackCallback(
00424 int channelNumber ) ;
00425
00426
00427
00436 explicit AudioChannel( const AudioChannel & source ) ;
00437
00438
00439
00448 AudioChannel & operator = ( const AudioChannel & source ) ;
00449
00450
00451 } ;
00452
00453
00454 }
00455
00456 }
00457
00458
00459
00460 #endif // OSDL_AUDIO_CHANNEL_H_
00461