This repository has been archived on 2025-06-06. You can view files and clone it, but cannot push or open issues or pull requests.
Files
android-g900/Start_WM/test6/inc/GFMmProc.h
2010-10-16 00:02:07 +06:00

1767 lines
89 KiB
C
Executable File

/* Copyright (c) 2006 NVIDIA Corporation. All rights reserved.
*
* NVIDIA Corporation and its licensors retain all intellectual property
* and proprietary rights in and to this software, related documentation
* and any modifications thereto. Any use, reproduction, disclosure or
* distribution of this software and related documentation without an
* express license agreement from NVIDIA Corporation is strictly prohibited.
*/
/** @file GFMmProc.h
GFSDK Multimedia Processor API header file.
*/
#ifndef __GFMmProc_H__
#define __GFMmProc_H__
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
/** @addtogroup groupMmProc MmProcAPI Multimedia Processor API
*/
/*@{*/
// Typesafe functions for opening and closing this component
GF_RETTYPE GFMmProcOpen(GFRmHandle hRm, GFMmProcHandle *phMmProc,
GF_STATE_TYPE state, GFRmChHandle hCh);
void GFMmProcClose(GFRmHandle hRm, GFMmProcHandle *phMmProc);
//*****************************************************************************
//*****************************************************************************
//
// Packages
//
//*****************************************************************************
//*****************************************************************************
//
// These defines are used to import or remove functionality within the audio
// engine.
//
//#define GFMMPROC_BASIC_AUDIO
//
// Adds audio controls to the package beyond basic playback.
//
//#define GFMMPROC_BASIC_AUDIO
//
// Adds advanced multimedia processing and functionality.
//
// NOTE: Currently the advanced feature set requires the basic level of audio
// support. This requirement may not be present in future revisions.
//
//#define GFMMPROC_BASIC_AUDIO
//#define GFMMPROC_ADVANCED
//
// Adds 3D audio controls (requires GFMMPROC_ADVANCED).
//
//#define GFMMPROC_BASIC_AUDIO
//#define GFMMPROC_ADVANCED
//#define GFMMPROC_ADVANCED_3D_AUDIO_CONTROLS
//
// Adds advanced controls (requires GFMMPROC_ADVANCED).
//
//#define GFMMPROC_BASIC_AUDIO
//#define GFMMPROC_ADVANCED
//#define GFMMPROC_ADVANCED_CONTROLS
//
// Adds global effect audio controls (requires GFMMPROC_ADVANCED_CONTROLS).
//
//#define GFMMPROC_BASIC_AUDIO
//#define GFMMPROC_ADVANCED
//#define GFMMPROC_ADVANCED_CONTROLS
//#define GFMMPROC_ADVANCED_AUDIO_EFFECT_CONTROLS
//*****************************************************************************
//*****************************************************************************
//
// Defines
//
//*****************************************************************************
//*****************************************************************************
#if defined GFMMPROC_BASIC_AUDIO || defined GFMMPROC_ADVANCED
#define GFMMPROC_TIME_UNITS_PER_SECOND 1000000
#endif
typedef GF_HANDLE GFMMPROC_OBJECT;
//*****************************************************************************
// Object
//*****************************************************************************
//
typedef struct _GFMMPROC_OBJECT_TABLE
{
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
} GFMMPROC_OBJECT_TABLE;
#define GFMMPROC_OBJECT_DEFAULT_STR "Object"
#define GFMMPROC_OBJECT_MANAGER_STR "Manager"
#define GFMMPROC_OBJECT_GLOBAL_MANAGER_STR "GlobalManager"
#define GFMMPROC_OBJECT_PLAYER_STR "Player"
#define GFMMPROC_OBJECT_SOUND_SOURCE_3D_STR "SoundSource3D"
#define GFMMPROC_OBJECT_SPECTATOR_STR "Spectator"
#define GFMMPROC_OBJECT_MODULE_STR "Module"
#define GFMMPROC_OBJECT_MEDIA_PROCESSOR_STR "MediaProcessor"
#define GFMMPROC_OBJECT_CODEC_STR "Codec"
#define GFMMPROC_CONTROL_DEFAULT_STR "Control"
#define GFMMPROC_CONTROL_MIDI_STR "MIDI"
#define GFMMPROC_CONTROL_PITCH_STR "Pitch"
#define GFMMPROC_CONTROL_RATE_STR "Rate"
#define GFMMPROC_CONTROL_RECORD_STR "Record"
#define GFMMPROC_CONTROL_STOP_TIME_STR "StopTime"
#define GFMMPROC_CONTROL_TEMPO_STR "Tempo"
#define GFMMPROC_CONTROL_TONE_STR "Tone"
#define GFMMPROC_CONTROL_VOLUME_STR "Volume"
#define GFMMPROC_CONTROL_AUDIO_FORMAT_STR "AudioFormat"
#define GFMMPROC_CONTROL_EFFECT_STR "Effect"
#define GFMMPROC_CONTROL_EFFECT_ORDER_STR "EffectOrder"
#define GFMMPROC_CONTROL_FORMAT_STR "Format"
#define GFMMPROC_CONTROL_MIDI_CHANNEL_STR "MIDIChannel"
#define GFMMPROC_CONTROL_PAN_STR "Pan"
#define GFMMPROC_CONTROL_PRIORITY_STR "Priority"
#define GFMMPROC_CONTROL_COMMIT_STR "Commit"
#define GFMMPROC_CONTROL_ORIENTATION_STR "Orientation"
#define GFMMPROC_CONTROL_DIRECTIVITY_STR "Directivity"
#define GFMMPROC_CONTROL_DISTANCE_ATTENUATION_STR "DistanceAttenuation"
#define GFMMPROC_CONTROL_DOPPLER_STR "Doppler"
#define GFMMPROC_CONTROL_LOCATION_STR "Location"
#define GFMMPROC_CONTROL_MACROSCOPIC_STR "Macroscopic"
#define GFMMPROC_CONTROL_OBSTRUCTION_STR "Obstruction"
#define GFMMPROC_CONTROL_3DCOEFFICIENTS_STR "3DCoefficients"
#define GFMMPROC_CONTROL_EFFECT_AUDIO_VIRTUALIZER_STR "AudioVirtualizer"
#define GFMMPROC_CONTROL_EFFECT_ACOUSTIC_ECHO_CANCELLATION_STR "AcousticEchoCancellation"
#define GFMMPROC_CONTROL_EFFECT_SBC_STR "SBC"
#define GFMMPROC_CONTROL_EFFECT_SBR_STR "SBR"
#define GFMMPROC_CONTROL_EFFECT_DRC_STR "DRC"
#define GFMMPROC_CONTROL_EFFECT_CHORUS_STR "Chorus"
#define GFMMPROC_CONTROL_EFFECT_EQUALIZER_STR "Equalizer"
#define GFMMPROC_CONTROL_EFFECT_REVERB_STR "Reverb"
#define GFMMPROC_CONTROL_REVERB_SOURCE_STR "ReverbSource"
#define GFMmProcObjectIsInstance(handle, objectType) \
((GFMMPROC_OBJECT_TABLE*)handle)->MmProcObjectIsInstance(handle, objectType)
GF_HANDLE GFMmProcObjectAlloc(GFMmProcHandle component, const char* objectType);
void GFMmProcObjectFree(GF_HANDLE handle);
#if defined GFMMPROC_BASIC_AUDIO || defined GFMMPROC_ADVANCED
typedef GF_HANDLE GFMMPROC_STREAM;
//*****************************************************************************
// Stream
//*****************************************************************************
//
typedef struct _GFMMPROC_STREAM_TABLE
{
void (*MmProcStreamClose)(GFMMPROC_STREAM handle);
NvS32 (*MmProcStreamGetBuffer)(GFMMPROC_STREAM handle, NvU32 tag, void** descriptor, void** buffer);
void (*MmProcStreamReleaseBuffer)(GFMMPROC_STREAM handle, NvU32 tag, NvU32 status, NvU32 size);
void (*MmProcStreamReset)(GFMMPROC_STREAM handle);
} GFMMPROC_STREAM_TABLE;
#define GFMMPROC_STREAM_END_OF_MEDIA 0x00000001
#define GFMmProcStreamClose(handle) \
((GFMMPROC_STREAM_TABLE*)handle)->MmProcStreamClose(handle)
#define GFMmProcStreamGetBuffer(handle, tag, descriptor, buffer) \
((GFMMPROC_STREAM_TABLE*)handle)->MmProcStreamGetBuffer(handle, tag, descriptor, buffer)
#define GFMmProcStreamReleaseBuffer(handle, tag, status, size) \
((GFMMPROC_STREAM_TABLE*)handle)->MmProcStreamReleaseBuffer(handle, tag, status, size)
#define GFMmProcStreamReset(handle) \
((GFMMPROC_STREAM_TABLE*)handle)->MmProcStreamReset(handle)
#endif // #if defined GFMMPROC_BASIC_AUDIO || defined GFMMPROC_ADVANCED
//*****************************************************************************
//*****************************************************************************
//
//
// GFMMPROC_BASIC_AUDIO
//
//
//*****************************************************************************
//*****************************************************************************
#if defined GFMMPROC_BASIC_AUDIO
typedef GFMMPROC_OBJECT GFMMPROC_CONTROL;
typedef GF_HANDLE GFMMPROC_CONTROLLABLE;
typedef GFMMPROC_OBJECT GFMMPROC_MANAGER;
typedef GFMMPROC_CONTROLLABLE GFMMPROC_PLAYER;
typedef GF_HANDLE GFMMPROC_PLAYER_LISTENER;
typedef GF_HANDLE GFMMPROC_TIME_BASE;
typedef enum {
GFMMPROC_CODEC_TYPE_UNSPECIFIED = 0,
GFMMPROC_CODEC_TYPE_I2S,
GFMMPROC_CODEC_TYPE_AC97
} GFMMPROC_CODEC_TYPE;
//*****************************************************************************
// Control
//*****************************************************************************
//
typedef GFMMPROC_OBJECT_TABLE GFMMPROC_CONTROL_TABLE;
//*****************************************************************************
// Controllable
//*****************************************************************************
//
typedef struct _GFMMPROC_CONTROLLABLE_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
GFMMPROC_CONTROL (*MmProcControllableGetControl)(GFMMPROC_CONTROLLABLE handle, char* controlType);
GFMMPROC_CONTROL* (*MmProcControllableGetControls)(GFMMPROC_CONTROLLABLE handle);
} GFMMPROC_CONTROLLABLE_TABLE;
#define GFMmProcControllableGetControl(handle, controlType) \
((GFMMPROC_CONTROLLABLE_TABLE*)handle)->MmProcControllableGetControl(handle, controlType)
#define GFMmProcControllableGetControls(handle) \
((GFMMPROC_CONTROLLABLE_TABLE*)handle)->MmProcControllableGetControls(handle)
//*****************************************************************************
// Manager
//*****************************************************************************
//
typedef struct _GFMMPROC_MANAGER_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
GFMMPROC_PLAYER (*MmProcManagerCreatePlayer)(GFMMPROC_MANAGER handle, char* locator);
// GFMMPROC_PLAYER (*MmProcManagerCreatePlayerForDataSource)(GFMMPROC_MANAGER handle, DataSource source);
GFMMPROC_PLAYER (*MmProcManagerCreatePlayerForStream)(GFMMPROC_MANAGER handle, GFMMPROC_STREAM stream, char* contentType);
char* (*MmProcManagerGetSupportedContentTypes)(GFMMPROC_MANAGER handle, char* protocol);
char* (*MmProcManagerGetSupportedProtocols)(GFMMPROC_MANAGER handle, char* contentType);
GFMMPROC_TIME_BASE (*MmProcManagerGetSystemTimeBase)(GFMMPROC_MANAGER handle);
void (*MmProcManagerPlayTone)(GFMMPROC_MANAGER handle, NvU32 note, NvU32 duration, NvU32 volume);
void (*MmProcManagerProcess)(GFMMPROC_MANAGER handle);
GFMMPROC_CODEC_TYPE (*MmProcManagerGetCodecType)(GFMMPROC_MANAGER handle);
void (*MmProcManagerCodecWrite)(GFMMPROC_MANAGER handle, NvU32 offset, NvU32 value);
NvU32 (*MmProcManagerCodecRead)(GFMMPROC_MANAGER handle, NvU32 offset);
} GFMMPROC_MANAGER_TABLE;
#define GFMMPROC_MANAGER_MIDI_DEVICE_LOCATOR "device://midi"
#define GFMMPROC_MANAGER_TONE_DEVICE_LOCATOR "device://tone"
#define GFMmProcManagerCreatePlayer(handle, locator) \
((GFMMPROC_MANAGER_TABLE*)handle)->MmProcManagerCreatePlayer(handle, locator)
//#define GFMmProcManagerCreatePlayerForDataSource(handle, source) Add multiline delineator here
// ((GFMMPROC_MANAGER_TABLE*)handle)->MmProcManagerCreatePlayerForDataSource(handle, source)
#define GFMmProcManagerCreatePlayerForStream(handle, stream, contentType) \
((GFMMPROC_MANAGER_TABLE*)handle)->MmProcManagerCreatePlayerForStream(handle, stream, contentType)
#define GFMmProcManagerGetSupportedContentTypes(handle, protocol) \
((GFMMPROC_MANAGER_TABLE*)handle)->MmProcManagerGetSupportedContentTypes(handle, protocol)
#define GFMmProcManagerGetSupportedProtocols(handle, contentType) \
((GFMMPROC_MANAGER_TABLE*)handle)->MmProcManagerGetSupportedProtocols(handle, contentType)
#define GFMmProcManagerGetSystemTimeBase(handle) \
((GFMMPROC_MANAGER_TABLE*)handle)->MmProcManagerGetSystemTimeBase(handle)
#define GFMmProcManagerPlayTone(handle, note, duration, volume) \
((GFMMPROC_MANAGER_TABLE*)handle)->MmProcManagerPlayTone(handle, note, duration, volume)
#define GFMmProcManagerProcess(handle) \
((GFMMPROC_MANAGER_TABLE*)handle)->MmProcManagerProcess(handle)
#define MmProcManagerGetCodecType(handle) \
((GFMMPROC_MANAGER_TABLE*)handle)->MmProcManagerGetCodecType(handle)
#define MmProcManagerCodecWrite(handle, offset, value) \
((GFMMPROC_MANAGER_TABLE*)handle)->MmProcManagerCodecWrite(handle, offset, value)
#define MmProcManagerCodecRead(handle, offset) \
((GFMMPROC_MANAGER_TABLE*)handle)->MmProcManagerCodecRead(handle, offset)
//*****************************************************************************
// Player
//*****************************************************************************
//
typedef struct _GFMMPROC_PLAYER_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
//
// Controllable Methods
//
GFMMPROC_CONTROL (*MmProcControllableGetControl)(GFMMPROC_CONTROLLABLE handle, char* controlType);
GFMMPROC_CONTROL* (*MmProcControllableGetControls)(GFMMPROC_CONTROLLABLE handle);
void (*MmProcPlayerAddPlayerListener)(GFMMPROC_PLAYER handle, GFMMPROC_PLAYER_LISTENER playerListener);
void (*MmProcPlayerClose)(GFMMPROC_PLAYER handle);
void (*MmProcPlayerDeallocate)(GFMMPROC_PLAYER handle);
char* (*MmProcPlayerGetContentType)(GFMMPROC_PLAYER handle);
NvS64 (*MmProcPlayerGetDuration)(GFMMPROC_PLAYER handle);
NvS64 (*MmProcPlayerGetMediaTime)(GFMMPROC_PLAYER handle);
NvU32 (*MmProcPlayerGetState)(GFMMPROC_PLAYER handle);
GFMMPROC_TIME_BASE (*MmProcPlayerGetTimeBase)(GFMMPROC_PLAYER handle);
NvU32 (*MmProcPlayerPrefetch)(GFMMPROC_PLAYER handle);
void (*MmProcPlayerPull)(GFMMPROC_PLAYER handle, NvS32 allow);
void (*MmProcPlayerRealize)(GFMMPROC_PLAYER handle);
void (*MmProcPlayerRemovePlayerListener)(GFMMPROC_PLAYER handle, GFMMPROC_PLAYER_LISTENER playerListener);
void (*MmProcPlayerSetLoopCount)(GFMMPROC_PLAYER handle, NvS32 count);
NvS64 (*MmProcPlayerSetMediaTime)(GFMMPROC_PLAYER handle, NvS64 now);
void (*MmProcPlayerSetTimeBase)(GFMMPROC_PLAYER handle, GFMMPROC_TIME_BASE master);
void (*MmProcPlayerStart)(GFMMPROC_PLAYER handle);
void (*MmProcPlayerStop)(GFMMPROC_PLAYER handle);
} GFMMPROC_PLAYER_TABLE;
#define GFMMPROC_PLAYER_UNREALIZED 100
#define GFMMPROC_PLAYER_REALIZED 200
#define GFMMPROC_PLAYER_PREFETCHED 300
#define GFMMPROC_PLAYER_STARTED 400
#define GFMMPROC_PLAYER_CLOSED 0
#define GFMMPROC_PLAYER_TIME_UNKNOWN -1
#define GFMmProcPlayerAddPlayerListener(handle, playerListener) \
((GFMMPROC_PLAYER_TABLE*)handle)->MmProcPlayerAddPlayerListener(handle, playerListener)
#define GFMmProcPlayerClose(handle) \
((GFMMPROC_PLAYER_TABLE*)handle)->MmProcPlayerClose(handle)
#define GFMmProcPlayerDeallocate(handle) \
((GFMMPROC_PLAYER_TABLE*)handle)->MmProcPlayerDeallocate(handle)
#define GFMmProcPlayerGetContentType(handle) \
((GFMMPROC_PLAYER_TABLE*)handle)->MmProcPlayerGetContentType(handle)
#define GFMmProcPlayerGetDuration(handle) \
((GFMMPROC_PLAYER_TABLE*)handle)->MmProcPlayerGetDuration(handle)
#define GFMmProcPlayerGetMediaTime(handle) \
((GFMMPROC_PLAYER_TABLE*)handle)->MmProcPlayerGetMediaTime(handle)
#define GFMmProcPlayerGetState(handle) \
((GFMMPROC_PLAYER_TABLE*)handle)->MmProcPlayerGetState(handle)
#define GFMmProcPlayerGetTimeBase(handle) \
((GFMMPROC_PLAYER_TABLE*)handle)->MmProcPlayerGetTimeBase(handle)
#define GFMmProcPlayerPrefetch(handle) \
((GFMMPROC_PLAYER_TABLE*)handle)->MmProcPlayerPrefetch(handle)
#define GFMmProcPlayerPull(handle, allow) \
((GFMMPROC_PLAYER_TABLE*)handle)->MmProcPlayerPull(handle, allow)
#define GFMmProcPlayerRealize(handle) \
((GFMMPROC_PLAYER_TABLE*)handle)->MmProcPlayerRealize(handle)
#define GFMmProcPlayerRemovePlayerListener(handle, playerListener) \
((GFMMPROC_PLAYER_TABLE*)handle)->MmProcPlayerRemovePlayerListener(handle, playerListener)
#define GFMmProcPlayerSetLoopCount(handle, count) \
((GFMMPROC_PLAYER_TABLE*)handle)->MmProcPlayerSetLoopCount(handle, count)
#define GFMmProcPlayerSetMediaTime(handle, now) \
((GFMMPROC_PLAYER_TABLE*)handle)->MmProcPlayerSetMediaTime(handle, now)
#define GFMmProcPlayerSetTimeBase(handle, master) \
((GFMMPROC_PLAYER_TABLE*)handle)->MmProcPlayerSetMediaTime(handle, master)
#define GFMmProcPlayerStart(handle) \
((GFMMPROC_PLAYER_TABLE*)handle)->MmProcPlayerStart(handle)
#define GFMmProcPlayerStop(handle) \
((GFMMPROC_PLAYER_TABLE*)handle)->MmProcPlayerStop(handle)
//*****************************************************************************
// PlayerListener
//*****************************************************************************
//
typedef struct _GFMMPROC_PLAYER_LISTENER_TABLE
{
void (*MmProcPlayerListenerPlayerUpdate)(GFMMPROC_PLAYER_LISTENER handle, GFMMPROC_PLAYER player, const char* event, void* eventData);
} GFMMPROC_PLAYER_LISTENER_TABLE;
#define GFMMPROC_PLAYER_LISTENER_BUFFERING_STARTED "bufferingStarted"
#define GFMMPROC_PLAYER_LISTENER_BUFFERING_STOPPED "bufferingStopped"
#define GFMMPROC_PLAYER_LISTENER_CLOSED "closed"
#define GFMMPROC_PLAYER_LISTENER_END_OF_MEDIA "endOfMedia"
#define GFMMPROC_PLAYER_LISTENER_DEVICE_AVAILABLE "deviceAvailable"
#define GFMMPROC_PLAYER_LISTENER_DEVICE_UNAVAILABLE "deviceUnavailable"
#define GFMMPROC_PLAYER_LISTENER_DURATION_UPDATED "durationUpdated"
#define GFMMPROC_PLAYER_LISTENER_ERROR "error"
#define GFMMPROC_PLAYER_LISTENER_FORMAT_CHANGED "formatChanged"
#define GFMMPROC_PLAYER_LISTENER_RECORD_ERROR "recordError"
#define GFMMPROC_PLAYER_LISTENER_RECORD_STARTED "recordStarted"
#define GFMMPROC_PLAYER_LISTENER_RECORD_STOPPED "recordStopped"
#define GFMMPROC_PLAYER_LISTENER_STARTED "started"
#define GFMMPROC_PLAYER_LISTENER_STOPPED "stopped"
#define GFMMPROC_PLAYER_LISTENER_STOPPED_AT_TIME "stoppedAtTime"
#define GFMMPROC_PLAYER_LISTENER_VOLUME_CHANGED "volumeChanged"
#define GFMmProcPlayerListenerPlayerUpdate(handle, player, event, eventData) \
((GFMMPROC_PLAYER_LISTENER_TABLE*)handle)->MmProcPlayerListenerPlayerUpdate(handle, player, event, eventData)
//*****************************************************************************
// TimeBase
//*****************************************************************************
//
typedef struct _GFMMPROC_TIME_BASE_TABLE
{
NvU32 (*MmProcTimeBaseGetTime)(GFMMPROC_TIME_BASE handle);
} GFMMPROC_TIME_BASE_TABLE;
#define GFMmProcTimeBaseGetTime(handle) \
((GFMMPROC_TIME_BASE_TABLE*)handle)->MmProcTimeBaseGetTime(handle)
//*****************************************************************************
//*****************************************************************************
//
//
// GFMMPROC_BASIC_AUDIO_CONTROLS
//
//
//*****************************************************************************
//*****************************************************************************
#if defined GFMMPROC_BASIC_AUDIO_CONTROLS
typedef GFMMPROC_CONTROL GFMMPROC_CONTROL_MIDI;
typedef GFMMPROC_CONTROL GFMMPROC_CONTROL_PITCH;
typedef GFMMPROC_CONTROL GFMMPROC_CONTROL_RATE;
typedef GFMMPROC_CONTROL GFMMPROC_CONTROL_RECORD;
typedef GFMMPROC_CONTROL GFMMPROC_CONTROL_STOP_TIME;
typedef GFMMPROC_CONTROL GFMMPROC_CONTROL_TEMPO;
typedef GFMMPROC_CONTROL GFMMPROC_CONTROL_TONE;
typedef GFMMPROC_CONTROL GFMMPROC_CONTROL_VOLUME;
//*****************************************************************************
// MIDIControl
//*****************************************************************************
//
typedef struct _GFMMPROC_CONTROL_MIDI_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
NvS32* (*MmProcControlMidiGetBankList)(GFMMPROC_CONTROL_MIDI hande, NvS32 custom);
NvS8 (*MmProcControlMidiGetChannelVolume)(GFMMPROC_CONTROL_MIDI hande, NvU8 channel);
char* (*MmProcControlMidiGetKeyName)(GFMMPROC_CONTROL_MIDI hande, NvS32 bank, NvS32 program, NvS32 key);
NvS32* (*MmProcControlMidiGetProgram)(GFMMPROC_CONTROL_MIDI hande, NvU8 channel);
NvS32* (*MmProcControlMidiGetProgramList)(GFMMPROC_CONTROL_MIDI hande, NvS32 bank);
char* (*MmProcControlMidiGetProgramName)(GFMMPROC_CONTROL_MIDI hande, NvS32 bank, NvS32 program);
NvS32 (*MmProcControlMidiIsBankQuerySupported)(GFMMPROC_CONTROL_MIDI hande);
NvS32 (*MmProcControlMidiLongMidiEvent)(GFMMPROC_CONTROL_MIDI hande, NvS8* data, NvS32 offset, NvS32 length);
void (*MmProcControlMidiShortMidiEvent)(GFMMPROC_CONTROL_MIDI hande, NvS32 type, NvS32 data1, NvS32 data2);
} GFMMPROC_CONTROL_MIDI_TABLE;
#define GFMMPROC_CONTROL_MIDI_CONTROL_CHANGE 176
#define GFMMPROC_CONTROL_MIDI_NOTE_ON 144
#define GFMmProcControlMidiGetBankList(handle, custom) \
((GFMMPROC_CONTROL_MIDI_TABLE*)handle)->MmProcControlMidiGetBankList(handle, custom)
#define GFMmProcControlMidiGetChannelVolume(handle, channel) \
((GFMMPROC_CONTROL_MIDI_TABLE*)handle)->MmProcControlMidiGetChannelVolume(handle, channel)
#define GFMmProcControlMidiGetKeyName(handle, bank, program, key) \
((GFMMPROC_CONTROL_MIDI_TABLE*)handle)->MmProcControlMidiGetKeyName(handle, bank, program, key)
#define GFMmProcControlMidiGetProgram(handle, channel) \
((GFMMPROC_CONTROL_MIDI_TABLE*)handle)->MmProcControlMidiGetProgram(handle, channel)
#define GFMmProcControlMidiGetProgramList(handle, bank) \
((GFMMPROC_CONTROL_MIDI_TABLE*)handle)->MmProcControlMidiGetProgramList(handle, bank)
#define GFMmProcControlMidiGetProgramName(handle, bank, program) \
((GFMMPROC_CONTROL_MIDI_TABLE*)handle)->MmProcControlMidiGetProgramName(handle, bank, program)
#define GFMmProcControlMidiIsBankQuerySupported(handle) \
((GFMMPROC_CONTROL_MIDI_TABLE*)handle)->MmProcControlMidiIsBankQuerySupported(handle)
#define GFMmProcControlMidiLongMidiEvent(handle) \
((GFMMPROC_CONTROL_MIDI_TABLE*)handle)->MmProcControlMidiLongMidiEvent(handle, data, offset, length)
#define GFMmProcControlMidiShortMidiEvent(handle, type, data1, data2) \
((GFMMPROC_CONTROL_MIDI_TABLE*)handle)->(handle, type, data1, data2)
//*****************************************************************************
// PitchControl
//*****************************************************************************
//
typedef struct _GFMMPROC_CONTROL_PITCH_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
NvS32 (*MmProcControlPitchGetMaxPitch)(GFMMPROC_CONTROL_PITCH handle);
NvS32 (*MmProcControlPitchGetMinPitch)(GFMMPROC_CONTROL_PITCH handle);
NvS32 (*MmProcControlPitchGetPitch)(GFMMPROC_CONTROL_PITCH handle);
NvS32 (*MmProcControlPitchSetPitch)(GFMMPROC_CONTROL_PITCH handle, NvS32 millisemitones);
} GFMMPROC_CONTROL_PITCH_TABLE;
#define GFMmProcControlPitchGetMaxPitch(handle) \
((GFMMPROC_CONTROL_PITCH_TABLE*)handle)->MmProcControlPitchGetMaxPitch(handle)
#define GFMmProcControlPitchGetMinPitch(handle) \
((GFMMPROC_CONTROL_PITCH_TABLE*)handle)->MmProcControlPitchGetMinPitch(handle)
#define GFMmProcControlPitchGetPitch(handle) \
((GFMMPROC_CONTROL_PITCH_TABLE*)handle)->MmProcControlPitchGetPitch(handle)
#define GFMmProcControlPitchSetPitch(handle, millisemitones) \
((GFMMPROC_CONTROL_PITCH_TABLE*)handle)->MmProcControlPitchSetPitch(handle, millisemitones)
//*****************************************************************************
// RateControl
//*****************************************************************************
//
typedef struct _GFMMPROC_CONTROL_RATE_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
NvS32 (*MmProcControlRateGetMaxRate)(GFMMPROC_CONTROL_RATE handle);
NvS32 (*MmProcControlRateGetMinRate)(GFMMPROC_CONTROL_RATE handle);
NvS32 (*MmProcControlRateGetRate)(GFMMPROC_CONTROL_RATE handle);
NvS32 (*MmProcControlRateSetRate)(GFMMPROC_CONTROL_RATE handle, NvS32 millirate);
} GFMMPROC_CONTROL_RATE_TABLE;
#define GFMmProcControlRateGetMaxRate(handle) \
((GFMMPROC_CONTROL_RATE_TABLE*)handle)->MmProcControlRateGetMaxRate(handle)
#define GFMmProcControlRateGetMinRate(handle) \
((GFMMPROC_CONTROL_RATE_TABLE*)handle)->MmProcControlRateGetMinRate(handle)
#define GFMmProcControlRateGetRate(handle) \
((GFMMPROC_CONTROL_RATE_TABLE*)handle)->MmProcControlRateGetRate(handle)
#define GFMmProcControlRateSetRate(handle, millirate) \
((GFMMPROC_CONTROL_RATE_TABLE*)handle)->MmProcControlRateSetRate(handle, millirate)
//*****************************************************************************
// RecordControl
//*****************************************************************************
//
typedef struct _GFMMPROC_CONTROL_RECORD_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
void (*MmProcControlRecordCommit)(GFMMPROC_CONTROL_RECORD handle);
char* (*MmProcControlRecordGetContentType)(GFMMPROC_CONTROL_RECORD handle);
void (*MmProcControlRecordSetRecordLocation)(GFMMPROC_CONTROL_RECORD handle, char* locator);
void (*MmProcControlRecordSetRecordStream)(GFMMPROC_CONTROL_RECORD handle, GFMMPROC_STREAM stream, char* contentType);
NvS32 (*MmProcControlRecordSetRecordSizeLimit)(GFMMPROC_CONTROL_RECORD handle, NvS32 size);
void (*MmProcControlRecordStartRecord)(GFMMPROC_CONTROL_RECORD handle);
void (*MmProcControlRecordStopRecord)(GFMMPROC_CONTROL_RECORD handle);
void (*MmProcControlRecordReset)(GFMMPROC_CONTROL_RECORD handle);
} GFMMPROC_CONTROL_RECORD_TABLE;
#define GFMmProcControlRecordCommit(handle) \
((GFMMPROC_CONTROL_RECORD_TABLE*)handle)->MmProcControlRecordCommit(handle)
#define GFMmProcControlRecordGetContentType(handle) \
((GFMMPROC_CONTROL_RECORD_TABLE*)handle)->MmProcControlRecordGetContentType(handle)
#define GFMmProcControlRecordSetRecordLocation(handle, locator) \
((GFMMPROC_CONTROL_RECORD_TABLE*)handle)->MmProcControlRecordSetRecordLocation(handle, locator)
#define GFMmProcControlRecordSetRecordStream(handle, stream, contentType) \
((GFMMPROC_CONTROL_RECORD_TABLE*)handle)->MmProcControlRecordSetRecordStream(handle, stream, contentType)
#define GFMmProcControlRecordSetRecordSizeLimit(handle, size) \
((GFMMPROC_CONTROL_RECORD_TABLE*)handle)->MmProcControlRecordSetRecordSizeLimit(handle, size)
#define GFMmProcControlRecordStartRecord(handle) \
((GFMMPROC_CONTROL_RECORD_TABLE*)handle)->MmProcControlRecordStartRecord(handle)
#define GFMmProcControlRecordStopRecord(handle) \
((GFMMPROC_CONTROL_RECORD_TABLE*)handle)->MmProcControlRecordStopRecord(handle)
#define GFMmProcControlRecordReset(handle) \
((GFMMPROC_CONTROL_RECORD_TABLE*)handle)->MmProcControlRecordReset(handle)
//*****************************************************************************
// StopTimeControl
//*****************************************************************************
//
typedef struct _GFMMPROC_CONTROL_STOP_TIME_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
NvS64 (*MmProcControlStopTimeGetStopTime)(GFMMPROC_CONTROL_STOP_TIME handle);
void (*MmProcControlStopTimeSetStopTime)(GFMMPROC_CONTROL_STOP_TIME handle, NvS64 stopTime);
} GFMMPROC_CONTROL_STOP_TIME_TABLE;
#define GFMMPROC_CONTROL_STOP_TIME_RESET -1
#define GFMmProcControlStopTimeGetStopTime(handle) \
(GFMMPROC_CONTROL_STOP_TIME_TABLE*)handle)->MmProcControlStopTimeGetStopTime(handle)
#define GFMmProcControlStopTimeSetStopTime(handle, stopTime) \
((GFMMPROC_CONTROL_STOP_TIME_TABLE*)handle)->MmProcControlStopTimeSetStopTime(handle, stopTime)
//*****************************************************************************
// TempoControl
//*****************************************************************************
//
typedef struct _GFMMPROC_CONTROL_TEMPO_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
//
// Rate Methods
//
NvS32 (*MmProcControlRateGetMaxRate)(GFMMPROC_CONTROL_RATE handle);
NvS32 (*MmProcControlRateGetMinRate)(GFMMPROC_CONTROL_RATE handle);
NvS32 (*MmProcControlRateGetRate)(GFMMPROC_CONTROL_RATE handle);
NvS32 (*MmProcControlRateSetRate)(GFMMPROC_CONTROL_RATE handle, NvS32 millirate);
NvS32 (*MmProcControlTempoGetTempo)(GFMMPROC_CONTROL_TEMPO handle);
NvS32 (*MmProcControlTempoSetTempo)(GFMMPROC_CONTROL_TEMPO handle, NvS32 millitempo);
} GFMMPROC_CONTROL_TEMPO_TABLE;
#define GFMmProcControlTempoGetTempo(handle) \
((GFMMPROC_CONTROL_TEMPO_TABLE*)handle)->MmProcControlTempoGetTempo(handle)
#define GFMmProcControlTempoSetTempo(handle) \
((GFMMPROC_CONTROL_TEMPO_TABLE*)handle)->MmProcControlTempoSetTempo(handle, millitempo)
//*****************************************************************************
// ToneControl
//*****************************************************************************
//
typedef struct _GFMMPROC_CONTROL_TONE_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
void (*MmProcControlToneSetSequence)(GFMMPROC_CONTROL_TONE handle, NvS8* sequence);
} GFMMPROC_CONTROL_TONE_TABLE;
#define GFMMPROC_CONTROL_TONE_VERSION -2
#define GFMMPROC_CONTROL_TONE_TEMPO -3
#define GFMMPROC_CONTROL_TONE_RESOLUTION -4
#define GFMMPROC_CONTROL_TONE_BLOCK_START -5
#define GFMMPROC_CONTROL_TONE_BLOCK_END -6
#define GFMMPROC_CONTROL_TONE_PLAY_BLOCK -7
#define GFMMPROC_CONTROL_TONE_SET_VOLUME -8
#define GFMMPROC_CONTROL_TONE_REPEAT -9
#define GFMMPROC_CONTROL_TONE_C4 60
#define GFMMPROC_CONTROL_TONE_SILENCE -1
#define GFMmProcControlToneSetSequence(handle, sequence) \
((GFMMPROC_CONTROL_TONE_TABLE*)handle)->MmProcControlToneSetSequence(handle, sequence)
//*****************************************************************************
// VolumeControl
//*****************************************************************************
//
typedef struct _GFMMPROC_CONTROL_VOLUME_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
NvS32 (*MmProcControlVolumeGetLevel)(GFMMPROC_CONTROL_VOLUME handle);
NvS32 (*MmProcControlVolumeIsMuted)(GFMMPROC_CONTROL_VOLUME handle);
NvS32 (*MmProcControlVolumeSetLevel)(GFMMPROC_CONTROL_VOLUME handle, NvS32 level);
void (*MmProcControlVolumeSetMute)(GFMMPROC_CONTROL_VOLUME handle, NvS32 mute);
} GFMMPROC_CONTROL_VOLUME_TABLE;
#define GFMmProcControlVolumeGetLevel(handle) \
((GFMMPROC_CONTROL_VOLUME_TABLE*)handle)->MmProcControlVolumeGetLevel(handle)
#define GFMmProcControlVolumeIsMuted(handle) \
((GFMMPROC_CONTROL_VOLUME_TABLE*)handle)->MmProcControlVolumeIsMuted(handle)
#define GFMmProcControlVolumeSetLevel(handle, level) \
((GFMMPROC_CONTROL_VOLUME_TABLE*)handle)->MmProcControlVolumeSetLevel(handle, level)
#define GFMmProcControlVolumeSetMute(handle, mute) \
((GFMMPROC_CONTROL_VOLUME_TABLE*)handle)->MmProcControlVolumeSetMute(handle, mute)
#endif // GFMMPROC_BASIC_AUDIO_CONTROLS
#endif // GFMMPROC_BASIC_AUDIO
//*****************************************************************************
//*****************************************************************************
//
//
// GFMMPROC_ADVANCED
//
//
//*****************************************************************************
//*****************************************************************************
#if defined GFMMPROC_ADVANCED
typedef GF_HANDLE GFMMPROC_MODULE;
typedef GFMMPROC_MODULE GFMMPROC_EFFECT_MODULE;
typedef GFMMPROC_MANAGER GFMMPROC_GLOBAL_MANAGER;
typedef GFMMPROC_CONTROLLABLE GFMMPROC_MEDIA_PROCESSOR;
typedef GF_HANDLE GFMMPROC_MEDIA_PROCESSOR_LISTENER;
typedef GFMMPROC_CONTROLLABLE GFMMPROC_SPECTATOR;
typedef GFMMPROC_MODULE GFMMPROC_SOUND_SOURCE_3D;
//*****************************************************************************
// Module
//*****************************************************************************
//
typedef struct _GFMMPROC_MODULE_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
//
// Controllable Methods
//
GFMMPROC_CONTROL (*MmProcControllableGetControl)(GFMMPROC_CONTROLLABLE handle, char* controlType);
GFMMPROC_CONTROL* (*MmProcControllableGetControls)(GFMMPROC_CONTROLLABLE handle);
void (*MmProcModuleAddMIDIChannel)(GFMMPROC_MODULE handle, GFMMPROC_PLAYER player, NvS32 channel);
void (*MmProcModuleAddPlayer)(GFMMPROC_MODULE handle, GFMMPROC_PLAYER player);
void (*MmProcModuleRemoveMIDIChannel)(GFMMPROC_MODULE handle, GFMMPROC_PLAYER player, NvS32 channel);
void (*MmProcModuleRemovePlayer)(GFMMPROC_MODULE handle, GFMMPROC_PLAYER player);
} GFMMPROC_MODULE_TABLE;
#define GFMmProcModuleAddMIDIChannel(handle, player, channel) \
((GFMMPROC_MODULE_TABLE*)handle)->MmProcModuleAddMIDIChannel(handle, player, channel)
#define GFMmProcModuleAddPlayer(handle, player) \
((GFMMPROC_MODULE_TABLE*)handle)->MmProcModuleAddPlayer(handle, player)
#define GFMmProcModuleGetControl(handle, controlType) \
((GFMMPROC_MODULE_TABLE*)handle)->MmProcModuleGetControl(handle, controlType)
#define GFMmProcModuleGetControls(handle) \
((GFMMPROC_MODULE_TABLE*)handle)->MmProcModuleGetControls(handle)
#define GFMmProcModuleRemoveMIDIChannel(handle, player, channel) \
((GFMMPROC_MODULE_TABLE*)handle)->MmProcModuleRemoveMIDIChannel(handle, player, channel)
#define GFMmProcModuleRemovePlayer(handle, player) \
((GFMMPROC_MODULE_TABLE*)handle)->MmProcModuleRemovePlayer(handle, player)
//*****************************************************************************
// EffectModule
//*****************************************************************************
//
typedef GFMMPROC_MODULE_TABLE GFMMPROC_EFFECT_MODULE_TABLE;
//*****************************************************************************
// GlobalManager
//*****************************************************************************
//
typedef struct _GFMMPROC_GLOBAL_MANAGER_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
//
// Manager Methods
//
GFMMPROC_PLAYER (*MmProcManagerCreatePlayer)(GFMMPROC_MANAGER handle, char* locator);
// GFMMPROC_PLAYER (*MmProcManagerCreatePlayerForDataSource)(GFMMPROC_MANAGER handle, DataSource source);
GFMMPROC_PLAYER (*MmProcManagerCreatePlayerForStream)(GFMMPROC_MANAGER handle, GFMMPROC_STREAM stream, char* type);
char* (*MmProcManagerGetSupportedContentTypes)(GFMMPROC_MANAGER handle, char* protocol);
char* (*MmProcManagerGetSupportedProtocols)(GFMMPROC_MANAGER handle, char* contentType);
GFMMPROC_TIME_BASE (*MmProcManagerGetSystemTimeBase)(GFMMPROC_MANAGER handle);
void (*MmProcManagerPlayTone)(GFMMPROC_MANAGER handle, NvU32 note, NvU32 duration, NvU32 volume);
void (*MmProcManagerProcess)(GFMMPROC_MANAGER handle);
GFMMPROC_CODEC_TYPE (*MmProcManagerGetCodecType)(GFMMPROC_MANAGER handle);
void (*MmProcManagerCodecWrite)(GFMMPROC_MANAGER handle, NvU32 offset, NvU32 value);
NvU32 (*MmProcManagerCodecRead)(GFMMPROC_MANAGER handle, NvU32 offset);
GFMMPROC_EFFECT_MODULE (*MmProcGlobalManagerCreateEffectModule)(GFMMPROC_GLOBAL_MANAGER handle);
GFMMPROC_MEDIA_PROCESSOR (*MmProcGlobalManagerCreateMediaProcessor)(GFMMPROC_GLOBAL_MANAGER handle);
GFMMPROC_SOUND_SOURCE_3D (*MmProcGlobalManagerCreateSoundSource3D)(GFMMPROC_GLOBAL_MANAGER handle);
GFMMPROC_CONTROL (*MmProcGlobalManagerGetControl)(GFMMPROC_GLOBAL_MANAGER handle, char* controlType);
GFMMPROC_CONTROL* (*MmProcGlobalManagerGetControls)(GFMMPROC_GLOBAL_MANAGER handle);
GFMMPROC_SPECTATOR (*MmProcGlobalManagerGetSpectator)(GFMMPROC_GLOBAL_MANAGER handle);
char* (*MmProcGlobalManagerGetSupportedMediaProcessorInputTypes)(GFMMPROC_GLOBAL_MANAGER handle);
NvS32 (*MmProcGlobalManagerGetUnitsPerMeter)(GFMMPROC_GLOBAL_MANAGER handle);
void (*MmProcGlobalManagerSetUnitsPerMeter)(GFMMPROC_GLOBAL_MANAGER handle, NvS32 newScalingFactor);
} GFMMPROC_GLOBAL_MANAGER_TABLE;
#define GFMmProcGlobalManagerCreateEffectModule(handle) \
((GFMMPROC_GLOBAL_MANAGER_TABLE*)handle)->MmProcGlobalManagerCreateEffectModule(handle)
#define GFMmProcGlobalManagerCreateMediaProcessor(handle) \
((GFMMPROC_GLOBAL_MANAGER_TABLE*)handle)->MmProcGlobalManagerCreateMediaProcessor(handle)
#define GFMmProcGlobalManagerCreateSoundSource3D(handle) \
((GFMMPROC_GLOBAL_MANAGER_TABLE*)handle)->MmProcGlobalManagerCreateSoundSource3D(handle)
#define GFMmProcGlobalManagerGetControl(handle, controlType) \
((GFMMPROC_GLOBAL_MANAGER_TABLE*)handle)->MmProcGlobalManagerGetControl(handle, controlType)
#define GFMmProcGlobalManagerGetControls(handle) \
((GFMMPROC_GLOBAL_MANAGER_TABLE*)handle)->MmProcGlobalManagerGetControls(handle)
#define GFMmProcGlobalManagerGetSpectator(handle) \
((GFMMPROC_GLOBAL_MANAGER_TABLE*)handle)->MmProcGlobalManagerGetSpectator(handle)
#define GFMmProcGlobalManagerGetSupportedMediaProcessorInputTypes(handle) \
((GFMMPROC_GLOBAL_MANAGER_TABLE*)handle)->MmProcGlobalManagerGetSupportedMediaProcessorInputTypes(handle)
#define GFMmProcGlobalManagerGetUnitsPerMeter(handle) \
((GFMMPROC_GLOBAL_MANAGER_TABLE*)handle)->MmProcGlobalManagerGetUnitsPerMeter(handle)
#define GFMmProcGlobalManagerSetUnitsPerMeter(handle, newScalingFactor) \
((GFMMPROC_GLOBAL_MANAGER_TABLE*)handle)->MmProcGlobalManagerSetUnitsPerMeter(handle, newScalingFactor)
//*****************************************************************************
// MediaProcessor
//*****************************************************************************
//
typedef struct _GFMMPROC_MEDIA_PROCESSOR_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
//
// Controllable Methods
//
GFMMPROC_CONTROL (*MmProcControllableGetControl)(GFMMPROC_CONTROLLABLE handle, char* controlType);
GFMMPROC_CONTROL* (*MmProcControllableGetControls)(GFMMPROC_CONTROLLABLE handle);
void (*MmProcMediaProcessorAbort)(GFMMPROC_MEDIA_PROCESSOR handle);
void (*MmProcMediaProcessorAddMediaProcessorListener)(GFMMPROC_MEDIA_PROCESSOR handle,
GFMMPROC_MEDIA_PROCESSOR_LISTENER mediaProcessorListener);
void (*MmProcMediaProcessorComplete)(GFMMPROC_MEDIA_PROCESSOR handle);
NvS32 (*MmProcMediaProcessorGetProgress)(GFMMPROC_MEDIA_PROCESSOR handle);
void (*MmProcMediaProcessorRemoveMediaProcessorListener)(GFMMPROC_MEDIA_PROCESSOR handle,
GFMMPROC_MEDIA_PROCESSOR_LISTENER mediaProcessorListener);
void (*MmProcMediaProcessorStart)(GFMMPROC_MEDIA_PROCESSOR handle);
void (*MmProcMediaProcessorStop)(GFMMPROC_MEDIA_PROCESSOR handle);
GFMMPROC_PLAYER (*MmProcMediaProcessorSetInput)(GFMMPROC_MEDIA_PROCESSOR handle, GFMMPROC_STREAM input, char* contentType, NvS32 length);
GFMMPROC_PLAYER (*MmProcMediaProcessorSetOutput)(GFMMPROC_MEDIA_PROCESSOR handle, GFMMPROC_STREAM output, char* contentType);
} GFMMPROC_MEDIA_PROCESSOR_TABLE;
#define GFMMPROC_MEDIA_PROCESSOR_UNKNOWN -1
#define GFMmProcMediaProcessorAbort(handle) \
((GFMMPROC_MEDIA_PROCESSOR_TABLE*)handle)->MmProcMediaProcessorAbort(handle)
#define GFMmProcMediaProcessorAddMediaProcessorListener(handle, mediaProcessorListener) \
((GFMMPROC_MEDIA_PROCESSOR_TABLE*)handle)->MmProcMediaProcessorAddMediaProcessorListener(handle, mediaProcessorListener)
#define GFMmProcMediaProcessorComplete(handle) \
((GFMMPROC_MEDIA_PROCESSOR_TABLE*)handle)->MmProcMediaProcessorComplete(handle)
#define GFMmProcMediaProcessorGetProgress(handle) \
((GFMMPROC_MEDIA_PROCESSOR_TABLE*)handle)->MmProcMediaProcessorGetProgress(handle)
#define GFMmProcMediaProcessorRemoveMediaProcessorListener(handle, mediaProcessorListener) \
((GFMMPROC_MEDIA_PROCESSOR_TABLE*)handle)->MmProcMediaProcessorRemoveMediaProcessorListener(handle, mediaProcessorListener)
#define GFMmProcMediaProcessorStart(handle) \
((GFMMPROC_MEDIA_PROCESSOR_TABLE*)handle)->MmProcMediaProcessorStart(handle)
#define GFMmProcMediaProcessorStop(handle) \
((GFMMPROC_MEDIA_PROCESSOR_TABLE*)handle)->MmProcMediaProcessorStop(handle)
#define GFMmProcMediaProcessorSetInput(handle, input, contentType, length) \
((GFMMPROC_MEDIA_PROCESSOR_TABLE*)handle)->MmProcMediaProcessorSetInput(handle, input, contentType, length)
#define GFMmProcMediaProcessorSetOutput(handle, output, contentType) \
((GFMMPROC_MEDIA_PROCESSOR_TABLE*)handle)->MmProcMediaProcessorSetOutput(handle, output, contentType)
//*****************************************************************************
// MediaProcessorListener
//*****************************************************************************
//
typedef struct _GFMMPROC_MEDIA_PROCESSOR_LISTENER_TABLE
{
void (*MmProcMediaProcessorListenerMediaProcessorUpdate)(GFMMPROC_MEDIA_PROCESSOR_LISTENER handle,
GFMMPROC_MEDIA_PROCESSOR processor, char* event,
void* eventData);
} GFMMPROC_MEDIA_PROCESSOR_LISTENER_TABLE;
#define GFMMPROC_MEDIA_PROCESSOR_LISTENER_PROCESSING_COMPLETED "processingCompleted"
#define GFMMPROC_MEDIA_PROCESSOR_LISTENER_PROCESSING_ERROR "processingError"
#define GFMmProcMediaProcessorListenerMediaProcessorUpdate(handle, processor, event, eventData) \
((GFMMPROC_MEDIA_PROCESSOR_LISTENER_TABLE*)handle)->MmProcMediaProcessorListenerMediaProcessorUpdate(handle, processor, event, eventData)
//*****************************************************************************
// Spectator
//*****************************************************************************
//
typedef GFMMPROC_CONTROLLABLE_TABLE GFMMPROC_SPECTATOR_TABLE;
//*****************************************************************************
// SoundSource3D
//*****************************************************************************
//
typedef GFMMPROC_MODULE_TABLE GFMMPROC_SOUND_SOURCE_3D_TABLE;
//*****************************************************************************
//*****************************************************************************
//
//
// GFMMPROC_ADVANCED_3D_AUDIO_CONTROLS
//
//
//*****************************************************************************
//*****************************************************************************
#if defined GFMMPROC_ADVANCED_3D_AUDIO_CONTROLS
typedef GFMMPROC_CONTROL GFMMPROC_CONTROL_COMMIT;
typedef GFMMPROC_CONTROL GFMMPROC_CONTROL_ORIENTATION;
typedef GFMMPROC_CONTROL_ORIENTATION GFMMPROC_CONTROL_DIRECTIVITY;
typedef GFMMPROC_CONTROL GFMMPROC_CONTROL_DISTANCE_ATTENUATION;
typedef GFMMPROC_CONTROL GFMMPROC_CONTROL_DOPPLER;
typedef GFMMPROC_CONTROL GFMMPROC_CONTROL_LOCATION;
typedef GFMMPROC_CONTROL_ORIENTATION GFMMPROC_CONTROL_MACROSCOPIC;
typedef GFMMPROC_CONTROL GFMMPROC_CONTROL_OBSTRUCTION;
#include "GFAudio.h"
//*****************************************************************************
// CommitControl
//*****************************************************************************
typedef struct _GFMMPROC_CONTROL_COMMIT_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
void (*MmProcControlCommitCommit)(GFMMPROC_CONTROL_COMMIT handle);
NvS32 (*MmProcControlCommitIsDeferred)(GFMMPROC_CONTROL_COMMIT handle);
void (*MmProcControlCommitSetDeferred)(GFMMPROC_CONTROL_COMMIT handle, NvS32 deferred);
} GFMMPROC_CONTROL_COMMIT_TABLE;
#define GFMmProcControlCommitCommit(handle) \
((GFMMPROC_CONTROL_COMMIT_TABLE*)handle)->MmProcControlCommitCommit(handle)
#define GFMmProcControlCommitIsDeferred(handle) \
((GFMMPROC_CONTROL_COMMIT_TABLE*)handle)->MmProcControlCommitIsDeferred(handle)
#define GFMmProcControlCommitSetDeferred(handle, deferred) \
((GFMMPROC_CONTROL_COMMIT_TABLE*)handle)->MmProcControlCommitSetDeferred(handle, deferred)
//*****************************************************************************
// OrientationControl
//*****************************************************************************
typedef struct _GFMMPROC_CONTROL_ORIENTATION_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
void (*MmProcControlOrientationGetOrientation)(GFMMPROC_CONTROL_ORIENTATION handle,
NvVectorS32* frontVector, NvVectorS32* aboveVector);
void (*MmProcControlOrientationSetOrientation)(GFMMPROC_CONTROL_ORIENTATION handle,
NvVectorS32 frontVector, NvVectorS32 aboveVector);
} GFMMPROC_CONTROL_ORIENTATION_TABLE;
#define GFMmProcControlOrientationGetOrientation(handle, frontVector, aboveVector) \
((GFMMPROC_CONTROL_ORIENTATION_TABLE*)handle)->MmProcControlOrientationGetOrientation(handle, frontVector, aboveVector)
#define GFMmProcControlOrientationSetOrientation(handle, frontVector, aboveVector) \
((GFMMPROC_CONTROL_ORIENTATION_TABLE*)handle)->MmProcControlOrientationSetOrientation(handle, frontVector, aboveVector)
//*****************************************************************************
// DirectivityControl
//*****************************************************************************
//
typedef struct _GFMMPROC_CONTROL_DIRECTIVITY_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
//
// Orientation Methods
//
void (*MmProcControlOrientationGetOrientation)(GFMMPROC_CONTROL_ORIENTATION handle,
NvVectorS32* frontVector, NvVectorS32* aboveVector);
void (*MmProcControlOrientationSetOrientation)(GFMMPROC_CONTROL_ORIENTATION handle,
NvVectorS32 frontVector, NvVectorS32 aboveVector);
void (*MmProcControlDirectivityGetParameters)(GFMMPROC_CONTROL_DIRECTIVITY handle, NvVectorS32* vector);
void (*MmProcControlDirectivitySetParameters)(GFMMPROC_CONTROL_DIRECTIVITY handle,
NvS32 minAngle, NvS32 maxAngle, NvS32 rearLevel);
} GFMMPROC_CONTROL_DIRECTIVITY_TABLE;
#define GFMmProcControlDirectivityGetParameters(handle, vector) \
((GFMMPROC_CONTROL_DIRECTIVITY_TABLE*)handle)->MmProcControlDirectivityGetParameters(handle, vector)
#define GFMmProcControlDirectivitySetParameters(handle, minAngle, maxAngle, rearLevel) \
((GFMMPROC_CONTROL_DIRECTIVITY_TABLE*)handle)->MmProcControlDirectivitySetParameters(handle, minAngle, maxAngle, rearLevel)
//*****************************************************************************
// DistanceAttenuationControl
//*****************************************************************************
//
typedef struct _GFMMPROC_CONTROL_DISTANCE_ATTENUATION_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
NvS32 (*MmProcControlDistanceAttenuationGetMaxDistance)(GFMMPROC_CONTROL_DISTANCE_ATTENUATION handle);
NvS32 (*MmProcControlDistanceAttenuationGetMinDistance)(GFMMPROC_CONTROL_DISTANCE_ATTENUATION handle);
NvS32 (*MmProcControlDistanceAttenuationGetMuteAfterMax)(GFMMPROC_CONTROL_DISTANCE_ATTENUATION handle);
NvS32 (*MmProcControlDistanceAttenuationGetRolloffFactor)(GFMMPROC_CONTROL_DISTANCE_ATTENUATION handle);
void (*MmProcControlDistanceAttenuationSetParameters)(GFMMPROC_CONTROL_DISTANCE_ATTENUATION handle,
NvS32 minDistance, NvS32 maxDistance,
NvS32 muteAfterMax, NvS32 rolloffFactor);
} GFMMPROC_CONTROL_DISTANCE_ATTENUATION_TABLE;
#define GFMmProcControlDistanceAttenuationGetMaxDistance(handle) \
((GFMMPROC_CONTROL_DISTANCE_ATTENUATION_TABLE*)handle)->MmProcControlDistanceAttenuationGetMaxDistance(handle)
#define GFMmProcControlDistanceAttenuationGetMinDistance(handle) \
((GFMMPROC_CONTROL_DISTANCE_ATTENUATION_TABLE*)handle)->MmProcControlDistanceAttenuationGetMinDistance(handle)
#define GFMmProcControlDistanceAttenuationGetMuteAfterMax(handle) \
((GFMMPROC_CONTROL_DISTANCE_ATTENUATION_TABLE*)handle)->MmProcControlDistanceAttenuationGetMuteAfterMax(handle)
#define GFMmProcControlDistanceAttenuationGetRolloffFactor(handle) \
((GFMMPROC_CONTROL_DISTANCE_ATTENUATION_TABLE*)handle)->MmProcControlDistanceAttenuationGetRolloffFactor(handle)
#define GFMmProcControlDistanceAttenuationSetParameters(handle, minDistance, maxDistance, muteAfterMax, rolloffFactor) \
((GFMMPROC_CONTROL_DISTANCE_ATTENUATION_TABLE*)handle)->MmProcControlDistanceAttenuationSetParameters(handle, minDistance, maxDistance, muteAfterMax, rolloffFactor)
//*****************************************************************************
// DopplerControl
//*****************************************************************************
//
typedef struct _GFMMPROC_CONTROL_DOPPLER_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
void (*MmProcControlDopplerGetVelocityCartesian)(GFMMPROC_CONTROL_DOPPLER handle, NvVectorS32* vector);
NvS32 (*MmProcControlDopplerIsEnabled)(GFMMPROC_CONTROL_DOPPLER handle);
void (*MmProcControlDopplerSetEnabled)(GFMMPROC_CONTROL_DOPPLER handle, NvS32 dopplerEnabled);
void (*MmProcControlDopplerSetVelocityCartesian)(GFMMPROC_CONTROL_DOPPLER handle, NvVectorS32 vector);
void (*MmProcControlDopplerSetVelocitySpherical)(GFMMPROC_CONTROL_DOPPLER handle,
NvS32 azimuth, NvS32 elevation, NvS32 radius);
} GFMMPROC_CONTROL_DOPPLER_TABLE;
#define GFMmProcControlDopplerGetVelocityCartesian(handle, vector) \
((GFMMPROC_CONTROL_DOPPLER_TABLE*)handle)->MmProcControlDopplerGetVelocityCartesian(handle, vector)
#define GFMmProcControlDopplerIsEnabled(handle) \
((GFMMPROC_CONTROL_DOPPLER_TABLE*)handle)->MmProcControlDopplerIsEnabled(handle)
#define GFMmProcControlDopplerSetEnabled(handle, dopplerEnabled) \
((GFMMPROC_CONTROL_DOPPLER_TABLE*)handle)->MmProcControlDopplerSetEnabled(handle, dopplerEnabled)
#define GFMmProcControlDopplerSetVelocityCartesian(handle, vector) \
((GFMMPROC_CONTROL_DOPPLER_TABLE*)handle)->MmProcControlDopplerSetVelocityCartesian(handle, vector)
#define GFMmProcControlDopplerSetVelocitySpherical(handle, azimuth, elevation, radius) \
((GFMMPROC_CONTROL_DOPPLER_TABLE*)handle)->MmProcControlDopplerSetVelocitySpherical(handle, azimuth, elevation, radius)
//*****************************************************************************
// LocationControl
//*****************************************************************************
//
typedef struct _GFMMPROC_CONTROL_LOCATION_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
void (*MmProcControlLocationGetCartesian)(GFMMPROC_CONTROL_LOCATION handle, NvVectorS32* vector);
void (*MmProcControlLocationSetCartesian)(GFMMPROC_CONTROL_LOCATION handle, NvVectorS32 vector);
void (*MmProcControlLocationSetSpherical)(GFMMPROC_CONTROL_LOCATION handle, NvS32 azimuth, NvS32 elevation, NvS32 radius);
void (*MmProcControlLocationSetCoefficients)(GFMMPROC_CONTROL_LOCATION handle,GFMMPROC_SOUND_SOURCE_3D SS3D,GFMMPROC_SPECTATOR spec, NvS32 CurrVec[],NvS32 TargVec[]);
void (*MmProcControlLocationGetCoefficients)(GFMMPROC_CONTROL_LOCATION handle, void* Coeff);
} GFMMPROC_CONTROL_LOCATION_TABLE;
#define GFMmProcControlLocationGetCartesian(handle, vector) \
((GFMMPROC_CONTROL_LOCATION_TABLE*)handle)->MmProcControlLocationGetCartesian(handle, vector)
#define GFMmProcControlLocationSetCartesian(handle, vector) \
((GFMMPROC_CONTROL_LOCATION_TABLE*)handle)->MmProcControlLocationSetCartesian(handle, vector)
#define GFMmProcControlLocationSetSpherical(handle, azimuth, elevation, radius) \
((GFMMPROC_CONTROL_LOCATION_TABLE*)handle)->MmProcControlLocationSetSpherical(handle, azimuth, elevation, radius)
#define GFMmProcControlLocationSetCoefficients(handle, SS3D,spec, CurrVec,TargVec) \
((GFMMPROC_CONTROL_LOCATION_TABLE*)handle)->MmProcControlLocationSetCoefficients(handle, SS3D,spec, CurrVec,TargVec)
#define GFMmProcControlLocationGetCoefficients(handle,pCoeff)\
((GFMMPROC_CONTROL_LOCATION_TABLE*)handle)->MmProcControlLocationGetCoefficients(handle,pCoeff)
//*****************************************************************************
// MacroscopicControl
//*****************************************************************************
//
typedef struct _GFMMPROC_CONTROL_MACROSCOPIC_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
//
// Orientation Methods
//
void (*MmProcControlOrientationGetOrientation)(GFMMPROC_CONTROL_ORIENTATION handle,
NvVectorS32* frontVector, NvVectorS32* aboveVector);
void (*MmProcControlOrientationSetOrientation)(GFMMPROC_CONTROL_ORIENTATION handle,
NvVectorS32 frontVector, NvVectorS32 aboveVector);
void (*MmProcControlMacroscopicGetSize)(GFMMPROC_CONTROL_MACROSCOPIC handle, NvVectorS32* vector);
void (*MmProcControlMacroscopicSetSize)(GFMMPROC_CONTROL_MACROSCOPIC handle, NvVectorS32 vector);
} GFMMPROC_CONTROL_MACROSCOPIC_TABLE;
#define GFMmProcControlMacroscopicGetSize(handle, vector) \
((GFMMPROC_CONTROL_MACROSCOPIC_TABLE*)handle)->MmProcControlMacroscopicGetSize(handle, vector)
#define GFMmProcControlMacroscopicSetSize(handle, vector) \
((GFMMPROC_CONTROL_MACROSCOPIC_TABLE*)handle)->MmProcControlMacroscopicSetSize(handle, vector)
//*****************************************************************************
// ObstructionControl
//*****************************************************************************
//
typedef struct _GFMMPROC_CONTROL_OBSTRUCTION_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
NvS32 (*MmProcControlObstructionGetHFLevel)(GFMMPROC_CONTROL_OBSTRUCTION handle);
NvS32 (*MmProcControlObstructionGetLevel)(GFMMPROC_CONTROL_OBSTRUCTION handle);
void (*MmProcControlObstructionSetHFLevel)(GFMMPROC_CONTROL_OBSTRUCTION handle, NvS32 HFLevel);
void (*MmProcControlObstructionSetLevel)(GFMMPROC_CONTROL_OBSTRUCTION handle, NvS32 level);
} GFMMPROC_CONTROL_OBSTRUCTION_TABLE;
#define GFMmProcControlObstructionGetHFLevel(handle) \
((GFMMPROC_CONTROL_OBSTRUCTION_TABLE*)handle)->MmProcControlObstructionGetHFLevel(handle)
#define GFMmProcControlObstructionGetLevel(handle) \
((GFMMPROC_CONTROL_OBSTRUCTION_TABLE*)handle)->MmProcControlObstructionGetLevel(handle)
#define GFMmProcControlObstructionSetHFLevel(handle, HFLevel) \
((GFMMPROC_CONTROL_OBSTRUCTION_TABLE*)handle)->MmProcControlObstructionSetHFLevel(handle, HFLevel)
#define GFMmProcControlObstructionSetLevel(handle, level) \
((GFMMPROC_CONTROL_OBSTRUCTION_TABLE*)handle)->MmProcControlObstructionSetLevel(handle, level)
#endif // GFMMPROC_ADVANCED_3D_AUDIO_CONTROLS
//*****************************************************************************
//*****************************************************************************
//
//
// GFMMPROC_ADVANCED_CONTROLS
//
//
//*****************************************************************************
//*****************************************************************************
#if defined GFMMPROC_ADVANCED_CONTROLS
typedef GFMMPROC_CONTROL GFMMPROC_CONTROL_AUDIO_FORMAT;
typedef GFMMPROC_CONTROL GFMMPROC_CONTROL_EFFECT;
typedef GFMMPROC_CONTROL GFMMPROC_CONTROL_EFFECT_ORDER;
typedef GFMMPROC_CONTROL GFMMPROC_CONTROL_FORMAT;
typedef GFMMPROC_CONTROL GFMMPROC_CONTROL_MIDI_CHANNEL;
typedef GFMMPROC_CONTROL GFMMPROC_CONTROL_PAN;
typedef GFMMPROC_CONTROL GFMMPROC_CONTROL_PRIORITY;
//*****************************************************************************
// FormatControl
//*****************************************************************************
//
typedef struct _GFMMPROC_CONTROL_FORMAT_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
NvS32 (*MmProcControlFormatGetEstimatedBitRate)(GFMMPROC_CONTROL_FORMAT handle);
char* (*MmProcControlFormatGetFormat)(GFMMPROC_CONTROL_FORMAT handle);
NvS32 (*MmProcControlFormatGetIntParameterValue)(GFMMPROC_CONTROL_FORMAT handle, char* parameter);
NvS32 (*MmProcControlFormatGetMetadataOverride)(GFMMPROC_CONTROL_FORMAT handle);
NvS32 (*MmProcControlFormatGetMetadataSupportMode)(GFMMPROC_CONTROL_FORMAT handle);
char* (*MmProcControlFormatGetStrParameterValue)(GFMMPROC_CONTROL_FORMAT handle, char* parameter);
char* (*MmProcControlFormatGetSupportedFormats)(GFMMPROC_CONTROL_FORMAT handle);
NvS32* (*MmProcControlFormatGetSupportedIntParameterRange)(GFMMPROC_CONTROL_FORMAT handle, char* parameter);
char* (*MmProcControlFormatGetSupportedIntParameters)(GFMMPROC_CONTROL_FORMAT handle);
char* (*MmProcControlFormatGetSupportedMetadataKeys)(GFMMPROC_CONTROL_FORMAT handle);
char* (*MmProcControlFormatGetSupportedStrParameters)(GFMMPROC_CONTROL_FORMAT handle);
char* (*MmProcControlFormatGetSupportedStrParameterValues)(GFMMPROC_CONTROL_FORMAT handle, char* parameter);
void (*MmProcControlFormatSetFormat)(GFMMPROC_CONTROL_FORMAT handle, char* format);
void (*MmProcControlFormatSetMetadata)(GFMMPROC_CONTROL_FORMAT handle, char* key, char* value);
void (*MmProcControlFormatSetMetadataOverride)(GFMMPROC_CONTROL_FORMAT handle, NvS32 override);
void (*MmProcControlFormatSetParameterStr)(GFMMPROC_CONTROL_FORMAT handle, char* parameter, char* value);
NvS32 (*MmProcControlFormatSetParameterInt)(GFMMPROC_CONTROL_FORMAT handle, char* parameter, NvS32 value);
} GFMMPROC_CONTROL_FORMAT_TABLE;
#define GFMMPROC_CONTROL_FORMAT_METADATA_NOT_SUPPORTED 0
#define GFMMPROC_CONTROL_FORMAT_METADATA_SUPPORTED_FIXED_KEYS 1
#define GFMMPROC_CONTROL_FORMAT_METADATA_SUPPORTED_FREE_KEYS 2
#define GFMMPROC_CONTROL_FORMAT_PARAM_BITRATE "bitrate"
#define GFMMPROC_CONTROL_FORMAT_PARAM_BITRATE_TYPE "bitrate type"
#define GFMMPROC_CONTROL_FORMAT_PARAM_BITS_PER_SAMPLE "bits per sample"
#define GFMMPROC_CONTROL_FORMAT_PARAM_CHANNELS "channels"
#define GFMMPROC_CONTROL_FORMAT_PARAM_FRAMERATE "frame rate"
#define GFMMPROC_CONTROL_FORMAT_PARAM_QUALITY "quality"
#define GFMMPROC_CONTROL_FORMAT_PARAM_SAMPLERATE "sample rate"
#define GFMMPROC_CONTROL_FORMAT_PARAM_TRACK "track"
#define GFMMPROC_CONTROL_FORMAT_PARAM_TRACKS_AVAILABLE "tracks available"
#define GFMMPROC_CONTROL_FORMAT_PARAM_VERSION_TYPE "version type"
#define GFMMPROC_CONTROL_FORMAT_TRACK_ALL -1
#define GFMMPROC_CONTROL_FORMAT_TRACK_DEFAULT 0
#define GFMMPROC_CONTROL_FORMAT_TRACK_ONE 1
#define GFMmProcControlFormatGetEstimatedBitRate(handle) \
((GFMMPROC_CONTROL_FORMAT_TABLE*)handle)->MmProcControlFormatGetEstimatedBitRate(handle)
#define GFMmProcControlFormatGetFormat(handle) \
((GFMMPROC_CONTROL_FORMAT_TABLE*)handle)->MmProcControlFormatGetFormat(handle)
#define GFMmProcControlFormatGetIntParameterValue(handle, parameter) \
((GFMMPROC_CONTROL_FORMAT_TABLE*)handle)->MmProcControlFormatGetIntParameterValue(handle, parameter)
#define GFMmProcControlFormatGetMetadataOverride(handle) \
((GFMMPROC_CONTROL_FORMAT_TABLE*)handle)->MmProcControlFormatGetMetadataOverride(handle)
#define GFMmProcControlFormatGetMetadataSupportMode(handle) \
((GFMMPROC_CONTROL_FORMAT_TABLE*)handle)->MmProcControlFormatGetMetadataSupportMode(handle)
#define GFMmProcControlFormatGetStrParameterValue(handle, parameter) \
((GFMMPROC_CONTROL_FORMAT_TABLE*)handle)->MmProcControlFormatGetStrParameterValue(handle, parameter)
#define GFMmProcControlFormatGetSupportedFormats(handle) \
((GFMMPROC_CONTROL_FORMAT_TABLE*)handle)->MmProcControlFormatGetSupportedFormats(handle)
#define GFMmProcControlFormatGetSupportedIntParameterRange(handle, parameter) \
((GFMMPROC_CONTROL_FORMAT_TABLE*)handle)->MmProcControlFormatGetSupportedIntParameterRange(handle, parameter)
#define GFMmProcControlFormatGetSupportedIntParameters(handle) \
((GFMMPROC_CONTROL_FORMAT_TABLE*)handle)->MmProcControlFormatGetSupportedIntParameters(handle)
#define GFMmProcControlFormatGetSupportedMetadataKeys(handle) \
((GFMMPROC_CONTROL_FORMAT_TABLE*)handle)->MmProcControlFormatGetSupportedMetadataKeys(handle)
#define GFMmProcControlFormatGetSupportedStrParameters(handle) \
((GFMMPROC_CONTROL_FORMAT_TABLE*)handle)->MmProcControlFormatGetSupportedStrParameters(handle)
#define GFMmProcControlFormatGetSupportedStrParameterValues(handle, parameter) \
((GFMMPROC_CONTROL_FORMAT_TABLE*)handle)->MmProcControlFormatGetSupportedStrParameterValues(handle, parameter)
#define GFMmProcControlFormatSetFormat(handle, format) \
((GFMMPROC_CONTROL_FORMAT_TABLE*)handle)->MmProcControlFormatSetFormat(handle, format)
#define GFMmProcControlFormatSetMetadata(handle, key, value) \
((GFMMPROC_CONTROL_FORMAT_TABLE*)handle)->MmProcControlFormatSetMetadata(handle, key, value)
#define GFMmProcControlFormatSetMetadataOverride(handle, override) \
((GFMMPROC_CONTROL_FORMAT_TABLE*)handle)->MmProcControlFormatSetMetadataOverride(handle, override)
#define GFMmProcControlFormatSetParameterStr(handle, parameter, value) \
((GFMMPROC_CONTROL_FORMAT_TABLE*)handle)->MmProcControlFormatSetParameterStr(handle, parameter, value)
#define GFMmProcControlFormatSetParameterInt(handle, parameter, value) \
((GFMMPROC_CONTROL_FORMAT_TABLE*)handle)->MmProcControlFormatSetParameterInt(handle, parameter, value)
//*****************************************************************************
// AudioFormatControl
//*****************************************************************************
//
typedef GFMMPROC_CONTROL_FORMAT_TABLE GFMMPROC_CONTROL_AUDIO_FORMAT_TABLE;
//*****************************************************************************
// EffectControl
//*****************************************************************************
//
typedef struct _GFMMPROC_CONTROL_EFFECT_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
char* (*MmProcControlEffectGetPreset)(GFMMPROC_CONTROL_EFFECT handle);
char** (*MmProcControlEffectGetPresetNames)(GFMMPROC_CONTROL_EFFECT handle);
NvS32 (*MmProcControlEffectGetScope)(GFMMPROC_CONTROL_EFFECT handle);
NvS32 (*MmProcControlEffectIsEnabled)(GFMMPROC_CONTROL_EFFECT handle);
NvS32 (*MmProcControlEffectIsEnforced)(GFMMPROC_CONTROL_EFFECT handle);
void (*MmProcControlEffectSetEnabled)(GFMMPROC_CONTROL_EFFECT handle, NvS32 enable);
void (*MmProcControlEffectSetEnforced)(GFMMPROC_CONTROL_EFFECT handle, NvS32 enforced);
void (*MmProcControlEffectSetPreset)(GFMMPROC_CONTROL_EFFECT handle, char* preset);
void (*MmProcControlEffectSetScope)(GFMMPROC_CONTROL_EFFECT handle, NvS32 scope);
} GFMMPROC_CONTROL_EFFECT_TABLE;
#define GFMMPROC_CONTROL_EFFECT_SCOPE_LIVE_ONLY 1
#define GFMMPROC_CONTROL_EFFECT_SCOPE_RECORD_ONLY 2
#define GFMMPROC_CONTROL_EFFECT_SCOPE_LIVE_AND_RECORD 3
#define GFMmProcControlEffectGetPreset(handle) \
((GFMMPROC_CONTROL_EFFECT_TABLE*)handle)->MmProcControlEffectGetPreset(handle)
#define GFMmProcControlEffectGetPresetNames(handle) \
((GFMMPROC_CONTROL_EFFECT_TABLE*)handle)->MmProcControlEffectGetPresetNames(handle)
#define GFMmProcControlEffectGetScope(handle) \
((GFMMPROC_CONTROL_EFFECT_TABLE*)handle)->MmProcControlEffectGetScope(handle)
#define GFMmProcControlEffectIsEnabled(handle) \
((GFMMPROC_CONTROL_EFFECT_TABLE*)handle)->MmProcControlEffectIsEnabled(handle)
#define GFMmProcControlEffectIsEnforced(handle) \
((GFMMPROC_CONTROL_EFFECT_TABLE*)handle)->MmProcControlEffectIsEnforced(handle)
#define GFMmProcControlEffectSetEnabled(handle, enable) \
((GFMMPROC_CONTROL_EFFECT_TABLE*)handle)->MmProcControlEffectSetEnabled(handle, enable)
#define GFMmProcControlEffectSetEnforced(handle, enforced) \
((GFMMPROC_CONTROL_EFFECT_TABLE*)handle)->MmProcControlEffectSetEnforced(handle, enforced)
#define GFMmProcControlEffectSetPreset(handle, preset) \
((GFMMPROC_CONTROL_EFFECT_TABLE*)handle)->MmProcControlEffectSetPreset(handle, preset)
#define GFMmProcControlEffectSetScope(handle, scope) \
((GFMMPROC_CONTROL_EFFECT_TABLE*)handle)->MmProcControlEffectSetScope(handle, scope)
//*****************************************************************************
// EffectOrderControl
//*****************************************************************************
//
typedef struct _GFMMPROC_CONTROL_EFFECT_ORDER_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
NvS32 (*MmProcControlEffectOrderGetEffectOrder)(GFMMPROC_CONTROL_EFFECT_ORDER handle, GFMMPROC_CONTROL_EFFECT effect);
GFMMPROC_CONTROL_EFFECT (*MmProcControlEffectOrderGetEffectOrders)(GFMMPROC_CONTROL_EFFECT_ORDER handle);
NvS32 (*MmProcControlEffectOrderSetEffectOrder)(GFMMPROC_CONTROL_EFFECT_ORDER handle, GFMMPROC_CONTROL_EFFECT effect, NvS32 order);
} GFMMPROC_CONTROL_EFFECT_ORDER_TABLE;
#define GFMmProcControlEffectOrderGetEffectOrder(handle, effect) \
((GFMMPROC_CONTROL_EFFECT_ORDER_TABLE*)handle)->(handle, effect)
#define GFMmProcControlEffectOrderGetEffectOrders(handle) \
((GFMMPROC_CONTROL_EFFECT_ORDER_TABLE*)handle)->MmProcControlEffectOrderGetEffectOrders(handle)
#define GFMmProcControlEffectOrderSetEffectOrder(handle, effect, order) \
((GFMMPROC_CONTROL_EFFECT_ORDER_TABLE*)handle)->MmProcControlEffectOrderSetEffectOrder(handle, effect, order)
//*****************************************************************************
// MIDIChannelControl
//*****************************************************************************
//
typedef struct _GFMMPROC_CONTROL_MIDI_CHANNEL_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
GFMMPROC_CONTROL (*MmProcControlMidiChannelGetChannelControl)(GFMMPROC_CONTROL_MIDI_CHANNEL handle, char* controlType, NvS32 channel);
GFMMPROC_CONTROL* (*MmProcControlMidiChannelGetChannelControls)(GFMMPROC_CONTROL_MIDI_CHANNEL handle, NvS32 channel);
} GFMMPROC_CONTROL_MIDI_CHANNEL_TABLE;
#define GFMmProcControlMidiChannelGetChannelControl(handle, controlType, channel) \
((GFMMPROC_CONTROL_MIDI_CHANNEL_TABLE*)handle)->MmProcControlMidiChannelGetChannelControl(handle, controlType, channel)
#define GFMmProcControlMidiChannelGetChannelControls(handle, channel) \
((GFMMPROC_CONTROL_MIDI_CHANNEL_TABLE*)handle)->MmProcControlMidiChannelGetChannelControls(handle, channel)
//*****************************************************************************
// PanControl
//*****************************************************************************
//
typedef struct _GFMMPROC_CONTROL_PAN_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
NvS32 (*MmProcControlPanGetPan)(GFMMPROC_CONTROL_PAN handle);
NvS32 (*MmProcControlPanSetPan)(GFMMPROC_CONTROL_PAN handle, NvS32 pan);
} GFMMPROC_CONTROL_PAN_TABLE;
#define GFMmProcControlPanGetPan(handle) \
((GFMMPROC_CONTROL_PAN_TABLE*)handle)->MmProcControlPanGetPan(handle)
#define GFMmProcControlPanSetPan(handle, pan) \
((GFMMPROC_CONTROL_PAN_TABLE*)handle)->MmProcControlPanSetPan(handle, pan)
//*****************************************************************************
// PriorityControl
//*****************************************************************************
//
typedef struct _GFMMPROC_CONTROL_PRIORITY_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
NvS32 (*MmProcControlPriorityGetPriority)(GFMMPROC_CONTROL_PRIORITY handle);
void (*MmProcControlPrioritySetPriority)(GFMMPROC_CONTROL_PRIORITY handle, NvS32 level);
} GFMMPROC_CONTROL_PRIORITY_TABLE;
#define GFMmProcControlPriorityGetPriority(handle) \
((GFMMPROC_CONTROL_PRIORITY_TABLE*)handle)->MmProcControlPriorityGetPriority(handle)
#define GFMmProcControlPrioritySetPriority(handle, level) \
((GFMMPROC_CONTROL_PRIORITY_TABLE*)handle)->MmProcControlPrioritySetPriority(handle, level)
//*****************************************************************************
//*****************************************************************************
//
//
// GFMMPROC_ADVANCED_AUDIO_EFFECT_CONTROLS
//
//
//*****************************************************************************
//*****************************************************************************
#if defined GFMMPROC_ADVANCED_AUDIO_EFFECT_CONTROLS
typedef GFMMPROC_CONTROL_EFFECT GFMMPROC_CONTROL_EFFECT_AUDIO_VIRTUALIZER;
typedef GFMMPROC_CONTROL_EFFECT GFMMPROC_CONTROL_EFFECT_ACOUSTIC_ECHO_CANCELLATION;
typedef GFMMPROC_CONTROL_EFFECT GFMMPROC_CONTROL_EFFECT_CHORUS;
typedef GFMMPROC_CONTROL_EFFECT GFMMPROC_CONTROL_EFFECT_EQUALIZER;
typedef GFMMPROC_CONTROL_EFFECT GFMMPROC_CONTROL_EFFECT_REVERB;
typedef GFMMPROC_CONTROL_EFFECT GFMMPROC_CONTROL_EFFECT_DRC;
typedef GFMMPROC_CONTROL GFMMPROC_CONTROL_REVERB_SOURCE;
//*****************************************************************************
// AudioVirtualizerControl
//*****************************************************************************
//
typedef struct _GFMMPROC_CONTROL_EFFECT_AUDIO_VIRTUALIZER_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
char* (*MmProcControlEffectGetPreset)(GFMMPROC_CONTROL_EFFECT handle);
char** (*MmProcControlEffectGetPresetNames)(GFMMPROC_CONTROL_EFFECT handle);
NvS32 (*MmProcControlEffectGetScope)(GFMMPROC_CONTROL_EFFECT handle);
NvS32 (*MmProcControlEffectIsEnabled)(GFMMPROC_CONTROL_EFFECT handle);
NvS32 (*MmProcControlEffectIsEnforced)(GFMMPROC_CONTROL_EFFECT handle);
void (*MmProcControlEffectSetEnabled)(GFMMPROC_CONTROL_EFFECT handle, NvS32 enable);
void (*MmProcControlEffectSetEnforced)(GFMMPROC_CONTROL_EFFECT handle, NvS32 enforced);
void (*MmProcControlEffectSetPreset)(GFMMPROC_CONTROL_EFFECT handle, char* preset);
void (*MmProcControlEffectSetScope)(GFMMPROC_CONTROL_EFFECT handle, NvS32 scope);
NvS32 (*MmProcControlEffectAudioVirtualizerGetSpread)(GFMMPROC_CONTROL_EFFECT_AUDIO_VIRTUALIZER handle);
void (*MmProcControlEffectAudioVirtualizerSetSpread)(GFMMPROC_CONTROL_EFFECT_AUDIO_VIRTUALIZER handle, NvS32 width);
} GFMMPROC_CONTROL_EFFECT_AUDIO_VIRTUALIZER_TABLE;
#define GFMmProcControlEffectAudioVirtualizerGetSpread(handle) \
((GFMMPROC_CONTROL_EFFECT_AUDIO_VIRTUALIZER_TABLE*)handle)->MmProcControlEffectAudioVirtualizerGetSpread(handle)
#define GFMmProcControlEffectAudioVirtualizerSetSpread(handle, width) \
((GFMMPROC_CONTROL_EFFECT_AUDIO_VIRTUALIZER_TABLE*)handle)->MmProcControlEffectAudioVirtualizerSetSpread(handle, width)
//*****************************************************************************
// AcousticEchoCancellationControl
//*****************************************************************************
//
typedef GFMMPROC_CONTROL_EFFECT_TABLE GFMMPROC_CONTROL_EFFECT_ACOUSTIC_ECHO_CANCELLATION_TABLE;
//*****************************************************************************
// SBCControl
//*****************************************************************************
//
typedef GFMMPROC_CONTROL_EFFECT_TABLE GFMMPROC_CONTROL_EFFECT_SBC_TABLE;
//*****************************************************************************
// SBRControl
//*****************************************************************************
//
typedef GFMMPROC_CONTROL_EFFECT_TABLE GFMMPROC_CONTROL_EFFECT_SBR_TABLE;
//*****************************************************************************
// ChorusControl
//*****************************************************************************
//
typedef struct _GFMMPROC_CONTROL_EFFECT_CHORUS_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
char* (*MmProcControlEffectGetPreset)(GFMMPROC_CONTROL_EFFECT handle);
char** (*MmProcControlEffectGetPresetNames)(GFMMPROC_CONTROL_EFFECT handle);
NvS32 (*MmProcControlEffectGetScope)(GFMMPROC_CONTROL_EFFECT handle);
NvS32 (*MmProcControlEffectIsEnabled)(GFMMPROC_CONTROL_EFFECT handle);
NvS32 (*MmProcControlEffectIsEnforced)(GFMMPROC_CONTROL_EFFECT handle);
void (*MmProcControlEffectSetEnabled)(GFMMPROC_CONTROL_EFFECT handle, NvS32 enable);
void (*MmProcControlEffectSetEnforced)(GFMMPROC_CONTROL_EFFECT handle, NvS32 enforced);
void (*MmProcControlEffectSetPreset)(GFMMPROC_CONTROL_EFFECT handle, char* preset);
void (*MmProcControlEffectSetScope)(GFMMPROC_CONTROL_EFFECT handle, NvS32 scope);
NvS32 (*MmProcControlEffectChorusGetAverageDelay)(GFMMPROC_CONTROL_EFFECT_CHORUS handle);
NvS32 (*MmProcControlEffectChorusGetMaxAverageDelay)(GFMMPROC_CONTROL_EFFECT_CHORUS handle);
NvS32 (*MmProcControlEffectChorusGetMaxModulationDepth)(GFMMPROC_CONTROL_EFFECT_CHORUS handle);
NvS32 (*MmProcControlEffectChorusGetMaxModulationRate)(GFMMPROC_CONTROL_EFFECT_CHORUS handle);
NvS32 (*MmProcControlEffectChorusGetMinModulationRate)(GFMMPROC_CONTROL_EFFECT_CHORUS handle);
NvS32 (*MmProcControlEffectChorusGetModulationDepth)(GFMMPROC_CONTROL_EFFECT_CHORUS handle);
NvS32 (*MmProcControlEffectChorusGetModulationRate)(GFMMPROC_CONTROL_EFFECT_CHORUS handle);
NvS32 (*MmProcControlEffectChorusGetWetLevel)(GFMMPROC_CONTROL_EFFECT_CHORUS handle);
void (*MmProcControlEffectChorusSetAverageDelay)(GFMMPROC_CONTROL_EFFECT_CHORUS handle, NvS32 delay);
void (*MmProcControlEffectChorusSetModulationDepth)(GFMMPROC_CONTROL_EFFECT_CHORUS handle, NvS32 depth);
void (*MmProcControlEffectChorusSetModulationRate)(GFMMPROC_CONTROL_EFFECT_CHORUS handle, NvS32 rate);
NvS32 (*MmProcControlEffectChorusSetWetLevel)(GFMMPROC_CONTROL_EFFECT_CHORUS handle, NvS32 level);
} GFMMPROC_CONTROL_EFFECT_CHORUS_TABLE;
#define GFMmProcControlEffectChorusGetAverageDelay(handle) \
((GFMMPROC_CONTROL_EFFECT_CHORUS_TABLE*)handle)->MmProcControlEffectChorusGetAverageDelay(handle)
#define GFMmProcControlEffectChorusGetMaxAverageDelay(handle) \
((GFMMPROC_CONTROL_EFFECT_CHORUS_TABLE*)handle)->MmProcControlEffectChorusGetMaxAverageDelay(handle)
#define GFMmProcControlEffectChorusGetMaxModulationDepth(handle) \
((GFMMPROC_CONTROL_EFFECT_CHORUS_TABLE*)handle)->MmProcControlEffectChorusGetMaxModulationDepth(handle)
#define GFMmProcControlEffectChorusGetMaxModulationRate(handle) \
((GFMMPROC_CONTROL_EFFECT_CHORUS_TABLE*)handle)->MmProcControlEffectChorusGetMaxModulationRate(handle)
#define GFMmProcControlEffectChorusGetMinModulationRate(handle) \
((GFMMPROC_CONTROL_EFFECT_CHORUS_TABLE*)handle)->MmProcControlEffectChorusGetMinModulationRate(handle)
#define GFMmProcControlEffectChorusGetModulationDepth(handle) \
((GFMMPROC_CONTROL_EFFECT_CHORUS_TABLE*)handle)->MmProcControlEffectChorusGetModulationDepth(handle)
#define GFMmProcControlEffectChorusGetModulationRate(handle) \
((GFMMPROC_CONTROL_EFFECT_CHORUS_TABLE*)handle)->MmProcControlEffectChorusGetModulationRate(handle)
#define GFMmProcControlEffectChorusGetWetLevel(handle) \
((GFMMPROC_CONTROL_EFFECT_CHORUS_TABLE*)handle)->MmProcControlEffectChorusGetWetLevel(handle)
#define GFMmProcControlEffectChorusSetAverageDelay(handle, delay) \
((GFMMPROC_CONTROL_EFFECT_CHORUS_TABLE*)handle)->MmProcControlEffectChorusSetAverageDelay(handle, delay)
#define GFMmProcControlEffectChorusSetModulationDepth(handle, depth) \
((GFMMPROC_CONTROL_EFFECT_CHORUS_TABLE*)handle)->MmProcControlEffectChorusSetModulationDepth(handle, depth)
#define GFMmProcControlEffectChorusSetModulationRate(handle, rate) \
((GFMMPROC_CONTROL_EFFECT_CHORUS_TABLE*)handle)->MmProcControlEffectChorusSetModulationRate(handle, rate)
#define GFMmProcControlEffectChorusSetWetLevel(handle, level) \
((GFMMPROC_CONTROL_EFFECT_CHORUS_TABLE*)handle)->MmProcControlEffectChorusSetWetLevel(handle, level)
//*****************************************************************************
// EqualizerControl
//*****************************************************************************
//
typedef struct _GFMMPROC_CONTROL_EFFECT_EQUALIZER_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
char* (*MmProcControlEffectGetPreset)(GFMMPROC_CONTROL_EFFECT handle);
char** (*MmProcControlEffectGetPresetNames)(GFMMPROC_CONTROL_EFFECT handle);
NvS32 (*MmProcControlEffectGetScope)(GFMMPROC_CONTROL_EFFECT handle);
NvS32 (*MmProcControlEffectIsEnabled)(GFMMPROC_CONTROL_EFFECT handle);
NvS32 (*MmProcControlEffectIsEnforced)(GFMMPROC_CONTROL_EFFECT handle);
void (*MmProcControlEffectSetEnabled)(GFMMPROC_CONTROL_EFFECT handle, NvS32 enable);
void (*MmProcControlEffectSetEnforced)(GFMMPROC_CONTROL_EFFECT handle, NvS32 enforced);
void (*MmProcControlEffectSetPreset)(GFMMPROC_CONTROL_EFFECT handle, char* preset);
void (*MmProcControlEffectSetScope)(GFMMPROC_CONTROL_EFFECT handle, NvS32 scope);
NvS32 (*MmProcControlEffectEqualizerGetBand)(GFMMPROC_CONTROL_EFFECT_EQUALIZER handle, NvS32 frequency);
NvS32 (*MmProcControlEffectEqualizerGetBandLevel)(GFMMPROC_CONTROL_EFFECT_EQUALIZER handle, NvS32 band);
NvS32 (*MmProcControlEffectEqualizerGetBass)(GFMMPROC_CONTROL_EFFECT_EQUALIZER handle);
NvS32 (*MmProcControlEffectEqualizerGetCenterFreq)(GFMMPROC_CONTROL_EFFECT_EQUALIZER handle, NvS32 band);
NvS32 (*MmProcControlEffectEqualizerGetMaxBandLevel)(GFMMPROC_CONTROL_EFFECT_EQUALIZER handle);
NvS32 (*MmProcControlEffectEqualizerGetMinBandLevel)(GFMMPROC_CONTROL_EFFECT_EQUALIZER handle);
NvS32 (*MmProcControlEffectEqualizerGetNumberOfBands)(GFMMPROC_CONTROL_EFFECT_EQUALIZER handle);
NvS32 (*MmProcControlEffectEqualizerGetTreble)(GFMMPROC_CONTROL_EFFECT_EQUALIZER handle);
void (*MmProcControlEffectEqualizerSetBandLevel)(GFMMPROC_CONTROL_EFFECT_EQUALIZER handle, NvS32 level, NvS32 band);
NvS32 (*MmProcControlEffectEqualizerSetBass)(GFMMPROC_CONTROL_EFFECT_EQUALIZER handle, NvS32 level);
NvS32 (*MmProcControlEffectEqualizerSetTreble)(GFMMPROC_CONTROL_EFFECT_EQUALIZER handle, NvS32 level);
NvS32 (*MmProcControlEffectEqualizerSetBandX)(GFMMPROC_CONTROL_EFFECT_EQUALIZER handle, NvS32 *levelptr);
} GFMMPROC_CONTROL_EFFECT_EQUALIZER_TABLE;
#define GFMMPROC_CONTROL_EFFECT_EQUALIZER_UNDEFINED -1004
#define GFMmProcControlEffectEqualizerGetBand(handle, frequency) \
((GFMMPROC_CONTROL_EFFECT_EQUALIZER_TABLE*)handle)->(handle, frequency)
#define GFMmProcControlEffectEqualizerGetBandLevel(handle, band) \
((GFMMPROC_CONTROL_EFFECT_EQUALIZER_TABLE*)handle)->MmProcControlEffectEqualizerGetBandLevel(handle, band)
#define GFMmProcControlEffectEqualizerGetBass(handle) \
((GFMMPROC_CONTROL_EFFECT_EQUALIZER_TABLE*)handle)->MmProcControlEffectEqualizerGetBass(handle)
#define GFMmProcControlEffectEqualizerGetCenterFreq(handle, band) \
((GFMMPROC_CONTROL_EFFECT_EQUALIZER_TABLE*)handle)->MmProcControlEffectEqualizerGetCenterFreq(handle, band)
#define GFMmProcControlEffectEqualizerGetMaxBandLevel(handle) \
((GFMMPROC_CONTROL_EFFECT_EQUALIZER_TABLE*)handle)->MmProcControlEffectEqualizerGetMaxBandLevel(handle)
#define GFMmProcControlEffectEqualizerGetMinBandLevel(handle) \
((GFMMPROC_CONTROL_EFFECT_EQUALIZER_TABLE*)handle)->MmProcControlEffectEqualizerGetMinBandLevel(handle)
#define GFMmProcControlEffectEqualizerGetNumberOfBands(handle) \
((GFMMPROC_CONTROL_EFFECT_EQUALIZER_TABLE*)handle)->MmProcControlEffectEqualizerGetNumberOfBands(handle)
#define GFMmProcControlEffectEqualizerGetTreble(handle) \
((GFMMPROC_CONTROL_EFFECT_EQUALIZER_TABLE*)handle)->MmProcControlEffectEqualizerGetTreble(handle)
#define GFMmProcControlEffectEqualizerSetBandLevel(handle, level, band) \
((GFMMPROC_CONTROL_EFFECT_EQUALIZER_TABLE*)handle)->MmProcControlEffectEqualizerSetBandLevel(handle, level, band)
#define GFMmProcControlEffectEqualizerSetBass(handle, level) \
((GFMMPROC_CONTROL_EFFECT_EQUALIZER_TABLE*)handle)->MmProcControlEffectEqualizerSetBass(handle, level)
#define GFMmProcControlEffectEqualizerSetTreble(handle, level) \
((GFMMPROC_CONTROL_EFFECT_EQUALIZER_TABLE*)handle)->MmProcControlEffectEqualizerSetTreble(handle, level)
#define GFMmProcControlEffectEqualizerSetBandX(handle, levelptr) \
((GFMMPROC_CONTROL_EFFECT_EQUALIZER_TABLE*)handle)->MmProcControlEffectEqualizerSetBandX(handle, levelptr)
//*****************************************************************************
// Dynamic Range Control (DRC)
//*****************************************************************************
//
typedef struct _GFMMPROC_CONTROL_EFFECT_DRC_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
char* (*MmProcControlEffectGetPreset)(GFMMPROC_CONTROL_EFFECT handle);
char** (*MmProcControlEffectGetPresetNames)(GFMMPROC_CONTROL_EFFECT handle);
NvS32 (*MmProcControlEffectGetScope)(GFMMPROC_CONTROL_EFFECT handle);
NvS32 (*MmProcControlEffectIsEnabled)(GFMMPROC_CONTROL_EFFECT handle);
NvS32 (*MmProcControlEffectIsEnforced)(GFMMPROC_CONTROL_EFFECT handle);
void (*MmProcControlEffectSetEnabled)(GFMMPROC_CONTROL_EFFECT handle, NvS32 enable);
void (*MmProcControlEffectSetEnforced)(GFMMPROC_CONTROL_EFFECT handle, NvS32 enforced);
void (*MmProcControlEffectSetPreset)(GFMMPROC_CONTROL_EFFECT handle, char* preset);
void (*MmProcControlEffectSetScope)(GFMMPROC_CONTROL_EFFECT handle, NvS32 scope);
NvS32 (*MmProcControlEffectDRCGetDRCEnable)(GFMMPROC_CONTROL_EFFECT_DRC handle);
void (*MmProcControlEffectDRCSetDRCEnable)(GFMMPROC_CONTROL_EFFECT_DRC handle, NvS32 Param);
NvS32 (*MmProcControlEffectDRCGetNoiseGateTh)(GFMMPROC_CONTROL_EFFECT_DRC handle);
void (*MmProcControlEffectDRCSetNoiseGateTh)(GFMMPROC_CONTROL_EFFECT_DRC handle, NvS32 Param);
NvS32 (*MmProcControlEffectDRCGetLowerCompTh)(GFMMPROC_CONTROL_EFFECT_DRC handle);
void (*MmProcControlEffectDRCSetLowerCompTh)(GFMMPROC_CONTROL_EFFECT_DRC handle, NvS32 Param);
NvS32 (*MmProcControlEffectDRCGetUpperCompTh)(GFMMPROC_CONTROL_EFFECT_DRC handle);
void (*MmProcControlEffectDRCSetUpperCompTh)(GFMMPROC_CONTROL_EFFECT_DRC handle, NvS32 Param);
NvS32 (*MmProcControlEffectDRCGetClipTh)(GFMMPROC_CONTROL_EFFECT_DRC handle);
void (*MmProcControlEffectDRCSetClipTh)(GFMMPROC_CONTROL_EFFECT_DRC handle, NvS32 Param);
} GFMMPROC_CONTROL_EFFECT_DRC_TABLE;
#define GFMmProcControlEffectDRCGetDRCEnable(handle) \
((GFMMPROC_CONTROL_EFFECT_DRC_TABLE*)handle)->MmProcControlEffectDRCGetDRCEnable(handle)
#define GFMmProcControlEffectDRCSetDRCEnable(handle, Param) \
((GFMMPROC_CONTROL_EFFECT_DRC_TABLE*)handle)->MmProcControlEffectDRCSetDRCEnable(handle, Param)
#define GFMmProcControlEffectDRCGetNoiseGateTh(handle) \
((GFMMPROC_CONTROL_EFFECT_DRC_TABLE*)handle)->MmProcControlEffectDRCGetNoiseGateTh(handle)
#define GFMmProcControlEffectDRCSetNoiseGateTh(handle, Param) \
((GFMMPROC_CONTROL_EFFECT_DRC_TABLE*)handle)->MmProcControlEffectDRCSetNoiseGateTh(handle, Param)
#define GFMmProcControlEffectDRCGetLowerCompTh(handle) \
((GFMMPROC_CONTROL_EFFECT_DRC_TABLE*)handle)->MmProcControlEffectDRCGetLowerCompTh(handle)
#define GFMmProcControlEffectDRCSetLowerCompTh(handle, Param) \
((GFMMPROC_CONTROL_EFFECT_DRC_TABLE*)handle)->MmProcControlEffectDRCSetLowerCompTh(handle, Param)
#define GFMmProcControlEffectDRCGetUpperCompTh(handle) \
((GFMMPROC_CONTROL_EFFECT_DRC_TABLE*)handle)->MmProcControlEffectDRCGetUpperCompTh(handle)
#define GFMmProcControlEffectDRCSetUpperCompTh(handle, Param) \
((GFMMPROC_CONTROL_EFFECT_DRC_TABLE*)handle)->MmProcControlEffectDRCSetUpperCompTh(handle, Param)
#define GFMmProcControlEffectDRCGetClipTh(handle) \
((GFMMPROC_CONTROL_EFFECT_DRC_TABLE*)handle)->MmProcControlEffectDRCGetClipTh(handle)
#define GFMmProcControlEffectDRCSetClipTh(handle, Param) \
((GFMMPROC_CONTROL_EFFECT_DRC_TABLE*)handle)->MmProcControlEffectDRCSetClipTh(handle, Param)
//*****************************************************************************
// ReverbControl
//*****************************************************************************
//
typedef struct _GFMMPROC_CONTROL_EFFECT_REVERB_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
char* (*MmProcControlEffectGetPreset)(GFMMPROC_CONTROL_EFFECT handle);
char** (*MmProcControlEffectGetPresetNames)(GFMMPROC_CONTROL_EFFECT handle);
NvS32 (*MmProcControlEffectGetScope)(GFMMPROC_CONTROL_EFFECT handle);
NvS32 (*MmProcControlEffectIsEnabled)(GFMMPROC_CONTROL_EFFECT handle);
NvS32 (*MmProcControlEffectIsEnforced)(GFMMPROC_CONTROL_EFFECT handle);
void (*MmProcControlEffectSetEnabled)(GFMMPROC_CONTROL_EFFECT handle, NvS32 enable);
void (*MmProcControlEffectSetEnforced)(GFMMPROC_CONTROL_EFFECT handle, NvS32 enforced);
void (*MmProcControlEffectSetPreset)(GFMMPROC_CONTROL_EFFECT handle, char* preset);
void (*MmProcControlEffectSetScope)(GFMMPROC_CONTROL_EFFECT handle, NvS32 scope);
NvS32 (*MmProcControlEffectReverbGetReverbLevel)(GFMMPROC_CONTROL_EFFECT_REVERB handle);
NvS32 (*MmProcControlEffectReverbGetReverbTime)(GFMMPROC_CONTROL_EFFECT_REVERB handle);
NvS32 (*MmProcControlEffectReverbSetReverbLevel)(GFMMPROC_CONTROL_EFFECT_REVERB handle, NvS32 level);
void (*MmProcControlEffectReverbSetReverbTime)(GFMMPROC_CONTROL_EFFECT_REVERB handle, NvS32 time);
} GFMMPROC_CONTROL_EFFECT_REVERB_TABLE;
#define GFMmProcControlEffectReverbGetReverbLevel(handle) \
((GFMMPROC_CONTROL_EFFECT_REVERB_TABLE*)handle)->MmProcControlEffectReverbGetReverbLevel(handle)
#define GFMmProcControlEffectReverbGetReverbTime(handle) \
((GFMMPROC_CONTROL_EFFECT_REVERB_TABLE*)handle)->MmProcControlEffectReverbGetReverbTime(handle)
#define GFMmProcControlEffectReverbSetReverbLevel(handle, level) \
((GFMMPROC_CONTROL_EFFECT_REVERB_TABLE*)handle)->MmProcControlEffectReverbSetReverbLevel(handle, level)
#define GFMmProcControlEffectReverbSetReverbTime(handle, time) \
((GFMMPROC_CONTROL_EFFECT_REVERB_TABLE*)handle)->MmProcControlEffectReverbSetReverbTime(handle, time)
//*****************************************************************************
// ReverbSourceControl
//*****************************************************************************
//
typedef struct _GFMMPROC_CONTROL_REVERB_SOURCE_TABLE
{
//
// Object Methods
//
NvS32 (*MmProcObjectIsInstance)(GF_HANDLE handle, const char* objectType);
NvS32 (*MmProcControlReverbSourceGetRoomLevel)(GFMMPROC_CONTROL_REVERB_SOURCE handle);
void (*MmProcControlReverbSourceSetRoomLevel)(GFMMPROC_CONTROL_REVERB_SOURCE handle, NvS32 level);
} GFMMPROC_CONTROL_REVERB_SOURCE_TABLE;
#define GFMMPROC_CONTROL_REVERB_SOURCE_DISCONNECT -2147483648
#define GFMmProcControlReverbSourceGetRoomLevel(handle) \
((GFMMPROC_CONTROL_REVERB_SOURCE_TABLE*)handle)->MmProcControlReverbSourceGetRoomLevel(handle)
#define GFMmProcControlReverbSourceSetRoomLevel(handle, level) \
((GFMMPROC_CONTROL_REVERB_SOURCE_TABLE*)handle)->MmProcControlReverbSourceSetRoomLevel(handle, level)
#endif // GFMMPROC_ADVANCED_AUDIO_EFFECT_CONTROLS
#endif // GFMMPROC_ADVANCED_CONTROLS
#endif // GFMMPROC_ADVANCED
/*@}*/
#ifdef __cplusplus
}
#endif
#endif