#pragma once /* * Copyright (C) 2005-2015 Team Kodi * http://kodi.tv * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Kodi; see the file COPYING. If not, see * . * */ #include "xbmc_addon_dll.h" #include "xbmc_vis_types.h" extern "C" { // Functions that your visualisation must implement void Start(int iChannels, int iSamplesPerSec, int iBitsPerSample, const char* szSongName); void Stop(); void AudioData(const float* pAudioData, int iAudioDataLength, float *pFreqData, int iFreqDataLength); void Render(); bool OnAction(long action, const void *param); void GetInfo(VIS_INFO* pInfo); unsigned int GetPresets(char ***presets); unsigned GetPreset(); unsigned int GetSubModules(char ***presets); bool IsLocked(); // function to export the above structure to XBMC void __declspec(dllexport) get_addon(void* ptr) { AddonInstance_Visualization* pVisz = static_cast(ptr); pVisz->toAddon.Start = Start; pVisz->toAddon.Stop = Stop; pVisz->toAddon.AudioData = AudioData; pVisz->toAddon.Render = Render; pVisz->toAddon.OnAction = OnAction; pVisz->toAddon.GetInfo = GetInfo; pVisz->toAddon.GetPresets = GetPresets; pVisz->toAddon.GetPreset = GetPreset; pVisz->toAddon.GetSubModules = GetSubModules; pVisz->toAddon.IsLocked = IsLocked; }; };