Table of Contents

include/AK/Plugin/AkAudioInputPlugin.h

Go to the documentation of this file.
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 ////////////////////////////////////////////////////////////////////////////////////////////