freeswitch/w32/sound_tools.props

110 lines
3.7 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets">
<Import Project="basedir.props" Condition=" '$(BaseDirImported)' == ''"/>
</ImportGroup>
<PropertyGroup>
<sounds_dirImported>true</sounds_dirImported>
</PropertyGroup>
<UsingTask TaskName="GetSoundsDirTask"
TaskFactory="CodeTaskFactory"
AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<ParameterGroup>
<SoundsDir ParameterType="System.String" Output="True"/>
</ParameterGroup>
<Task>
<Reference Include="Microsoft.Build" />
<Reference Include="Microsoft.Build.Framework" />
<Code Type="Class" Language="cs">
<![CDATA[
using System;
using System.IO;
using Microsoft.Build.Framework;
public class GetSoundsDirTask : Microsoft.Build.Utilities.Task
{
[Output]
public string SoundsDir { get; set; }
public override bool Execute()
{
/*SoundsDir = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
SoundsDir += "\\FreeSWITCH\\sounds"; */
string platform = (@"$(Platform)" == "x86") ? "Win32" : @"$(Platform)";
SoundsDir = @"$(SolutionDir)" + platform + @"\$(Configuration)\sounds";
Directory.CreateDirectory(SoundsDir);
return true;
}
}
]]>
</Code>
</Task>
</UsingTask>
<Target Name="GetSoundsDirTarget" BeforeTargets="CustomBuild;Build">
<GetSoundsDirTask>
<Output PropertyName="SoundsDir" TaskParameter="SoundsDir" />
</GetSoundsDirTask>
<Message Importance="High" Text="SoundsDir is set to: $(SoundsDir)"/>
</Target>
<UsingTask TaskName="GetSoundFileNameTask"
TaskFactory="CodeTaskFactory"
AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<ParameterGroup>
<SoundPrimaryName Required="true" />
<SoundQuality Required="true" />
<SoundFileName ParameterType="System.String" Output="True"/>
</ParameterGroup>
<Task>
<Reference Include="Microsoft.Build" />
<Reference Include="Microsoft.Build.Framework" />
<Code Type="Class" Language="cs">
<![CDATA[
using System;
using System.IO;
using Microsoft.Build.Framework;
public class GetSoundFileNameTask : Microsoft.Build.Utilities.Task
{
[Required]
public string SoundPrimaryName { get; set; }
public string SoundQuality { get; set; }
[Output]
public string SoundFileName { get; set; }
public override bool Execute()
{
string SoundVersion = "";
string SoundVersionFile = "";
if (SoundPrimaryName == "music") {
SoundVersion = File.ReadAllText(@"$(BaseDir)build/moh_version.txt").Trim();
} else {
foreach (string line in File.ReadLines(@"$(BaseDir)build/sounds_version.txt")) {
var items = line.Split(' ');
if ( items[0] == SoundPrimaryName ) {
SoundVersion = items[1].Trim();
break;
}
}
}
SoundFileName = "freeswitch-sounds-" + SoundPrimaryName + "-" + SoundQuality + "-" + SoundVersion + ".tar.gz";
return true;
}
}
]]>
</Code>
</Task>
</UsingTask>
</Project>