The IMMAmpMixer class provides input or output switching and sound-shaping services, such as volume, treble, gain, or bass control. The amplifier-mixer is similar to a home stereo amplifier and mixer. Devices are connected to the IMMAmpMixer so that audio signals can be transferred to speakers or another device.
You can construct and destruct objects of this class.
![]() |
public:
virtual ~IMMAmpMixer()
Windows | OS/2 | AIX |
Yes | Yes | No |
![]() |
public:
IMMAmpMixer( unsigned long deviceIdentifier, const IString& newAlias = IString ( ) )
A derived class can construct an IMMAmpMixer from the following:
Windows | OS/2 | AIX |
Yes | Yes | No |
public:
IMMAmpMixer( bool openNow = true, unsigned long instance = 0, bool openShareable = true )
You can construct an IMMAmpMixer from the following:
Windows | OS/2 | AIX |
Yes | Yes | No |
These members check if the passed in string is in the correct format to open the current device.
![]() |
public:
virtual IMMAmpMixer& close(CallType call = wait)
Closes a device.
Windows | OS/2 | AIX |
Yes | Yes | No |
This member is overridden in this derived class for specific operating system behavior.
![]() |
Opens the device.
public:
virtual IMMAmpMixer& open( const IString& fileOrDevice = IString ( ), bool shareable = true, CallType call = wait )
Windows | OS/2 | AIX |
Yes | Yes | No |
This member is overridden in this derived class for specific operating system behavior.
protected:
virtual IMMAmpMixer& open( unsigned long instanceNumber, bool shareable = true, CallType call = nowait )
Windows | OS/2 | AIX |
Yes | Yes | No |
This member is overridden in this derived class for specific operating system behavior.
![]() |
Opens the device.
public:
virtual IMMAmpMixer& openOnThread( const IString& fileOrDevice = IString ( ), bool shareable = true, CallType call = wait )
Windows | OS/2 | AIX |
Yes | Yes | No |
This member is overridden in this derived class for specific operating system behavior.
protected:
virtual IMMAmpMixer& openOnThread( unsigned long instanceNumber, bool shareable = true )
Windows | OS/2 | AIX |
Yes | Yes | No |
This member is overridden in this derived class for specific operating system behavior.
![]() |
protected:
virtual bool isOpenStringValid( const IString& deviceName ) const
Returns true if the passed in open string is valid for this device.
Windows | OS/2 | AIX |
Yes | Yes | No |
Use these members to query and set the different amplifier-mixer attributes.
![]() |
public:
unsigned long balance(CallType call = wait) const
Returns the balance, where 0 is defined as full left balance and 100 is defined as full right balance.
IAccessError | The device identifier is not valid; possibly the device is closed. |
IAccessError | The device cannot acquire access to the hardware device; possibly another device of this same type was acquired for exclusive use in this or another process. |
IAccessError | An internal driver error occurred. |
IInvalidRequest | The device must be in the open state before calling this function. |
Windows | OS/2 | AIX |
Yes | Yes | No |
![]() |
public:
unsigned long bass(CallType call = wait) const
Returns the bass, where 0 is the least amount of bass and 100 is the most amount of bass.
IAccessError | The device identifier is not valid; possibly the device is closed. |
IAccessError | The device cannot acquire access to the hardware device; possibly another device of this same type was acquired for exclusive use in this or another process. |
IAccessError | An internal driver error occurred. |
IInvalidRequest | The device must be in the open state before calling this function. |
Windows | OS/2 | AIX |
Yes | Yes | No |
![]() |
public:
unsigned long gain(CallType call = wait) const
Returns the gain, where 0 is the least amount of gain and 100 is the most amount of gain.
IAccessError | The device identifier is not valid; possibly the device is closed. |
IAccessError | The device cannot acquire access to the hardware device; possibly another device of this same type was acquired for exclusive use in this or another process. |
IAccessError | An internal driver error occurred. |
IInvalidRequest | The device must be in the open state before calling this function. |
Windows | OS/2 | AIX |
Yes | Yes | No |
![]() |
public:
unsigned long pitch(CallType call = wait) const
Returns the pitch, where 0 is the lowest pitch and 100 the highest pitch.
IAccessError | The device identifier is not valid; possibly the device is closed. |
IAccessError | The device cannot acquire access to the hardware device; possibly another device of this same type was acquired for exclusive use in this or another process. |
IAccessError | An internal driver error occurred. |
IInvalidRequest | The device must be in the open state before calling this function. |
Windows | OS/2 | AIX |
Yes | Yes | No |
![]() |
public:
virtual IMMAmpMixer& setBalance( unsigned long balance, CallType call = wait )
Sets the balance, where 0 is defined as full left balance and 100 is defined as full right balance.
IAccessError | The device identifier is not valid; possibly the device is closed. |
IAccessError | The device cannot acquire access to the hardware device; possibly another device of this same type was acquired for exclusive use in this or another process. |
IAccessError | An internal driver error occurred. |
IInvalidRequest | The device must be in the open state before calling this function. |
Windows | OS/2 | AIX |
Yes | Yes | No |
![]() |
public:
virtual IMMAmpMixer& setBass( unsigned long bass, CallType call = wait )
Sets the bass, where 0 is the least amount of bass and 100 is the most amount of bass.
IAccessError | The device identifier is not valid; possibly the device is closed. |
IAccessError | The device cannot acquire access to the hardware device; possibly another device of this same type was acquired for exclusive use in this or another process. |
IAccessError | An internal driver error occurred. |
IInvalidRequest | The device must be in the open state before calling this function. |
Windows | OS/2 | AIX |
Yes | Yes | No |
![]() |
public:
virtual IMMAmpMixer& setGain( unsigned long gain, CallType call = wait )
Sets the gain, where 0 is the least amount of gain and 100 is the most amount of gain.
IAccessError | The device identifier is not valid; possibly the device is closed. |
IAccessError | The device cannot acquire access to the hardware device; possibly another device of this same type was acquired for exclusive use in this or another process. |
IAccessError | An internal driver error occurred. |
IInvalidRequest | The device must be in the open state before calling this function. |
Windows | OS/2 | AIX |
Yes | Yes | No |
![]() |
public:
virtual IMMAmpMixer& setPitch( unsigned long pitch, CallType call = wait )
Sets the pitch, where 0 is lowest pitch and 100 is the highest pitch.
IAccessError | The device identifier is not valid; possibly the device is closed. |
IAccessError | The device cannot acquire access to the hardware device; possibly another device of this same type was acquired for exclusive use in this or another process. |
IAccessError | An internal driver error occurred. |
IInvalidRequest | The device must be in the open state before calling this function. |
Windows | OS/2 | AIX |
Yes | Yes | No |
![]() |
public:
virtual IMMAmpMixer& setTreble( unsigned long treble, CallType call = wait )
Sets the treble, where 0 is the least amount of treble and 100 is the most amount of treble.
IAccessError | The device identifier is not valid; possibly the device is closed. |
IAccessError | The device cannot acquire access to the hardware device; possibly another device of this same type was acquired for exclusive use in this or another process. |
IAccessError | An internal driver error occurred. |
IInvalidRequest | The device must be in the open state before calling this function. |
Windows | OS/2 | AIX |
Yes | Yes | No |
![]() |
public:
unsigned long treble(CallType call = wait) const
Returns the treble, where 0 is the least amount of treble and 100 is the most amount of treble.
IAccessError | The device identifier is not valid; possibly the device is closed. |
IAccessError | The device cannot acquire access to the hardware device; possibly another device of this same type was acquired for exclusive use in this or another process. |
IAccessError | An internal driver error occurred. |
IInvalidRequest | The device must be in the open state before calling this function. |
Windows | OS/2 | AIX |
Yes | Yes | No |
Use these members to either allow or not allow the signal from an input device to be heard when it is being routed to another device.
The amplifier-mixer device has the ability to monitor (listen to) the audio signal from one device while the audio signal from a second device is being recorded. The main use of monitoring is for recording and mixing more than one audio source. The amplifier-mixer device supports one audio connection and the ability to monitor a second audio source.
![]() |
public:
virtual IMMAmpMixer& disableMonitoring( CallType call = wait )
Does not allow the signal from an input device to be heard as it is being routed to another device. The amplifier-mixer device has the ability to monitor (listen to) the audio signal from one device while the audio signal from a second device is being recorded. The main use of monitoring is for recording and mixing more than one audio source. The amplifier-mixer device supports one audio connection and the ability to monitor a second audio source.
IAccessError | The device identifier is not valid; possibly the device is closed. |
IAccessError | The device cannot acquire access to the hardware device; possibly another device of this same type was acquired for exclusive use in this or another process. |
IAccessError | An internal driver error occurred. |
IInvalidRequest | The device must be in the open state before calling this function. |
Windows | OS/2 | AIX |
Yes | Yes | No |
![]() |
public:
virtual IMMAmpMixer& enableMonitoring( bool enable = true, CallType call = wait )
Allows the signal from an input device to be heard as it is being routed to another device. The amplifier-mixer device has the ability to monitor (listen to) the audio signal from one device while the audio signal from a second device is being recorded. The main use of monitoring is for recording and mixing more than one audio source. The amplifier-mixer device supports one audio connection and the ability to monitor a second audio source.
IAccessError | The device identifier is not valid; possibly the device is closed. |
IAccessError | The device cannot acquire access to the hardware device; possibly another device of this same type was acquired for exclusive use in this or another process. |
IAccessError | An internal driver error occurred. |
IInvalidRequest | The device must be in the open state before calling this function. |
Windows | OS/2 | AIX |
Yes | Yes | No |
![]() |
public:
bool isMonitoringEnabled(CallType call = wait) const
Returns true if the monitor is turned on. The amplifier-mixer device has the ability to monitor (listen to) the audio signal from one device while the audio signal from a second device is being recorded.
IAccessError | The device identifier is not valid; possibly the device is closed. |
IAccessError | The device cannot acquire access to the hardware device; possibly another device of this same type was acquired for exclusive use in this or another process. |
IAccessError | An internal driver error occurred. |
IInvalidRequest | The device must be in the open state before calling this function. |
Windows | OS/2 | AIX |
Yes | Yes | No |
virtual ~IMMDevice()
virtual IMMDevice& acquire( ShareMode acquire = shareable, bool queuedForResources = false, CallType call = wait )
IString aliasName() const
virtual IMMDevice& close(CallType call = wait)
unsigned long connectedDeviceId( ConnectorType type, CallType call = wait ) const
virtual IMMDevice& deletePendingEvents( EventType event = allEvents )
IString description(CallType call = wait) const
unsigned long deviceId() const
IString deviceName() const
unsigned long deviceType(CallType call = wait) const
virtual IMMDevice& disableAudio( AudioChannel channel = all, const IMMMillisecondTime& over = IMMMillisecondTime ( ), CallType call = wait )
virtual IMMDevice& disableConnector( ConnectorType type, CallType call = wait )
virtual IMMDevice& enableAudio( bool enable = true, AudioChannel channel = all, const IMMMillisecondTime& over = IMMMillisecondTime ( ), CallType call = wait )
virtual IMMDevice& enableConnector( ConnectorType type, bool enable = true, CallType call = wait )
virtual IMMDevice& enableNotification(bool enabled = true)
bool isAcquired(CallType call = wait) const
bool isAudioEnabled( AudioChannel channel = all, CallType call = wait )
bool isCloseOnDestroy() const
bool isConnectionSupported( ConnectorType type, CallType call = wait ) const
bool isConnectorEnabled( ConnectorType type, CallType call = wait ) const
bool isOpen() const
virtual Mode mode(CallType call = wait) const
virtual IMMDevice& open( const IString& fileOrDevice = IString ( ), bool shareable = true, CallType call = wait )
virtual IMMDevice& openOnThread( const IString& fileOrDevice = IString ( ), bool shareable = true, CallType call = wait )
IMMTime prerollTime(CallType call = wait) const
PrerollType prerollType(CallType call = wait) const
virtual IMMDevice& release(CallType call = wait)
bool requiresFiles(CallType call = wait) const
IMMDevice& setCloseOnDestroy(bool close = true)
virtual IMMDevice& setSpeedFormat( IMMSpeed::Format format, CallType call = wait )
virtual IMMDevice& setTimeFormat( IMMTime::Format format, CallType call = wait )
virtual IMMDevice& setVolume( unsigned long volume, AudioChannel channel = all, const IMMMillisecondTime& over = IMMMillisecondTime ( ), CallType call = wait )
IMMSpeed::Format speedFormat(CallType call = wait) const
bool supportsAudio(CallType call = wait) const
bool supportsCommand( IMMNotifyEvent::Command command, CallType call = wait ) const
bool supportsDigitalTransfer(CallType call = wait) const
bool supportsDisableEject(CallType call = wait) const
bool supportsEject(CallType call = wait) const
bool supportsPlay(CallType call = wait) const
bool supportsRecord(CallType call = wait) const
bool supportsRecordInsertion(CallType call = wait) const
bool supportsSave(CallType call = wait) const
bool supportsStreaming(CallType call = wait) const
bool supportsVideo(CallType call = wait) const
bool supportsVolumeAdjustment(CallType call = wait) const
IMMTime::Format timeFormat(CallType call = wait) const
virtual unsigned long volume( AudioChannel channel = left, CallType call = wait ) const
virtual ~INotifier()
virtual INotifier& disableNotification() = 0
virtual INotifier& enableNotification( bool enable = true ) = 0
INotifier()
virtual bool isEnabledForNotification() const = 0
virtual INotifier& notifyObservers( const INotificationEvent& event ) = 0
virtual INotifier& notifyObserversAsync( const INotificationEvent& event )
const IThreadId& threadId() const
virtual ~IStandardNotifier()
virtual IStandardNotifier& disableNotification()
virtual IStandardNotifier& enableNotification( bool enable = true )
virtual bool isEnabledForNotification() const
IStandardNotifier(const IStandardNotifier& copy)
IStandardNotifier()
virtual INotifierAddress notifierAddress() const
virtual IStandardNotifier& notifyObservers( const INotificationEvent& anEvent )
virtual IStandardNotifier& notifyObserversAsync( const INotificationEvent& anEvent )
IStandardNotifier& operator =( const IStandardNotifier& aStandardNotifier )
static INotificationId const allChangesId
static INotificationId const deleteId
static const unsigned long allDevices
static const unsigned long ampMixer
static const unsigned long animation
static const unsigned long audioCD
static const unsigned long audioTape
static const unsigned long cdxa
static INotificationId const commandNotifyId
static INotificationId const cuePointId
static const unsigned long dat
static INotificationId const deviceEventId
static const unsigned long digitalVideo
static const unsigned long headphone
static const unsigned long microphone
static const unsigned long monitor
static const unsigned long other
static const unsigned long overlay
static INotificationId const passDeviceId
static INotificationId const positionChangeId
static const unsigned long sequencer
static const unsigned long speaker
static const unsigned long videoDisc
static const unsigned long videoTape
static const unsigned long waveAudio
virtual IStandardNotifier& addObserver( IObserver& observer, const IInterest& interest )
virtual IStandardNotifier& notifyObservers( const INotificationId& nId )
virtual IObserverList& observerList( const IInterest* anInterest = 0 ) const
virtual IStandardNotifier& removeAllObservers()
virtual IStandardNotifier& removeObserver( IObserver& observer, const IInterest& interest )
virtual IStandardNotifier& removeObserver( IObserver& observer )
virtual INotifier& addObserver( IObserver& observer, const IInterest& interest )
virtual INotifier& notifyObservers( const INotificationId& id ) = 0
virtual IObserverList& observerList( const IInterest* anInterest = 0 ) const = 0
virtual INotifier& removeAllObservers() = 0
virtual INotifier& removeObserver(IObserver& observer) = 0
virtual INotifier& removeObserver( IObserver& observer, const IInterest& interest )
IMMMessageWindow& deviceWindow() const
IMMDevice( unsigned long deviceIdentifier, const IString& newAlias = IString ( ) )
IMMDevice(const IString& fileOrDevice)
unsigned long itemCapability( unsigned long item, CallType call ) const
unsigned long itemStatus( unsigned long item, unsigned long value = 0, CallType call = wait ) const
unsigned long lastError() const
virtual bool mixerControlValues( unsigned long dwComponentType, unsigned long dwControlType, unsigned short* usDetails, bool uniform = true, unsigned long multipleItems = 0, unsigned long hmx = NULL )
virtual bool mixerControlValues( unsigned long dwComponentType, unsigned long dwControlType, unsigned long* ulDetails, bool uniform = true, unsigned long multipleItems = 0, unsigned long hmx = NULL )
IMMDeviceNotifyHandler* notificationHandler() const
virtual IMMDevice& open( unsigned long instanceNumber, bool shareable = true, CallType call = nowait )
virtual IMMDevice& openOnThread( unsigned long instanceNumber, bool shareable = true )
OpenStatus openStatus() const
virtual IMMDevice& restoreDeviceSettings( bool newRecordMode = false )
virtual IMMDevice& saveDeviceSettings()
IString sendCommand(const IString& command)
IMMDevice& sendCommand( unsigned short message, unsigned long param1, void* param2, unsigned short userParm )
IMMDevice& sendCommand( unsigned short message, unsigned long param1, void* param2 )
IString sendCommand( const IString& command, unsigned short userParm )
IMMDevice& setLastError(unsigned long errorId)
virtual bool setMixerControlValues( unsigned long dwComponentType, unsigned long dwControlType, unsigned short* usDetails, bool uniform = true, unsigned long multipleItems = 0, unsigned long hmx = NULL )
virtual bool setMixerControlValues( unsigned long dwComponentType, unsigned long dwControlType, unsigned long* ulDetails, bool uniform = true, unsigned long multipleItems = 0, unsigned long hmx = NULL )
IMMDevice& setNotificationHandler( IMMDeviceNotifyHandler* notifyHandler )
IMMDevice& setOpenStatus(OpenStatus status)
IMMDevice& setPassDeviceRequested(bool sawPassDevice)
IMMDevice& setSystemMixerHandle(unsigned long hmx)
IMMDevice& setUserParameter(unsigned short userParm = 0)
unsigned long systemMixerHandle() const
unsigned short userParameter() const
bool wasPassDeviceRequested() const