瀏覽代碼

Started work on OpenAudio plugin

BearishSun 9 年之前
父節點
當前提交
bde6280dd5

+ 32 - 2
Build/VS2015/BansheeEngine.sln

@@ -70,6 +70,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BansheeEditorExec", "Banshe
 		{A4865386-A95B-41BE-B016-4674F6B4272E} = {A4865386-A95B-41BE-B016-4674F6B4272E}
 		{A4865386-A95B-41BE-B016-4674F6B4272E} = {A4865386-A95B-41BE-B016-4674F6B4272E}
 		{07B0C186-5173-46F2-BE26-7E4148BD0CCA} = {07B0C186-5173-46F2-BE26-7E4148BD0CCA}
 		{07B0C186-5173-46F2-BE26-7E4148BD0CCA} = {07B0C186-5173-46F2-BE26-7E4148BD0CCA}
 		{7F449698-73DF-4203-9F31-0877DBF01695} = {7F449698-73DF-4203-9F31-0877DBF01695}
 		{7F449698-73DF-4203-9F31-0877DBF01695} = {7F449698-73DF-4203-9F31-0877DBF01695}
+		{06EBB8CF-5E90-476C-B389-B8F290A847ED} = {06EBB8CF-5E90-476C-B389-B8F290A847ED}
 		{2BA791F1-87F6-4863-A784-D07FF605AC5E} = {2BA791F1-87F6-4863-A784-D07FF605AC5E}
 		{2BA791F1-87F6-4863-A784-D07FF605AC5E} = {2BA791F1-87F6-4863-A784-D07FF605AC5E}
 		{BFEBBAF8-8A84-4899-8899-D0D7196AF9A1} = {BFEBBAF8-8A84-4899-8899-D0D7196AF9A1}
 		{BFEBBAF8-8A84-4899-8899-D0D7196AF9A1} = {BFEBBAF8-8A84-4899-8899-D0D7196AF9A1}
 		{796B6DFF-BA04-42B7-A43A-2B14D707A33A} = {796B6DFF-BA04-42B7-A43A-2B14D707A33A}
 		{796B6DFF-BA04-42B7-A43A-2B14D707A33A} = {796B6DFF-BA04-42B7-A43A-2B14D707A33A}
@@ -195,6 +196,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BansheePhysX", "BansheePhys
 		{CC7F9445-71C9-4559-9976-FF0A64DCB582} = {CC7F9445-71C9-4559-9976-FF0A64DCB582}
 		{CC7F9445-71C9-4559-9976-FF0A64DCB582} = {CC7F9445-71C9-4559-9976-FF0A64DCB582}
 	EndProjectSection
 	EndProjectSection
 EndProject
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BansheeOpenAudio", "BansheeOpenAudio.vcxproj", "{06EBB8CF-5E90-476C-B389-B8F290A847ED}"
+	ProjectSection(ProjectDependencies) = postProject
+		{9B21D41C-516B-43BF-9B10-E99B599C7589} = {9B21D41C-516B-43BF-9B10-E99B599C7589}
+		{CC7F9445-71C9-4559-9976-FF0A64DCB582} = {CC7F9445-71C9-4559-9976-FF0A64DCB582}
+	EndProjectSection
+EndProject
 Global
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
 		Debug|Any CPU = Debug|Any CPU
@@ -395,8 +402,8 @@ Global
 		{4E02D5FE-5A98-49C1-93FD-DF841A9FA3DB}.OptimizedDebug|Any CPU.ActiveCfg = Release|Win32
 		{4E02D5FE-5A98-49C1-93FD-DF841A9FA3DB}.OptimizedDebug|Any CPU.ActiveCfg = Release|Win32
 		{4E02D5FE-5A98-49C1-93FD-DF841A9FA3DB}.OptimizedDebug|Mixed Platforms.ActiveCfg = Release|Win32
 		{4E02D5FE-5A98-49C1-93FD-DF841A9FA3DB}.OptimizedDebug|Mixed Platforms.ActiveCfg = Release|Win32
 		{4E02D5FE-5A98-49C1-93FD-DF841A9FA3DB}.OptimizedDebug|Mixed Platforms.Build.0 = Release|Win32
 		{4E02D5FE-5A98-49C1-93FD-DF841A9FA3DB}.OptimizedDebug|Mixed Platforms.Build.0 = Release|Win32
-		{4E02D5FE-5A98-49C1-93FD-DF841A9FA3DB}.OptimizedDebug|Win32.ActiveCfg = Release|Win32
-		{4E02D5FE-5A98-49C1-93FD-DF841A9FA3DB}.OptimizedDebug|Win32.Build.0 = Release|Win32
+		{4E02D5FE-5A98-49C1-93FD-DF841A9FA3DB}.OptimizedDebug|Win32.ActiveCfg = OptimizedDebug|Win32
+		{4E02D5FE-5A98-49C1-93FD-DF841A9FA3DB}.OptimizedDebug|Win32.Build.0 = OptimizedDebug|Win32
 		{4E02D5FE-5A98-49C1-93FD-DF841A9FA3DB}.OptimizedDebug|x64.ActiveCfg = OptimizedDebug|x64
 		{4E02D5FE-5A98-49C1-93FD-DF841A9FA3DB}.OptimizedDebug|x64.ActiveCfg = OptimizedDebug|x64
 		{4E02D5FE-5A98-49C1-93FD-DF841A9FA3DB}.OptimizedDebug|x64.Build.0 = OptimizedDebug|x64
 		{4E02D5FE-5A98-49C1-93FD-DF841A9FA3DB}.OptimizedDebug|x64.Build.0 = OptimizedDebug|x64
 		{4E02D5FE-5A98-49C1-93FD-DF841A9FA3DB}.Release|Any CPU.ActiveCfg = Release|Win32
 		{4E02D5FE-5A98-49C1-93FD-DF841A9FA3DB}.Release|Any CPU.ActiveCfg = Release|Win32
@@ -680,6 +687,28 @@ Global
 		{69517850-7050-4A1A-B03F-6DC4498B0340}.Release|Win32.Build.0 = Release|Win32
 		{69517850-7050-4A1A-B03F-6DC4498B0340}.Release|Win32.Build.0 = Release|Win32
 		{69517850-7050-4A1A-B03F-6DC4498B0340}.Release|x64.ActiveCfg = Release|x64
 		{69517850-7050-4A1A-B03F-6DC4498B0340}.Release|x64.ActiveCfg = Release|x64
 		{69517850-7050-4A1A-B03F-6DC4498B0340}.Release|x64.Build.0 = Release|x64
 		{69517850-7050-4A1A-B03F-6DC4498B0340}.Release|x64.Build.0 = Release|x64
+		{06EBB8CF-5E90-476C-B389-B8F290A847ED}.Debug|Any CPU.ActiveCfg = Debug|Win32
+		{06EBB8CF-5E90-476C-B389-B8F290A847ED}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
+		{06EBB8CF-5E90-476C-B389-B8F290A847ED}.Debug|Mixed Platforms.Build.0 = Debug|Win32
+		{06EBB8CF-5E90-476C-B389-B8F290A847ED}.Debug|Win32.ActiveCfg = Debug|Win32
+		{06EBB8CF-5E90-476C-B389-B8F290A847ED}.Debug|Win32.Build.0 = Debug|Win32
+		{06EBB8CF-5E90-476C-B389-B8F290A847ED}.Debug|x64.ActiveCfg = Debug|x64
+		{06EBB8CF-5E90-476C-B389-B8F290A847ED}.Debug|x64.Build.0 = Debug|x64
+		{06EBB8CF-5E90-476C-B389-B8F290A847ED}.OptimizedDebug|Any CPU.ActiveCfg = Release|x64
+		{06EBB8CF-5E90-476C-B389-B8F290A847ED}.OptimizedDebug|Any CPU.Build.0 = Release|x64
+		{06EBB8CF-5E90-476C-B389-B8F290A847ED}.OptimizedDebug|Mixed Platforms.ActiveCfg = Debug|Win32
+		{06EBB8CF-5E90-476C-B389-B8F290A847ED}.OptimizedDebug|Mixed Platforms.Build.0 = Debug|Win32
+		{06EBB8CF-5E90-476C-B389-B8F290A847ED}.OptimizedDebug|Win32.ActiveCfg = OptimizedDebug|Win32
+		{06EBB8CF-5E90-476C-B389-B8F290A847ED}.OptimizedDebug|Win32.Build.0 = OptimizedDebug|Win32
+		{06EBB8CF-5E90-476C-B389-B8F290A847ED}.OptimizedDebug|x64.ActiveCfg = OptimizedDebug|x64
+		{06EBB8CF-5E90-476C-B389-B8F290A847ED}.OptimizedDebug|x64.Build.0 = OptimizedDebug|x64
+		{06EBB8CF-5E90-476C-B389-B8F290A847ED}.Release|Any CPU.ActiveCfg = Release|Win32
+		{06EBB8CF-5E90-476C-B389-B8F290A847ED}.Release|Mixed Platforms.ActiveCfg = Release|Win32
+		{06EBB8CF-5E90-476C-B389-B8F290A847ED}.Release|Mixed Platforms.Build.0 = Release|Win32
+		{06EBB8CF-5E90-476C-B389-B8F290A847ED}.Release|Win32.ActiveCfg = Release|Win32
+		{06EBB8CF-5E90-476C-B389-B8F290A847ED}.Release|Win32.Build.0 = Release|Win32
+		{06EBB8CF-5E90-476C-B389-B8F290A847ED}.Release|x64.ActiveCfg = Release|x64
+		{06EBB8CF-5E90-476C-B389-B8F290A847ED}.Release|x64.Build.0 = Release|x64
 	EndGlobalSection
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
 		HideSolutionNode = FALSE
@@ -703,6 +732,7 @@ Global
 		{B280B769-1BA4-42AF-8263-D644A67B4473} = {7E093EC6-24C6-4832-9482-2D8C0551D3B6}
 		{B280B769-1BA4-42AF-8263-D644A67B4473} = {7E093EC6-24C6-4832-9482-2D8C0551D3B6}
 		{796B6DFF-BA04-42B7-A43A-2B14D707A33A} = {32E4E2B7-1B4D-4B06-AD87-57CEE00BC247}
 		{796B6DFF-BA04-42B7-A43A-2B14D707A33A} = {32E4E2B7-1B4D-4B06-AD87-57CEE00BC247}
 		{69517850-7050-4A1A-B03F-6DC4498B0340} = {32E4E2B7-1B4D-4B06-AD87-57CEE00BC247}
 		{69517850-7050-4A1A-B03F-6DC4498B0340} = {32E4E2B7-1B4D-4B06-AD87-57CEE00BC247}
+		{06EBB8CF-5E90-476C-B389-B8F290A847ED} = {32E4E2B7-1B4D-4B06-AD87-57CEE00BC247}
 	EndGlobalSection
 	EndGlobalSection
 	GlobalSection(SubversionScc) = preSolution
 	GlobalSection(SubversionScc) = preSolution
 		Svn-Managed = True
 		Svn-Managed = True

+ 260 - 0
Build/VS2015/BansheeOpenAudio.vcxproj

@@ -0,0 +1,260 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.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="OptimizedDebug|Win32">
+      <Configuration>OptimizedDebug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="OptimizedDebug|x64">
+      <Configuration>OptimizedDebug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{06EBB8CF-5E90-476C-B389-B8F290A847ED}</ProjectGuid>
+    <RootNamespace>BansheeOpenAudio</RootNamespace>
+    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v140</PlatformToolset>
+    <CharacterSet>NotSet</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v140</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>NotSet</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='OptimizedDebug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v140</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>NotSet</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v140</PlatformToolset>
+    <CharacterSet>NotSet</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v140</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>NotSet</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='OptimizedDebug|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v140</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>NotSet</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="Shared">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='OptimizedDebug|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" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='OptimizedDebug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>..\..\bin\x86\$(Configuration)\</OutDir>
+    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>..\..\bin\x86\$(Configuration)\</OutDir>
+    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='OptimizedDebug|Win32'">
+    <OutDir>..\..\bin\x86\$(Configuration)\</OutDir>
+    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>..\..\bin\$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>..\..\bin\$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='OptimizedDebug|x64'">
+    <OutDir>..\..\bin\$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;../../Source/BansheeOpenAudio/Include;../../Dependencies/BansheeOpenAudio/Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>BS_OA_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ExceptionHandling>false</ExceptionHandling>
+      <RuntimeTypeInfo>false</RuntimeTypeInfo>
+      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <ImportLibrary>..\..\lib\x86\$(Configuration)\$(TargetName).lib</ImportLibrary>
+      <AdditionalLibraryDirectories>../../lib/x86/$(Configuration);../../Dependencies/BansheeOpenAudio/lib/x86/Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>BansheeCore.lib;BansheeUtility.lib;libFLAC.lib;libvorbis.lib;libvorbisfile.lib;OpenAL32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;../../Source/BansheeOpenAudio/Include;../../Dependencies/BansheeOpenAudio/Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>BS_OA_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ExceptionHandling>false</ExceptionHandling>
+      <RuntimeTypeInfo>false</RuntimeTypeInfo>
+      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <ImportLibrary>..\..\lib\$(Platform)\$(Configuration)\$(TargetName).lib</ImportLibrary>
+      <AdditionalLibraryDirectories>../../lib/$(Platform)/$(Configuration);../../Dependencies/BansheeOpenAudio/lib/x64/Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>BansheeCore.lib;BansheeUtility.lib;libFLAC.lib;libvorbis.lib;libvorbisfile.lib;OpenAL32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>false</SDLCheck>
+      <AdditionalIncludeDirectories>../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;../../Source/BansheeOpenAudio/Include;../../Dependencies/BansheeOpenAudio/Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <DebugInformationFormat>None</DebugInformationFormat>
+      <PreprocessorDefinitions>BS_OA_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ExceptionHandling>false</ExceptionHandling>
+      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <RuntimeTypeInfo>false</RuntimeTypeInfo>
+      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <ImportLibrary>..\..\lib\x86\$(Configuration)\$(TargetName).lib</ImportLibrary>
+      <AdditionalLibraryDirectories>../../lib/x86/$(Configuration);../../Dependencies/BansheeOpenAudio/lib/x86/Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>No</GenerateDebugInformation>
+      <AdditionalDependencies>BansheeCore.lib;BansheeUtility.lib;libFLAC.lib;libvorbis.lib;libvorbisfile.lib;OpenAL32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='OptimizedDebug|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <AdditionalIncludeDirectories>../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;../../Source/BansheeOpenAudio/Include;../../Dependencies/BansheeOpenAudio/Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <PreprocessorDefinitions>BS_OA_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ExceptionHandling>false</ExceptionHandling>
+      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <RuntimeTypeInfo>false</RuntimeTypeInfo>
+      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <ImportLibrary>..\..\lib\x86\$(Configuration)\$(TargetName).lib</ImportLibrary>
+      <AdditionalLibraryDirectories>../../lib/x86/$(Configuration);../../Dependencies/BansheeOpenAudio/lib/x86/OptimizedDebug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>BansheeCore.lib;BansheeUtility.lib;libFLAC.lib;libvorbis.lib;libvorbisfile.lib;OpenAL32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>false</SDLCheck>
+      <AdditionalIncludeDirectories>../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;../../Source/BansheeOpenAudio/Include;../../Dependencies/BansheeOpenAudio/Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <DebugInformationFormat>None</DebugInformationFormat>
+      <PreprocessorDefinitions>BS_OA_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ExceptionHandling>false</ExceptionHandling>
+      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <RuntimeTypeInfo>false</RuntimeTypeInfo>
+      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <ImportLibrary>..\..\lib\$(Platform)\$(Configuration)\$(TargetName).lib</ImportLibrary>
+      <AdditionalLibraryDirectories>../../lib/$(Platform)/$(Configuration);../../Dependencies/BansheeOpenAudio/lib/x64/Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>No</GenerateDebugInformation>
+      <AdditionalDependencies>BansheeCore.lib;BansheeUtility.lib;libFLAC.lib;libvorbis.lib;libvorbisfile.lib;OpenAL32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='OptimizedDebug|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <AdditionalIncludeDirectories>../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;../../Source/BansheeOpenAudio/Include;../../Dependencies/BansheeOpenAudio/Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <PreprocessorDefinitions>BS_OA_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ExceptionHandling>false</ExceptionHandling>
+      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <RuntimeTypeInfo>false</RuntimeTypeInfo>
+      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <ImportLibrary>..\..\lib\$(Platform)\$(Configuration)\$(TargetName).lib</ImportLibrary>
+      <AdditionalLibraryDirectories>../../lib/$(Platform)/$(Configuration);../../Dependencies/BansheeOpenAudio/lib/x64/OptimizedDebug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>BansheeCore.lib;BansheeUtility.lib;libFLAC.lib;libvorbis.lib;libvorbisfile.lib;OpenAL32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\Source\BansheeOpenAudio\Include\BsOAPrerequisites.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\Source\BansheeOpenAudio\Source\BsOAPlugin.cpp" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>

+ 23 - 0
Build/VS2015/BansheeOpenAudio.vcxproj.filters

@@ -0,0 +1,23 @@
+<?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>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\Source\BansheeOpenAudio\Include\BsOAPrerequisites.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\Source\BansheeOpenAudio\Source\BsOAPlugin.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+</Project>

+ 4 - 0
Build/VS2015/BansheeOpenAudio.vcxproj.user

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup />
+</Project>

+ 19 - 1
Documentation/CompilingDependenciesManually.txt

@@ -22,7 +22,7 @@ Use the list below to find all dependencies used by specific projects in Banshee
 All dependencies listed are shown with a specific version (the one Banshee was tested against), although many should work with newer versions as well, but that is up to you to test.
 All dependencies listed are shown with a specific version (the one Banshee was tested against), although many should work with newer versions as well, but that is up to you to test.
 
 
 BansheeFBXImporter (optional) relies on:
 BansheeFBXImporter (optional) relies on:
- - FBX SDK 2015.1 for VS2013, FBX SDK 2016.1 for VS2015
+ - FBX SDK 2016.1
    - http://usa.autodesk.com/fbx
    - http://usa.autodesk.com/fbx
 
 
 BansheeFreeImgImporter (optional) relies on:
 BansheeFreeImgImporter (optional) relies on:
@@ -67,6 +67,24 @@ BansheePhysX (optional) relies on:
   - https://github.com/NVIDIAGameWorks/PhysX-3.3
   - https://github.com/NVIDIAGameWorks/PhysX-3.3
   - You will need PhysX3, PhysX3Common, PhysX3Cooking and PhysX3CharacterKinematic libraries
   - You will need PhysX3, PhysX3Common, PhysX3Cooking and PhysX3CharacterKinematic libraries
 
 
+BansheeOpenAudio (optional) relies on:
+ - libogg v1.3.2
+  - https://xiph.org/downloads/
+  - Required in order to build libflac & libvorbis
+    - See readme files included with those libraries as to how to set up libogg library and includes
+  - Use non-debug build for all Banshee configurations for performance reasons
+ - libvorbis commit:5bbe49dc947ea9f1532273644348c53054ca214a
+  - https://git.xiph.org/?p=vorbis.git
+  - Before compiling follow steps for libogg above
+  - Use non-debug build for all Banshee configurations for performance reasons
+ - libflac commit:94a61241b02064c7d9fe508f72a742f2a90b8492
+  - https://git.xiph.org/?p=flac.git
+  - Before compiling follow steps for libogg above
+  - Use non-debug build for all Banshee configurations for performance reasons
+ - OpenAL Soft 1.17.2
+  - https://github.com/kcat/openal-soft
+  - Use non-debug build for all Banshee configurations for performance reasons
+
 Place plug-in specific dependency files in:
 Place plug-in specific dependency files in:
  - Library include files in (BansheeRootDir)/Dependencies/(Project)/Include
  - Library include files in (BansheeRootDir)/Dependencies/(Project)/Include
  - Static library files in (BansheeRootDir)/Dependencies/(Project)/lib/(Platform)/(Configuration)
  - Static library files in (BansheeRootDir)/Dependencies/(Project)/lib/(Platform)/(Configuration)

+ 31 - 0
Source/BansheeOpenAudio/Include/BsOAPrerequisites.h

@@ -0,0 +1,31 @@
+//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
+//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
+#pragma once
+
+#include "BsCorePrerequisites.h"
+
+#if (BS_PLATFORM == BS_PLATFORM_WIN32) && !defined(__MINGW32__)
+#	ifdef BS_OA_EXPORTS
+#		define BS_OA_EXPORT __declspec(dllexport)
+#	else
+#       if defined( __MINGW32__ )
+#           define BS_OA_EXPORT
+#       else
+#    		define BS_OA_EXPORT __declspec(dllimport)
+#       endif
+#	endif
+#elif defined ( BS_GCC_VISIBILITY )
+#    define BS_OA_EXPORT  __attribute__ ((visibility("default")))
+#else
+#    define BS_OA_EXPORT
+#endif
+
+/** @addtogroup Plugins
+*  @{
+*/
+
+/** @defgroup OpenAudio BansheeOpenAudio
+*	Open source audio implementation using OpenAL, libFLAC and libvorbis.
+*/
+
+/** @} */

+ 21 - 0
Source/BansheeOpenAudio/Source/BsOAPlugin.cpp

@@ -0,0 +1,21 @@
+//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
+//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
+#include "BsOAPrerequisites.h"
+
+namespace BansheeEngine
+{
+	/**	Returns a name of the plugin. */
+	extern "C" BS_OA_EXPORT const char* getPluginName()
+	{
+		static const char* pluginName = "OpenAudio";
+		return pluginName;
+	}
+
+	/**	Entry point to the plugin. Called by the engine when the plugin is loaded. */
+	extern "C" BS_OA_EXPORT void* loadPlugin()
+	{
+		// TODO
+
+		return nullptr;
+	}
+}