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
00072 class OSDL_DLL AudioChannel: public Ceylan::TextDisplayable
00073 {
00074
00075
00076 public:
00077
00078
00079
00094 explicit AudioChannel( ChannelNumber channelNumber ) ;
00095
00096
00097
00099 virtual ~AudioChannel() throw() ;
00100
00101
00102
00107 virtual ChannelNumber getNumber() const ;
00108
00109
00110
00117 virtual Volume getVolume() const ;
00118
00119
00120
00130 virtual void setVolume( Volume newVolume ) ;
00131
00132
00133
00149 virtual void setPanning(
00150 Ceylan::Maths::Percentage leftPercentage ) ;
00151
00152
00153
00161 virtual void unsetPanning() ;
00162
00163
00164
00180 virtual void setReverseStereo( bool reverse = true ) ;
00181
00182
00183
00200 virtual void setDistanceAttenuation(
00201 ListenerDistance distance ) ;
00202
00203
00204
00213 virtual void unsetDistanceAttenuation() ;
00214
00215
00216
00236 virtual void setPositionAttenuation( ListenerDistance distance,
00237 ListenerAngle angle ) ;
00238
00239
00240
00249 virtual void unsetPositionAttenuation() ;
00250
00251
00252
00258 virtual bool isPlaying() const ;
00259
00260
00261
00267 virtual bool isPaused() const ;
00268
00269
00270
00278 virtual FadingStatus getFadingStatus() const ;
00279
00280
00281
00291 virtual void pause() ;
00292
00293
00294
00302 virtual void resume() ;
00303
00304
00305
00316 virtual void waitEndOfPlayback() const ;
00317
00318
00319
00329 virtual void halt() ;
00330
00331
00332
00344 virtual void expireIn(
00345 Ceylan::System::Millisecond expireDuration ) ;
00346
00347
00348
00360 virtual void fadeOutDuring(
00361 Ceylan::System::Millisecond fadeOutDuration ) ;
00362
00363
00364
00377 virtual const std::string toString(
00378 Ceylan::VerbosityLevels level = Ceylan::high ) const ;
00379
00380
00381
00382
00383 protected:
00384
00385
00386
00402 virtual void onPlaybackFinished() ;
00403
00404
00405
00407 ChannelNumber _channelNumber ;
00408
00409
00410
00411
00412 private:
00413
00414
00415
00422 static void HandleFinishedPlaybackCallback(
00423 int channelNumber ) ;
00424
00425
00426
00435 explicit AudioChannel( const AudioChannel & source ) ;
00436
00437
00438
00447 AudioChannel & operator = ( const AudioChannel & source ) ;
00448
00449
00450 } ;
00451
00452
00453 }
00454
00455 }
00456
00457
00458
00459 #endif // OSDL_AUDIO_CHANNEL_H_
00460