Commit 875309eb authored by Ghislain MARY's avatar Ghislain MARY

Initial skeleton of the Windows Audio Session API sound card plugin for mediastreamer2.

parents
Copyright Belledonne Communications SARL.
This diff is collapsed.
mswasapi - Windows Audio Session sound card plugin for mediastreamer2.
Compile on Windows using Visual Studio 2012.
/*
mswasapi.c
mediastreamer2 library - modular sound and video processing and streaming
Windows Audio Session API sound card plugin for mediastreamer2
Copyright (C) 2010-2013 Belledonne Communications, Grenoble, France
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
of the License, 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 this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include "mediastreamer2/msfilter.h"
/**
* Definition of the private data structure of the WASAPI sound capture filter.
*/
typedef struct _MSWASAPIReadData {
int rate;
int nchannels;
} MSWASAPIReadData;
/******************************************************************************
* Methods to (de)initialize and run the WASAPI sound capture filter *
*****************************************************************************/
static void ms_wasapi_read_init(MSFilter *f) {
MSWASAPIReadData *d = (MSWASAPIReadData *)ms_new(MSWASAPIReadData, 1);
d->rate = 8000;
d->nchannels = 1;
f->data = d;
}
static void ms_wasapi_read_preprocess(MSFilter *f) {
}
static void ms_wasapi_read_process(MSFilter *f) {
}
static void ms_wasapi_read_postprocess(MSFilter *f) {
}
static void ms_wasapi_read_uninit(MSFilter *f) {
MSWASAPIReadData *d = (MSWASAPIReadData *)f->data;
ms_free(d);
}
/******************************************************************************
* Methods to configure the WASAPI sound capture filter *
*****************************************************************************/
static int ms_wasapi_read_set_sample_rate(MSFilter *f, void *arg) {
return 0;
}
static int ms_wasapi_read_get_sample_rate(MSFilter *f, void *arg) {
return 0;
}
static MSFilterMethod ms_wasapi_read_methods[] = {
{ MS_FILTER_SET_SAMPLE_RATE, ms_wasapi_read_set_sample_rate },
{ MS_FILTER_GET_SAMPLE_RATE, ms_wasapi_read_get_sample_rate },
{ 0, NULL }
};
/******************************************************************************
* Definition of the WASAPI sound capture filter *
*****************************************************************************/
#define MS_WASAPI_READ_ID MS_FILTER_PLUGIN_ID
#define MS_WASAPI_READ_NAME "MSWASAPIRead"
#define MS_WASAPI_READ_DESCRIPTION "Windows Audio Session sound capture"
#define MS_WASAPI_READ_CATEGORY MS_FILTER_OTHER
#define MS_WASAPI_READ_ENC_FMT NULL
#define MS_WASAPI_READ_NINPUTS 0
#define MS_WASAPI_READ_NOUTPUTS 1
#define MS_WASAPI_READ_FLAGS 0
#ifndef _MSC_VER
MSFilterDesc ms_wasapi_read_desc = {
.id = MS_WASAPI_READ_ID,
.name = MS_WASAPI_READ_NAME,
.text = MS_WASAPI_READ_DESCRIPTION,
.category = MS_WASAPI_READ_CATEGORY,
.enc_fmt = MS_WASAPI_READ_ENC_FMT,
.ninputs = MS_WASAPI_READ_NINPUTS,
.noutputs = MS_WASAPI_READ_NOUTPUTS,
.init = ms_wasapi_read_init,
.preprocess = ms_wasapi_read_preprocess,
.process = ms_wasapi_read_process,
.postprocess = ms_wasapi_read_postprocess,
.uninit = ms_wasapi_read_uninit,
.methods = ms_wasapi_read_methods,
.flags = MS_WASAPI_READ_FLAGS
};
#else
MSFilterDesc ms_wasapi_read_desc = {
MS_WASAPI_READ_ID,
MS_WASAPI_READ_NAME,
MS_WASAPI_READ_DESCRIPTION,
MS_WASAPI_READ_CATEGORY,
MS_WASAPI_READ_ENC_FMT,
MS_WASAPI_READ_NINPUTS,
MS_WASAPI_READ_NOUTPUTS,
ms_wasapi_read_init,
ms_wasapi_read_preprocess,
ms_wasapi_read_process,
ms_wasapi_read_postprocess,
ms_wasapi_read_uninit,
ms_wasapi_read_methods,
MS_WASAPI_READ_FLAGS
};
#endif
MS_FILTER_DESC_EXPORT(ms_wasapi_read_desc)
/**
* Definition of the private data structure of the WASAPI sound output filter.
*/
typedef struct _MSWASAPIWriteData {
int rate;
int nchannels;
} MSWASAPIWriteData;
/******************************************************************************
* Methods to (de)initialize and run the WASAPI sound output filter *
*****************************************************************************/
static void ms_wasapi_write_init(MSFilter *f) {
MSWASAPIWriteData *d = (MSWASAPIWriteData *)ms_new(MSWASAPIWriteData, 1);
d->rate = 8000;
d->nchannels = 1;
f->data = d;
}
static void ms_wasapi_write_preprocess(MSFilter *f) {
}
static void ms_wasapi_write_process(MSFilter *f) {
}
static void ms_wasapi_write_postprocess(MSFilter *f) {
}
static void ms_wasapi_write_uninit(MSFilter *f) {
MSWASAPIWriteData *d = (MSWASAPIWriteData *)f->data;
ms_free(d);
}
/******************************************************************************
* Methods to configure the WASAPI sound output filter *
*****************************************************************************/
static int ms_wasapi_write_set_sample_rate(MSFilter *f, void *arg) {
return 0;
}
static int ms_wasapi_write_get_sample_rate(MSFilter *f, void *arg) {
return 0;
}
static MSFilterMethod ms_wasapi_write_methods[] = {
{ MS_FILTER_SET_SAMPLE_RATE, ms_wasapi_write_set_sample_rate },
{ MS_FILTER_GET_SAMPLE_RATE, ms_wasapi_write_get_sample_rate },
{ 0, NULL }
};
/******************************************************************************
* Definition of the WASAPI sound output filter *
*****************************************************************************/
#define MS_WASAPI_WRITE_ID MS_FILTER_PLUGIN_ID
#define MS_WASAPI_WRITE_NAME "MSWASAPIWrite"
#define MS_WASAPI_WRITE_DESCRIPTION "Windows Audio Session sound output"
#define MS_WASAPI_WRITE_CATEGORY MS_FILTER_OTHER
#define MS_WASAPI_WRITE_ENC_FMT NULL
#define MS_WASAPI_WRITE_NINPUTS 1
#define MS_WASAPI_WRITE_NOUTPUTS 0
#define MS_WASAPI_WRITE_FLAGS 0
#ifndef _MSC_VER
MSFilterDesc ms_wasapi_write_desc = {
.id = MS_WASAPI_WRITE_ID,
.name = MS_WASAPI_WRITE_NAME,
.text = MS_WASAPI_WRITE_DESCRIPTION,
.category = MS_WASAPI_WRITE_CATEGORY,
.enc_fmt = MS_WASAPI_WRITE_ENC_FMT,
.ninputs = MS_WASAPI_WRITE_NINPUTS,
.noutputs = MS_WASAPI_WRITE_NOUTPUTS,
.init = ms_wasapi_write_init,
.preprocess = ms_wasapi_write_preprocess,
.process = ms_wasapi_write_process,
.postprocess = ms_wasapi_write_postprocess,
.uninit = ms_wasapi_write_uninit,
.methods = ms_wasapi_write_methods,
.flags = MS_WASAPI_WRITE_FLAGS
};
#else
MSFilterDesc ms_wasapi_write_desc = {
MS_WASAPI_WRITE_ID,
MS_WASAPI_WRITE_NAME,
MS_WASAPI_WRITE_DESCRIPTION,
MS_WASAPI_WRITE_CATEGORY,
MS_WASAPI_WRITE_ENC_FMT,
MS_WASAPI_WRITE_NINPUTS,
MS_WASAPI_WRITE_NOUTPUTS,
ms_wasapi_write_init,
ms_wasapi_write_preprocess,
ms_wasapi_write_process,
ms_wasapi_write_postprocess,
ms_wasapi_write_uninit,
ms_wasapi_write_methods,
MS_WASAPI_WRITE_FLAGS
};
#endif
MS_FILTER_DESC_EXPORT(ms_wasapi_write_desc)
#ifdef _MSC_VER
#define MS_PLUGIN_DECLARE(type) __declspec(dllexport) type
#else
#define MS_PLUGIN_DECLARE(type) type
#endif
MS_PLUGIN_DECLARE(void) libmswasapi_init(void) {
ms_filter_register(&ms_wasapi_read_desc);
ms_filter_register(&ms_wasapi_write_desc);
ms_message("libmswasapi plugin loaded");
}

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Express 2012 for Windows Phone
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmswasapi", "mswasapi\mswasapi.vcxproj", "{D22BD217-D0F8-4274-9B3A-F3F35F46482C}"
ProjectSection(ProjectDependencies) = postProject
{027BAD0E-9179-48C1-9733-7AA7E2C2EC70} = {027BAD0E-9179-48C1-9733-7AA7E2C2EC70}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mediastreamer2", "..\..\mediastreamer2-private\build\vsx\mediastreamer2\mediastreamer2\mediastreamer2.vcxproj", "{027BAD0E-9179-48C1-9733-7AA7E2C2EC70}"
ProjectSection(ProjectDependencies) = postProject
{D5EC8C11-C1D9-47E3-BB82-A93C300FD902} = {D5EC8C11-C1D9-47E3-BB82-A93C300FD902}
{FFC7B532-0502-4D88-AC98-9E89071CBC97} = {FFC7B532-0502-4D88-AC98-9E89071CBC97}
{6BD78980-9C71-4341-8775-AD19E9EC7305} = {6BD78980-9C71-4341-8775-AD19E9EC7305}
{746EA080-5BA9-42C5-9E52-EA421C3F3AFD} = {746EA080-5BA9-42C5-9E52-EA421C3F3AFD}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "oRTP", "..\..\ortp\build\vsx\oRTP\oRTP\oRTP.vcxproj", "{FFC7B532-0502-4D88-AC98-9E89071CBC97}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gsm", "..\..\gsm\build\windows\gsm\gsm\gsm.vcxproj", "{746EA080-5BA9-42C5-9E52-EA421C3F3AFD}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "speex", "..\..\speex\build\windows\speex\speex\speex.vcxproj", "{D5EC8C11-C1D9-47E3-BB82-A93C300FD902}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "speexdsp", "..\..\speex\build\windows\speex\speexdsp\speexdsp.vcxproj", "{6BD78980-9C71-4341-8775-AD19E9EC7305}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM = Debug|ARM
Debug|Win32 = Debug|Win32
Release|ARM = Release|ARM
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D22BD217-D0F8-4274-9B3A-F3F35F46482C}.Debug|ARM.ActiveCfg = Debug|ARM
{D22BD217-D0F8-4274-9B3A-F3F35F46482C}.Debug|ARM.Build.0 = Debug|ARM
{D22BD217-D0F8-4274-9B3A-F3F35F46482C}.Debug|Win32.ActiveCfg = Debug|Win32
{D22BD217-D0F8-4274-9B3A-F3F35F46482C}.Debug|Win32.Build.0 = Debug|Win32
{D22BD217-D0F8-4274-9B3A-F3F35F46482C}.Release|ARM.ActiveCfg = Release|ARM
{D22BD217-D0F8-4274-9B3A-F3F35F46482C}.Release|ARM.Build.0 = Release|ARM
{D22BD217-D0F8-4274-9B3A-F3F35F46482C}.Release|Win32.ActiveCfg = Release|Win32
{D22BD217-D0F8-4274-9B3A-F3F35F46482C}.Release|Win32.Build.0 = Release|Win32
{027BAD0E-9179-48C1-9733-7AA7E2C2EC70}.Debug|ARM.ActiveCfg = Debug|ARM
{027BAD0E-9179-48C1-9733-7AA7E2C2EC70}.Debug|ARM.Build.0 = Debug|ARM
{027BAD0E-9179-48C1-9733-7AA7E2C2EC70}.Debug|Win32.ActiveCfg = Debug|Win32
{027BAD0E-9179-48C1-9733-7AA7E2C2EC70}.Debug|Win32.Build.0 = Debug|Win32
{027BAD0E-9179-48C1-9733-7AA7E2C2EC70}.Release|ARM.ActiveCfg = Release|ARM
{027BAD0E-9179-48C1-9733-7AA7E2C2EC70}.Release|ARM.Build.0 = Release|ARM
{027BAD0E-9179-48C1-9733-7AA7E2C2EC70}.Release|Win32.ActiveCfg = Release|Win32
{027BAD0E-9179-48C1-9733-7AA7E2C2EC70}.Release|Win32.Build.0 = Release|Win32
{FFC7B532-0502-4D88-AC98-9E89071CBC97}.Debug|ARM.ActiveCfg = Debug|ARM
{FFC7B532-0502-4D88-AC98-9E89071CBC97}.Debug|ARM.Build.0 = Debug|ARM
{FFC7B532-0502-4D88-AC98-9E89071CBC97}.Debug|Win32.ActiveCfg = Debug|Win32
{FFC7B532-0502-4D88-AC98-9E89071CBC97}.Debug|Win32.Build.0 = Debug|Win32
{FFC7B532-0502-4D88-AC98-9E89071CBC97}.Release|ARM.ActiveCfg = Release|ARM
{FFC7B532-0502-4D88-AC98-9E89071CBC97}.Release|ARM.Build.0 = Release|ARM
{FFC7B532-0502-4D88-AC98-9E89071CBC97}.Release|Win32.ActiveCfg = Release|Win32
{FFC7B532-0502-4D88-AC98-9E89071CBC97}.Release|Win32.Build.0 = Release|Win32
{746EA080-5BA9-42C5-9E52-EA421C3F3AFD}.Debug|ARM.ActiveCfg = Debug|ARM
{746EA080-5BA9-42C5-9E52-EA421C3F3AFD}.Debug|ARM.Build.0 = Debug|ARM
{746EA080-5BA9-42C5-9E52-EA421C3F3AFD}.Debug|Win32.ActiveCfg = Debug|Win32
{746EA080-5BA9-42C5-9E52-EA421C3F3AFD}.Debug|Win32.Build.0 = Debug|Win32
{746EA080-5BA9-42C5-9E52-EA421C3F3AFD}.Release|ARM.ActiveCfg = Release|ARM
{746EA080-5BA9-42C5-9E52-EA421C3F3AFD}.Release|ARM.Build.0 = Release|ARM
{746EA080-5BA9-42C5-9E52-EA421C3F3AFD}.Release|Win32.ActiveCfg = Release|Win32
{746EA080-5BA9-42C5-9E52-EA421C3F3AFD}.Release|Win32.Build.0 = Release|Win32
{D5EC8C11-C1D9-47E3-BB82-A93C300FD902}.Debug|ARM.ActiveCfg = Debug|ARM
{D5EC8C11-C1D9-47E3-BB82-A93C300FD902}.Debug|ARM.Build.0 = Debug|ARM
{D5EC8C11-C1D9-47E3-BB82-A93C300FD902}.Debug|Win32.ActiveCfg = Debug|Win32
{D5EC8C11-C1D9-47E3-BB82-A93C300FD902}.Debug|Win32.Build.0 = Debug|Win32
{D5EC8C11-C1D9-47E3-BB82-A93C300FD902}.Release|ARM.ActiveCfg = Release|ARM
{D5EC8C11-C1D9-47E3-BB82-A93C300FD902}.Release|ARM.Build.0 = Release|ARM
{D5EC8C11-C1D9-47E3-BB82-A93C300FD902}.Release|Win32.ActiveCfg = Release|Win32
{D5EC8C11-C1D9-47E3-BB82-A93C300FD902}.Release|Win32.Build.0 = Release|Win32
{6BD78980-9C71-4341-8775-AD19E9EC7305}.Debug|ARM.ActiveCfg = Debug|ARM
{6BD78980-9C71-4341-8775-AD19E9EC7305}.Debug|ARM.Build.0 = Debug|ARM
{6BD78980-9C71-4341-8775-AD19E9EC7305}.Debug|Win32.ActiveCfg = Debug|Win32
{6BD78980-9C71-4341-8775-AD19E9EC7305}.Debug|Win32.Build.0 = Debug|Win32
{6BD78980-9C71-4341-8775-AD19E9EC7305}.Release|ARM.ActiveCfg = Release|ARM
{6BD78980-9C71-4341-8775-AD19E9EC7305}.Release|ARM.Build.0 = Release|ARM
{6BD78980-9C71-4341-8775-AD19E9EC7305}.Release|Win32.ActiveCfg = Release|Win32
{6BD78980-9C71-4341-8775-AD19E9EC7305}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
<?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="Debug|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{d22bd217-d0f8-4274-9b3a-f3f35f46482c}</ProjectGuid>
<RootNamespace>mswasapi</RootNamespace>
<DefaultLanguage>en-US</DefaultLanguage>
<MinimumVisualStudioVersion>11.0</MinimumVisualStudioVersion>
<ProjectName>libmswasapi</ProjectName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v110_wp80</PlatformToolset>
<IgnoreImportLibrary>false</IgnoreImportLibrary>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v110_wp80</PlatformToolset>
<IgnoreImportLibrary>false</IgnoreImportLibrary>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v110_wp80</PlatformToolset>
<IgnoreImportLibrary>false</IgnoreImportLibrary>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v110_wp80</PlatformToolset>
<IgnoreImportLibrary>false</IgnoreImportLibrary>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup 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>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(TargetName)\</IntDir>
</PropertyGroup>
<PropertyGroup>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<AdditionalIncludeDirectories>$(SolutionDir)$(Platform)\$(Configuration)\include;$(SolutionDir)..\..\ortp\include;$(SolutionDir)..\..\mediastreamer2-private\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<CompileAsWinRT>false</CompileAsWinRT>
<AdditionalUsingDirectories>$(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>ws2_32.lib;ortp_dll.lib;mediastreamer2_dll.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ImportLibrary>$(TargetDir)$(TargetName)_dll.lib</ImportLibrary>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>$(SolutionDir)$(Platform)\$(Configuration)\include;$(SolutionDir)..\..\ortp\include;$(SolutionDir)..\..\mediastreamer2-private\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<CompileAsWinRT>false</CompileAsWinRT>
<AdditionalUsingDirectories>$(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
<GenerateDebugInformation>false</GenerateDebugInformation>
<AdditionalDependencies>ws2_32.lib;ortp_dll.lib;mediastreamer2_dll.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ImportLibrary>$(TargetDir)$(TargetName)_dll.lib</ImportLibrary>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<AdditionalIncludeDirectories>$(SolutionDir)$(Platform)\$(Configuration)\include;$(SolutionDir)..\..\ortp\include;$(SolutionDir)..\..\mediastreamer2-private\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<CompileAsWinRT>false</CompileAsWinRT>
<AdditionalUsingDirectories>$(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>ws2_32.lib;ortp_dll.lib;mediastreamer2_dll.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ImportLibrary>$(TargetDir)$(TargetName)_dll.lib</ImportLibrary>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>$(SolutionDir)$(Platform)\$(Configuration)\include;$(SolutionDir)..\..\ortp\include;$(SolutionDir)..\..\mediastreamer2-private\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<CompileAsWinRT>false</CompileAsWinRT>
<AdditionalUsingDirectories>$(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
<GenerateDebugInformation>false</GenerateDebugInformation>
<AdditionalDependencies>ws2_32.lib;ortp_dll.lib;mediastreamer2_dll.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ImportLibrary>$(TargetDir)$(TargetName)_dll.lib</ImportLibrary>
</Link>
</ItemDefinitionGroup>
<ItemGroup Condition="'$(Platform)'=='ARM'">
<Reference Include="Windows">
<IsWinMDFile>true</IsWinMDFile>
</Reference>
<Reference Include="platform.winmd">
<IsWinMDFile>true</IsWinMDFile>
<Private>false</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\mswasapi.c" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsPhone\v$(TargetPlatformVersion)\Microsoft.Cpp.WindowsPhone.$(TargetPlatformVersion).targets" Condition="'$(Platform)'=='ARM'" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment