libASPL
|
Mute control object. More...
#include <aspl/MuteControl.hpp>
Public Member Functions | |
MuteControl (std::shared_ptr< const Context > context, const MuteControlParameters ¶ms={}) | |
Construct stream. | |
Getters and setters | |
virtual AudioObjectPropertyScope | GetScope () const |
Get the scope that the control is attached to. Can return kAudioObjectPropertyScopeInput or kAudioObjectPropertyScopeOutput. By default returns MuteControlParameters::Scope. | |
virtual AudioObjectPropertyElement | GetElement () const |
Get the element that the control is attached to. Typically should return kAudioObjectPropertyElementMain. By default returns kAudioObjectPropertyElementMain. | |
virtual bool | GetIsMuted () const |
Get muted boolean state. By default returns internal muted state. Initial value of the flag is false. | |
OSStatus | SetIsMuted (bool isMuted) |
Set muted boolean state. Invokes SetIsMutedImpl() and NotifyPropertiesChanged(). | |
Processing | |
virtual void | ApplyProcessing (Float32 *frames, UInt32 frameCount, UInt32 channelCount) const |
Apply processing to given buffer. The provided buffer contains exactly frameCount * channelCount samples. If GetIsMuted() is false, this method does nothing. If GetIsMuted() is true, this method overrides all samples with zeros. | |
Property dispatch | |
AudioClassID | GetClass () const override |
Get class ID. | |
AudioClassID | GetBaseClass () const override |
Get base class ID. | |
bool | IsInstance (AudioClassID classID) const override |
Check if this object is instance of given base class. | |
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. | |
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. | |
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. | |
OSStatus | SetPropertyData (AudioObjectID objectID, pid_t clientPID, const AudioObjectPropertyAddress *address, UInt32 qualifierDataSize, const void *qualifierData, UInt32 inDataSize, const void *inData) override |
Change property value. | |
Public Member Functions inherited from aspl::Object | |
Object (std::shared_ptr< const Context > context, const char *className="Object", AudioObjectID objectID=kAudioObjectUnknown) | |
Construct object. Class name is used for logging. It should be the name of the derived class. If objectID is kAudioObjectUnknown (zero), allocates new object ID. Otherwise uses given object ID. | |
Object (const Object &)=delete | |
Object & | operator= (const Object &)=delete |
std::shared_ptr< const Context > | GetContext () const |
Get object context. | |
AudioObjectID | GetID () const |
Get object ID. Returns objectID selected at construction time. | |
AudioObjectID | GetOwnerID () const |
Get object owner. If the object has an owner, returns its ID. Otherwise, returns kAudioObjectUnknown (zero). | |
bool | HasOwner () const |
Check if the object is part of the hierarchy. Returns true if GetOwnerID() is not equal to kAudioObjectUnknown. | |
std::vector< AudioObjectID > | GetOwnedObjectIDs (AudioObjectPropertyScope scope=kAudioObjectPropertyScopeGlobal, AudioClassID classID=0) const |
Get owned objects. Returns the list of objects to which this object is the owner. | |
void | AddOwnedObject (std::shared_ptr< Object > object, AudioObjectPropertyScope scope=kAudioObjectPropertyScopeGlobal) |
Add object to the list of owned objects. Also invokes SetOwner() on the added object. | |
void | RemoveOwnedObject (AudioObjectID objectID) |
Remove object to the list of owned objects. Also invokes SetOwner() on the removed object. | |
void | NotifyPropertyChanged (AudioObjectPropertySelector selector, AudioObjectPropertyScope scope=kAudioObjectPropertyScopeGlobal, AudioObjectPropertyElement element=kAudioObjectPropertyElementMain) const |
Notify HAL that a property was changed. This is automatically called by all setters. | |
void | NotifyPropertiesChanged (std::vector< AudioObjectPropertySelector > selectors, AudioObjectPropertyScope scope=kAudioObjectPropertyScopeGlobal, AudioObjectPropertyElement element=kAudioObjectPropertyElementMain) const |
Notify HAL that some properties were changed. This is automatically called by all setters. | |
virtual std::vector< AudioServerPlugInCustomPropertyInfo > | GetCustomProperties () const |
Get info about registered custom properties. Returns list of properties added using RegisterCustomProperty(). | |
template<typename ObjectType , typename ValueType > | |
void | RegisterCustomProperty (AudioObjectPropertySelector selector, ObjectType &object, GetterMethod< ObjectType, ValueType > getter, SetterMethod< ObjectType, ValueType > setter=nullptr) |
Register custom property with getter and optional setter. | |
template<typename GetterFunc > | |
void | RegisterCustomProperty (AudioObjectPropertySelector selector, GetterFunc getter) |
Register custom property with getter and optional setter. | |
void | RegisterCustomProperty (AudioObjectPropertySelector selector, std::function< CFStringRef()> getter, std::function< void(CFStringRef)> setter) |
Register custom property with getter and optional setter. | |
void | RegisterCustomProperty (AudioObjectPropertySelector selector, std::function< CFPropertyListRef()> getter, std::function< void(CFPropertyListRef)> setter) |
Register custom property with getter and optional setter. | |
Protected Member Functions | |
Setters implementation | |
virtual OSStatus | SetIsMutedImpl (bool isMuted) |
Set muted boolean state. Invoked by SetIsMuted(). By default sets internal muted state. | |
Additional Inherited Members | |
Public Types inherited from aspl::Object | |
template<typename ObjectType , typename ValueType > | |
using | GetterMethod = ValueType (ObjectType::*)() const |
Pointer to custom property getter method. Used in RegisterCustomProperty(). | |
template<typename ObjectType , typename ValueType > | |
using | SetterMethod = void (ObjectType::*)(ValueType) |
Pointer to custom property setter method. Used in RegisterCustomProperty(). | |
Mute control object.
Stores a boolean state, indicating whether something is muted or not.
Mute control does not affect I/O by its own. It just stores the mute flag and provides ApplyProcessing() method which zeroises provided samples if the mute flag is set.
You can attach MuteControl to the Stream using Stream::AttachMuteControl() method, and then stream will use it to process samples passed to stream. Alternatively, you can invoke MuteControls manually the way you need.
Definition at line 38 of file MuteControl.hpp.
|
explicit |
Construct stream.
|
virtual |
Apply processing to given buffer. The provided buffer contains exactly frameCount
* channelCount
samples. If GetIsMuted() is false, this method does nothing. If GetIsMuted() is true, this method overrides all samples with zeros.
|
overridevirtual |
Get base class ID.
Reimplemented from aspl::Object.
|
overridevirtual |
Get class ID.
Reimplemented from aspl::Object.
|
virtual |
Get the element that the control is attached to. Typically should return kAudioObjectPropertyElementMain. By default returns kAudioObjectPropertyElementMain.
kAudioControlPropertyElement
property.
|
virtual |
Get muted boolean state. By default returns internal muted state. Initial value of the flag is false.
kAudioBooleanControlPropertyValue
property.
|
overridevirtual |
Get property value.
Reimplemented from aspl::Object.
|
overridevirtual |
Get size of property value in bytes.
Reimplemented from aspl::Object.
|
virtual |
Get the scope that the control is attached to. Can return kAudioObjectPropertyScopeInput or kAudioObjectPropertyScopeOutput. By default returns MuteControlParameters::Scope.
kAudioControlPropertyScope
property.
|
overridevirtual |
Check whether given property is present.
Reimplemented from aspl::Object.
|
overridevirtual |
Check if this object is instance of given base class.
Reimplemented from aspl::Object.
|
overridevirtual |
Check whether given property can be changed.
Reimplemented from aspl::Object.
OSStatus aspl::MuteControl::SetIsMuted | ( | bool | isMuted | ) |
Set muted boolean state. Invokes SetIsMutedImpl() and NotifyPropertiesChanged().
kAudioBooleanControlPropertyValue
property.
|
protectedvirtual |
Set muted boolean state. Invoked by SetIsMuted(). By default sets internal muted state.
kAudioBooleanControlPropertyValue
property.
|
overridevirtual |
Change property value.
Reimplemented from aspl::Object.