00001 /******************************************************************************* 00002 The content of this file includes portions of the AUDIOKINETIC Wwise Technology 00003 released in source code form as part of the SDK installer package. 00004 00005 Commercial License Usage 00006 00007 Licensees holding valid commercial licenses to the AUDIOKINETIC Wwise Technology 00008 may use this file in accordance with the end user license agreement provided 00009 with the software or, alternatively, in accordance with the terms contained in a 00010 written agreement between you and Audiokinetic Inc. 00011 00012 Apache License Usage 00013 00014 Alternatively, this file may be used under the Apache License, Version 2.0 (the 00015 "Apache License"); you may not use this file except in compliance with the 00016 Apache License. You may obtain a copy of the Apache License at 00017 http://www.apache.org/licenses/LICENSE-2.0. 00018 00019 Unless required by applicable law or agreed to in writing, software distributed 00020 under the Apache License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES 00021 OR CONDITIONS OF ANY KIND, either express or implied. See the Apache License for 00022 the specific language governing permissions and limitations under the License. 00023 00024 Version: <VERSION> Build: <BUILDNUMBER> 00025 Copyright (c) <COPYRIGHTYEAR> Audiokinetic Inc. 00026 *******************************************************************************/ 00027 00028 /// \file 00029 ///! Definition of callbacks used for the Audio Input Plugin 00030 /// <br><b>Wwise source name:</b> AudioInput 00031 /// <br><b>Library file:</b> AkAudioInputSource.lib 00032 00033 #pragma once 00034 #define AKSOURCEID_AUDIOINPUT 200 00035 //////////////////////////////////////////////////////////////////////////////////////////// 00036 // API external to the plug-in, to be used by the game. 00037 00038 /// Callback requesting for the AkAudioFormat to use for the plug-in instance. 00039 /// Refer to the Source Input plugin documentation to learn more about the valid formats. 00040 /// \sa \ref soundengine_plugins_source 00041 AK_CALLBACK(void, AkAudioInputPluginGetFormatCallbackFunc)( 00042 AkPlayingID in_playingID, ///< Playing ID (same that was returned from the PostEvent call). 00043 AkAudioFormat& io_AudioFormat ///< Already filled format, modify it if required. 00044 ); 00045 00046 /// Function that returns the Gain to be applied to the Input Plugin. 00047 /// [0..1] range where 1 is maximum volume. 00048 AK_CALLBACK(AkReal32, AkAudioInputPluginGetGainCallbackFunc)( 00049 AkPlayingID in_playingID ///< Playing ID (same that was returned from the PostEvent call). 00050 ); 00051 00052 /// \typedef void( *AkAudioInputPluginExecuteCallbackFunc )( AkPlayingID in_playingID, AkAudioBuffer* io_pBufferOut ) 00053 /// Callback requesting for new data for playback. 00054 /// \param in_playingID Playing ID (same that was returned from the PostEvent call) 00055 /// \param io_pBufferOut Buffer to fill 00056 /// \remarks See IntegrationDemo sample for a sample on how to implement it. 00057 AK_CALLBACK(void, AkAudioInputPluginExecuteCallbackFunc)( 00058 AkPlayingID in_playingID, 00059 AkAudioBuffer* io_pBufferOut 00060 ); 00061 00062 /// This function should be called at the same place the AudioInput plug-in is being registered. 00063 AK_EXTERNAPIFUNC(void, SetAudioInputCallbacks)( 00064 AkAudioInputPluginExecuteCallbackFunc in_pfnExecCallback, 00065 AkAudioInputPluginGetFormatCallbackFunc in_pfnGetFormatCallback = NULL, // Optional 00066 AkAudioInputPluginGetGainCallbackFunc in_pfnGetGainCallback = NULL // Optional 00067 ); 00068 ////////////////////////////////////////////////////////////////////////////////////////////