[adsp] Add adsp addon callback helper library
authorAlwinEsch <alwin.esch@web.de>
Sun, 12 Apr 2015 18:42:58 +0000 (20:42 +0200)
committerAchimTuran <wisler@kodi.tv>
Sun, 19 Jul 2015 16:54:26 +0000 (18:54 +0200)
.gitignore
Makefile.in
Makefile.include.in
addons/library.kodi.adsp/libKODI_adsp.h [new file with mode: 0644]
configure.ac
lib/addons/library.kodi.adsp/Makefile.in [new file with mode: 0644]
lib/addons/library.kodi.adsp/libKODI_adsp.cpp [new file with mode: 0644]
lib/addons/library.kodi.adsp/project/VS2010Express/libKODI_adsp.vcxproj [new file with mode: 0644]
lib/addons/library.kodi.adsp/project/VS2010Express/libKODI_adsp.vcxproj.filters [new file with mode: 0644]
project/VS2010Express/XBMC for Windows.sln
xbmc/addons/addon-bindings.mk

index 4ff98a8..1b0568c 100644 (file)
@@ -123,6 +123,7 @@ config.log
 /addons/script.module.pil/
 /addons/audioencoder.*
 /addons/pvr.*
+/addons/adsp.*
 /addons/xbmc.addon/addon.xml
 /addons/xbmc.json/addon.xml
 /addons/kodi.guilib/addon.xml
@@ -147,10 +148,13 @@ config.log
 /lib/addons/library.kodi.guilib/project/VS2010Express/Release
 /lib/addons/library.kodi.guilib/project/VS2010Express/Debug
 /lib/addons/library.xbmc.addon/Makefile
+/lib/addons/library.kodi.adsp/Makefile
 /lib/addons/library.xbmc.pvr/Makefile
 /lib/addons/library.xbmc.codec/Makefile
 /lib/addons/library.xbmc.addon/project/VS2010Express/Release
 /lib/addons/library.xbmc.addon/project/VS2010Express/Debug
+/lib/addons/library.kodi.adsp/project/VS2010Express/Release
+/lib/addons/library.kodi.adsp/project/VS2010Express/Debug
 /lib/addons/library.xbmc.codec/project/VS2010Express/Release
 /lib/addons/library.xbmc.codec/project/VS2010Express/Debug
 /lib/addons/library.xbmc.pvr/project/VS2010Express/Release
@@ -922,6 +926,8 @@ lib/cpluff/stamp-h1
 
 /addons/library.xbmc.addon/libXBMC_addon.dll
 /addons/library.xbmc.addon/libXBMC_addon.lib
+/addons/library.kodi.adsp/libKODI_adsp.dll
+/addons/library.kodi.adsp/libKODI_adsp.lib
 /addons/library.xbmc.codec/libXBMC_codec.dll
 /addons/library.xbmc.codec/libXBMC_codec.lib
 /addons/library.kodi.guilib/libKODI_guilib.dll
@@ -930,3 +936,4 @@ lib/cpluff/stamp-h1
 /addons/library.xbmc.pvr/libXBMC_pvr.lib
 
 /pvr-addons
+/adsp-addons
index 9289208..1a0fea9 100644 (file)
@@ -231,6 +231,7 @@ endif
 
 LIBADDON_DIRS=\
        lib/addons/library.xbmc.addon \
+       lib/addons/library.kodi.adsp \
        lib/addons/library.xbmc.codec \
        lib/addons/library.xbmc.pvr \
        lib/addons/library.kodi.guilib \
@@ -381,6 +382,7 @@ screensavers: $(SS_DIRS)
 
 libaddon: exports
        $(MAKE) -C lib/addons/library.xbmc.addon
+       $(MAKE) -C lib/addons/library.kodi.adsp
        $(MAKE) -C lib/addons/library.xbmc.codec
        $(MAKE) -C lib/addons/library.kodi.guilib
        $(MAKE) -C lib/addons/library.xbmc.pvr
index 1720848..54ec04d 100644 (file)
@@ -41,6 +41,7 @@ INCLUDES+=-I@abs_top_srcdir@/lib
 INCLUDES+=-I@abs_top_srcdir@/xbmc
 INCLUDES+=-I@abs_top_srcdir@/addons/library.kodi.guilib
 INCLUDES+=-I@abs_top_srcdir@/addons/library.xbmc.addon
+INCLUDES+=-I@abs_top_srcdir@/addons/library.kodi.adsp
 INCLUDES+=-I@abs_top_srcdir@/addons/library.xbmc.pvr
 INCLUDES+=-I@abs_top_srcdir@/addons/library.xbmc.codec
 INCLUDES+=$(sort @INCLUDES@)
diff --git a/addons/library.kodi.adsp/libKODI_adsp.h b/addons/library.kodi.adsp/libKODI_adsp.h
new file mode 100644 (file)
index 0000000..df13459
--- /dev/null
@@ -0,0 +1,236 @@
+#pragma once
+/*
+ *      Copyright (C) 2005-2014 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
+ *  <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include <string>
+#include <vector>
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+#ifdef BUILD_KODI_ADDON
+#include "kodi/kodi_adsp_types.h"
+#else
+#include "addons/include/kodi_adsp_types.h"
+#endif
+#include "libXBMC_addon.h"
+
+typedef void* ADSPHANDLE;
+
+#ifdef _WIN32
+#define ADSP_HELPER_DLL "\\library.kodi.adsp\\libKODI_adsp" ADDON_HELPER_EXT
+#else
+#define ADSP_HELPER_DLL_NAME "libKODI_adsp-" ADDON_HELPER_ARCH ADDON_HELPER_EXT
+#define ADSP_HELPER_DLL "/library.kodi.adsp/" ADSP_HELPER_DLL_NAME
+#endif
+
+class CAddonSoundPlay;
+
+class CHelper_libKODI_adsp
+{
+public:
+  CHelper_libKODI_adsp(void)
+  {
+    m_libKODI_adsp = NULL;
+    m_Handle      = NULL;
+  }
+
+  ~CHelper_libKODI_adsp(void)
+  {
+    if (m_libKODI_adsp)
+    {
+      ADSP_unregister_me(m_Handle, m_Callbacks);
+      dlclose(m_libKODI_adsp);
+    }
+  }
+
+  /*!
+   * @brief Resolve all callback methods
+   * @param handle Pointer to the add-on
+   * @return True when all methods were resolved, false otherwise.
+   */
+  bool RegisterMe(void* handle)
+  {
+    m_Handle = handle;
+
+    std::string libBasePath;
+    libBasePath  = ((cb_array*)m_Handle)->libPath;
+    libBasePath += ADSP_HELPER_DLL;
+
+#if defined(ANDROID)
+      struct stat st;
+      if(stat(libBasePath.c_str(),&st) != 0)
+      {
+        std::string tempbin = getenv("XBMC_ANDROID_LIBS");
+        libBasePath = tempbin + "/" + ADSP_HELPER_DLL_NAME;
+      }
+#endif
+
+    m_libKODI_adsp = dlopen(libBasePath.c_str(), RTLD_LAZY);
+    if (m_libKODI_adsp == NULL)
+    {
+      fprintf(stderr, "Unable to load %s\n", dlerror());
+      return false;
+    }
+
+    ADSP_register_me = (void* (*)(void *HANDLE))
+      dlsym(m_libKODI_adsp, "ADSP_register_me");
+    if (ADSP_register_me == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; }
+
+    ADSP_unregister_me = (void (*)(void* HANDLE, void* CB))
+      dlsym(m_libKODI_adsp, "ADSP_unregister_me");
+    if (ADSP_unregister_me == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; }
+
+    ADSP_add_menu_hook = (void (*)(void* HANDLE, void* CB, AE_DSP_MENUHOOK *hook))
+      dlsym(m_libKODI_adsp, "ADSP_add_menu_hook");
+    if (ADSP_add_menu_hook == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; }
+
+    ADSP_remove_menu_hook = (void (*)(void* HANDLE, void* CB, AE_DSP_MENUHOOK *hook))
+      dlsym(m_libKODI_adsp, "ADSP_remove_menu_hook");
+    if (ADSP_remove_menu_hook == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; }
+
+    ADSP_register_mode = (void (*)(void *HANDLE, void* CB, AE_DSP_MODES::AE_DSP_MODE *modes))
+      dlsym(m_libKODI_adsp, "ADSP_register_mode");
+    if (ADSP_register_mode == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; }
+
+    ADSP_unregister_mode = (void (*)(void* HANDLE, void* CB, AE_DSP_MODES::AE_DSP_MODE *modes))
+      dlsym(m_libKODI_adsp, "ADSP_unregister_mode");
+    if (ADSP_unregister_mode == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; }
+
+    ADSP_get_sound_play = (CAddonSoundPlay* (*)(void *HANDLE, void *CB, const char *filename))
+      dlsym(m_libKODI_adsp, "ADSP_get_sound_play");
+    if (ADSP_get_sound_play == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; }
+
+    ADSP_release_sound_play = (void (*)(CAddonSoundPlay* p))
+      dlsym(m_libKODI_adsp, "ADSP_release_sound_play");
+    if (ADSP_release_sound_play == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; }
+
+    m_Callbacks = ADSP_register_me(m_Handle);
+    return m_Callbacks != NULL;
+  }
+
+  /*!
+   * @brief Add or replace a menu hook for the context menu for this add-on
+   * @param hook The hook to add
+   */
+  void AddMenuHook(AE_DSP_MENUHOOK* hook)
+  {
+    return ADSP_add_menu_hook(m_Handle, m_Callbacks, hook);
+  }
+
+  /*!
+   * @brief Remove a menu hook for the context menu for this add-on
+   * @param hook The hook to remove
+   */
+  void RemoveMenuHook(AE_DSP_MENUHOOK* hook)
+  {
+    return ADSP_remove_menu_hook(m_Handle, m_Callbacks, hook);
+  }
+
+  /*!
+   * @brief Add or replace master mode information inside audio dsp database.
+   * Becomes identifier written inside mode to iModeID if it was 0 (undefined)
+   * @param mode The master mode to add or update inside database
+   */
+  void RegisterMode(AE_DSP_MODES::AE_DSP_MODE* mode)
+  {
+    return ADSP_register_mode(m_Handle, m_Callbacks, mode);
+  }
+
+  /*!
+   * @brief Remove a master mode from audio dsp database
+   * @param mode The Mode to remove
+   */
+  void UnregisterMode(AE_DSP_MODES::AE_DSP_MODE* mode)
+  {
+    return ADSP_unregister_mode(m_Handle, m_Callbacks, mode);
+  }
+
+  /*!
+   * @brief Open a sound playing class
+   * @param filename The wav filename to open
+   */
+  CAddonSoundPlay* GetSoundPlay(const char *filename)
+  {
+    return ADSP_get_sound_play(m_Handle, m_Callbacks, filename);
+  }
+
+  /*!
+   * @brief Remove a played file class
+   * @param p The playback to remove
+   */
+  void ReleaseSoundPlay(CAddonSoundPlay* p)
+  {
+    return ADSP_release_sound_play(p);
+  }
+
+protected:
+  void* (*ADSP_register_me)(void*);
+
+  void (*ADSP_unregister_me)(void*, void*);
+  void (*ADSP_add_menu_hook)(void*, void*, AE_DSP_MENUHOOK*);
+  void (*ADSP_remove_menu_hook)(void*, void*, AE_DSP_MENUHOOK*);
+  void (*ADSP_register_mode)(void*, void*, AE_DSP_MODES::AE_DSP_MODE*);
+  void (*ADSP_unregister_mode)(void*, void*, AE_DSP_MODES::AE_DSP_MODE*);
+  CAddonSoundPlay* (*ADSP_get_sound_play)(void*, void*, const char *);
+  void (*ADSP_release_sound_play)(CAddonSoundPlay*);
+
+private:
+  void* m_libKODI_adsp;
+  void* m_Handle;
+  void* m_Callbacks;
+  struct cb_array
+  {
+    const char* libPath;
+  };
+};
+
+class CAddonSoundPlay
+{
+public:
+  CAddonSoundPlay(void *hdl, void *cb, const char *filename);
+  virtual ~CAddonSoundPlay();
+
+  /*! play the sound this object represents */
+  virtual void Play();
+
+  /*! stop playing the sound this object represents */
+  virtual void Stop();
+
+  /*! return true if the sound is currently playing */
+  virtual bool IsPlaying();
+
+  /*! set the playback channel position of this sound, AE_DSP_CH_INVALID for all */
+  virtual void SetChannel(AE_DSP_CHANNEL channel);
+
+  /*! get the current playback volume of this sound, AE_DSP_CH_INVALID for all */
+  virtual AE_DSP_CHANNEL GetChannel();
+
+  /*! set the playback volume of this sound */
+  virtual void SetVolume(float volume);
+
+  /*! get the current playback volume of this sound */
+  virtual float GetVolume();
+
+private:
+  std::string m_Filename;
+  void       *m_Handle;
+  void       *m_cb;
+  ADSPHANDLE  m_PlayHandle;
+};
index d321f7d..d92c395 100644 (file)
@@ -2495,6 +2495,7 @@ OUTPUT_FILES="Makefile \
     xbmc/windowing/Makefile \
     xbmc/windowing/egl/Makefile \
     lib/addons/library.xbmc.addon/Makefile \
+    lib/addons/library.kodi.adsp/Makefile \
     lib/addons/library.xbmc.codec/Makefile \
     lib/addons/library.kodi.guilib/Makefile \
     lib/addons/library.xbmc.pvr/Makefile \
diff --git a/lib/addons/library.kodi.adsp/Makefile.in b/lib/addons/library.kodi.adsp/Makefile.in
new file mode 100644 (file)
index 0000000..0b9eb77
--- /dev/null
@@ -0,0 +1,27 @@
+ARCH=@ARCH@
+INCLUDES=-I. -I../../../xbmc/addons/include -I../../../xbmc -I../../../xbmc/cores/dvdplayer/DVDDemuxers
+DEFINES+=
+CXXFLAGS=-fPIC
+LIBNAME=libKODI_adsp
+OBJS=$(LIBNAME).o
+
+LIB_SHARED=../../../addons/library.kodi.adsp/$(LIBNAME)-$(ARCH).so
+
+all: $(LIB_SHARED)
+
+$(LIB_SHARED): $(OBJS)
+ifeq ($(findstring osx,$(ARCH)), osx)
+       $(CXX) $(LDFLAGS) -Wl,-alias_list,@abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper_mach_alias \
+       -bundle -undefined dynamic_lookup -o $@ \
+       @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o $(OBJS)
+else
+       $(CXX) $(CFLAGS) $(LDFLAGS) -shared -g -o $(LIB_SHARED) $(OBJS)
+endif
+
+CLEAN_FILES = \
+       $(LIB_SHARED) \
+
+DISTCLEAN_FILES= \
+       Makefile \
+
+include ../../../Makefile.include
diff --git a/lib/addons/library.kodi.adsp/libKODI_adsp.cpp b/lib/addons/library.kodi.adsp/libKODI_adsp.cpp
new file mode 100644 (file)
index 0000000..5034a5e
--- /dev/null
@@ -0,0 +1,92 @@
+/*
+ *      Copyright (C) 2013-2014 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
+ *  <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string>
+#include "../../../addons/library.kodi.adsp/libKODI_adsp.h"
+#include "addons/AddonCallbacks.h"
+
+#ifdef _WIN32
+#include <windows.h>
+#define DLLEXPORT __declspec(dllexport)
+#else
+#define DLLEXPORT
+#endif
+
+using namespace std;
+
+extern "C"
+{
+
+DLLEXPORT void* ADSP_register_me(void *hdl)
+{
+  CB_ADSPLib *cb = NULL;
+  if (!hdl)
+    fprintf(stderr, "libKODI_adsp-ERROR: ADSPLib_register_me is called with NULL handle !!!\n");
+  else
+  {
+    cb = ((AddonCB*)hdl)->ADSPLib_RegisterMe(((AddonCB*)hdl)->addonData);
+    if (!cb)
+      fprintf(stderr, "libKODI_adsp-ERROR: ADSPLib_register_me can't get callback table from KODI !!!\n");
+  }
+  return cb;
+}
+
+DLLEXPORT void ADSP_unregister_me(void *hdl, void* cb)
+{
+  if (hdl && cb)
+    ((AddonCB*)hdl)->ADSPLib_UnRegisterMe(((AddonCB*)hdl)->addonData, (CB_ADSPLib*)cb);
+}
+
+DLLEXPORT void ADSP_add_menu_hook(void *hdl, void* cb, AE_DSP_MENUHOOK *hook)
+{
+  if (cb == NULL)
+    return;
+
+  ((CB_ADSPLib*)cb)->AddMenuHook(((AddonCB*)hdl)->addonData, hook);
+}
+
+DLLEXPORT void ADSP_remove_menu_hook(void *hdl, void* cb, AE_DSP_MENUHOOK *hook)
+{
+  if (cb == NULL)
+    return;
+
+  ((CB_ADSPLib*)cb)->RemoveMenuHook(((AddonCB*)hdl)->addonData, hook);
+}
+
+DLLEXPORT void ADSP_register_mode(void *hdl, void* cb, AE_DSP_MODES::AE_DSP_MODE *mode)
+{
+  if (cb == NULL)
+    return;
+
+  ((CB_ADSPLib*)cb)->RegisterMode(((AddonCB*)hdl)->addonData, mode);
+}
+
+DLLEXPORT void ADSP_unregister_mode(void *hdl, void* cb, AE_DSP_MODES::AE_DSP_MODE *mode)
+{
+  if (cb == NULL)
+    return;
+
+  ((CB_ADSPLib*)cb)->UnregisterMode(((AddonCB*)hdl)->addonData, mode);
+}
+
+};
diff --git a/lib/addons/library.kodi.adsp/project/VS2010Express/libKODI_adsp.vcxproj b/lib/addons/library.kodi.adsp/project/VS2010Express/libKODI_adsp.vcxproj
new file mode 100644 (file)
index 0000000..005aba0
--- /dev/null
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{44F93C4D-85DD-4452-99BB-F1D196174024}</ProjectGuid>
+    <RootNamespace>KODI_ADSP</RootNamespace>
+    <Keyword>Win32Proj</Keyword>
+  </PropertyGroup>
+  <Import Project="$(SolutionDir)\XBMC.core-defaults.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets">
+    <Import Project="$(SolutionDir)\XBMC.defaults.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\..\..\addons\library.kodi.adsp\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Debug\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\..\..\addons\library.kodi.adsp\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Release\</IntDir>
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\..\..\addons\library.xbmc.addon\;$(IncludePath)</IncludePath>
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\..\..\addons\library.xbmc.addon\;$(IncludePath)</IncludePath>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>..\..\..\..\..\xbmc;..\..\..\..\..\xbmc\addons\include;..\..\..\..\..\xbmc\cores\dvdplayer\DVDDemuxers;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>VDR_EXPORTS;_WIN32PC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ExceptionHandling>Sync</ExceptionHandling>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+    </ClCompile>
+    <Link>
+      <OutputFile>..\..\..\..\..\addons\library.kodi.adsp\$(ProjectName).dll</OutputFile>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>..\..\..\..\..\xbmc;..\..\..\..\..\xbmc\addons\include;..\..\..\..\..\xbmc\cores\dvdplayer\DVDDemuxers;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>HAS_SDL_OPENGL;HAS_SDL;_USRDLL;XBMC_VDR_EXPORTS;_WIN32PC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ExceptionHandling>Sync</ExceptionHandling>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+    </ClCompile>
+    <Link>
+      <OutputFile>..\..\..\..\..\addons\library.kodi.adsp\$(ProjectName).dll</OutputFile>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\libKODI_adsp.cpp" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
diff --git a/lib/addons/library.kodi.adsp/project/VS2010Express/libKODI_adsp.vcxproj.filters b/lib/addons/library.kodi.adsp/project/VS2010Express/libKODI_adsp.vcxproj.filters
new file mode 100644 (file)
index 0000000..03be80f
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{A463B136-5D8C-4995-A8D5-67FA2B90B6A8}</UniqueIdentifier>
+      <Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{EAFF7342-E9A9-4164-A40A-639A72C620DA}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\libKODI_adsp.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+</Project>
index 0f4a94d..d90930a 100644 (file)
@@ -65,6 +65,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "visVortex", "..\..\xbmc\vis
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Effects11", "..\..\lib\win32\Effects11\Effects11_2013.vcxproj", "{DF460EAB-570D-4B50-9089-2E2FC801BF38}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libKODI_adsp", "..\..\lib\addons\library.kodi.adsp\project\VS2010Express\libKODI_adsp.vcxproj", "{44F93C4D-85DD-4452-99BB-F1D196174024}"
 EndProject
 Global
        GlobalSection(SolutionConfigurationPlatforms) = preSolution
index 71d7efb..e94975b 100644 (file)
@@ -17,6 +17,7 @@ BINDINGS+=xbmc/addons/include/xbmc_vis_dll.h
 BINDINGS+=xbmc/addons/include/xbmc_vis_types.h
 BINDINGS+=xbmc/addons/include/xbmc_stream_utils.hpp
 BINDINGS+=addons/library.xbmc.addon/libXBMC_addon.h
+BINDINGS+=addons/library.kodi.adsp/libKODI_adsp.h
 BINDINGS+=addons/library.kodi.guilib/libKODI_guilib.h
 BINDINGS+=addons/library.xbmc.pvr/libXBMC_pvr.h
 BINDINGS+=addons/library.xbmc.codec/libXBMC_codec.h