Go to the documentation of this file.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
00028
00031
00032 #pragma once
00033
00034 #include "api_sound.h"
00035 #include "../Core/Text/string_types.h"
00036 #include "../Core/System/sharedptr.h"
00037 #include "../Core/System/weakptr.h"
00038
00039 class CL_SoundFilter;
00040 class CL_SoundBuffer;
00041 class CL_SoundOutput_Description;
00042 class CL_SoundOutput_Impl;
00043
00049 class CL_API_SOUND CL_SoundOutput
00050 {
00053
00054 public:
00056 CL_SoundOutput();
00057
00062 CL_SoundOutput(int mixing_frequency, int latency = 50);
00063
00067 CL_SoundOutput(const CL_SoundOutput_Description &desc);
00068
00069 virtual ~CL_SoundOutput();
00070
00074
00075 public:
00077 bool is_null() const { return !impl; }
00078
00080 void throw_if_null() const;
00081
00083 const CL_String8 &get_name() const;
00084
00086 int get_mixing_frequency() const;
00087
00089 int get_mixing_latency() const;
00090
00092 float get_global_volume() const;
00093
00095 float get_global_pan() const;
00096
00100
00101 public:
00103 void stop_all();
00104
00106 void set_global_volume(float volume);
00107
00109 void set_global_pan(float pan);
00110
00114 void add_filter(CL_SoundFilter &filter);
00115
00117 void remove_filter(CL_SoundFilter &filter);
00118
00122
00123 private:
00124
00128 CL_SoundOutput(const CL_WeakPtr<CL_SoundOutput_Impl> impl);
00129
00130 CL_SharedPtr<CL_SoundOutput_Impl> impl;
00131
00132 friend class CL_SoundBuffer;
00133 friend class CL_Sound;
00134 friend class CL_SoundBuffer_Session;
00136 };
00137