Przeglądaj źródła

Started work on OpenAudio plugin

BearishSun 9 lat temu
rodzic
commit
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}
 		{07B0C186-5173-46F2-BE26-7E4148BD0CCA} = {07B0C186-5173-46F2-BE26-7E4148BD0CCA}
 		{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}
 		{BFEBBAF8-8A84-4899-8899-D0D7196AF9A1} = {BFEBBAF8-8A84-4899-8899-D0D7196AF9A1}
 		{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}
 	EndProjectSection
 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
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		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|Mixed Platforms.ActiveCfg = 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.Build.0 = OptimizedDebug|x64
 		{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|x64.ActiveCfg = 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
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
@@ -703,6 +732,7 @@ Global
 		{B280B769-1BA4-42AF-8263-D644A67B4473} = {7E093EC6-24C6-4832-9482-2D8C0551D3B6}
 		{796B6DFF-BA04-42B7-A43A-2B14D707A33A} = {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
 	GlobalSection(SubversionScc) = preSolution
 		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.
 
 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
 
 BansheeFreeImgImporter (optional) relies on:
@@ -67,6 +67,24 @@ BansheePhysX (optional) relies on:
   - https://github.com/NVIDIAGameWorks/PhysX-3.3
   - 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:
  - Library include files in (BansheeRootDir)/Dependencies/(Project)/Include
  - 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;
+	}
+}