12#include <CoreAudio/AudioServerPlugIn.h>
24 AudioObjectPropertyScope
Scope = kAudioObjectPropertyScopeOutput;
53 virtual AudioObjectPropertyScope
GetScope()
const;
88 UInt32 channelCount)
const;
107 const AudioObjectPropertyAddress* address)
const override;
112 const AudioObjectPropertyAddress* address,
113 Boolean* outIsSettable)
const override;
118 const AudioObjectPropertyAddress* address,
119 UInt32 qualifierDataSize,
120 const void* qualifierData,
121 UInt32* outDataSize)
const override;
126 const AudioObjectPropertyAddress* address,
127 UInt32 qualifierDataSize,
128 const void* qualifierData,
131 void* outData)
const override;
136 const AudioObjectPropertyAddress* address,
137 UInt32 qualifierDataSize,
138 const void* qualifierData,
140 const void* inData)
override;
160 std::mutex writeMutex_;
161 std::atomic<bool> isMuted_ =
false;
virtual bool GetIsMuted() const
Get muted boolean state. By default returns internal muted state. Initial value of the flag is false.
Boolean HasProperty(AudioObjectID objectID, pid_t clientPID, const AudioObjectPropertyAddress *address) const override
Check whether given property is present.
OSStatus IsPropertySettable(AudioObjectID objectID, pid_t clientPID, const AudioObjectPropertyAddress *address, Boolean *outIsSettable) const override
Check whether given property can be changed.
virtual void ApplyProcessing(Float32 *frames, UInt32 frameCount, UInt32 channelCount) const
Apply processing to given buffer. The provided buffer contains exactly frameCount * channelCount samp...
virtual AudioObjectPropertyElement GetElement() const
Get the element that the control is attached to. Typically should return kAudioObjectPropertyElementM...
virtual OSStatus SetIsMutedImpl(bool isMuted)
Set muted boolean state. Invoked by SetIsMuted(). By default sets internal muted state.
OSStatus SetIsMuted(bool isMuted)
Set muted boolean state. Invokes SetIsMutedImpl() and NotifyPropertiesChanged().
AudioClassID GetBaseClass() const override
Get base class ID.
OSStatus GetPropertyData(AudioObjectID objectID, pid_t clientPID, const AudioObjectPropertyAddress *address, UInt32 qualifierDataSize, const void *qualifierData, UInt32 inDataSize, UInt32 *outDataSize, void *outData) const override
Get property value.
AudioClassID GetClass() const override
Get class ID.
bool IsInstance(AudioClassID classID) const override
Check if this object is instance of given base class.
virtual AudioObjectPropertyScope GetScope() const
Get the scope that the control is attached to. Can return kAudioObjectPropertyScopeInput or kAudioObj...
OSStatus SetPropertyData(AudioObjectID objectID, pid_t clientPID, const AudioObjectPropertyAddress *address, UInt32 qualifierDataSize, const void *qualifierData, UInt32 inDataSize, const void *inData) override
Change property value.
OSStatus GetPropertyDataSize(AudioObjectID objectID, pid_t clientPID, const AudioObjectPropertyAddress *address, UInt32 qualifierDataSize, const void *qualifierData, UInt32 *outDataSize) const override
Get size of property value in bytes.
MuteControl(std::shared_ptr< const Context > context, const MuteControlParameters ¶ms={})
Construct stream.
Base class for audio objects.
AudioObjectPropertyScope Scope
Define whether this is input or output control. Used by default implementation of MuteControl::GetSco...