/* 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