From 0aab549821d35ee83b1d83f288b124a950a26e8e Mon Sep 17 00:00:00 2001
From: Michael Jerris <mike@jerris.com>
Date: Wed, 19 Apr 2006 19:53:06 +0000
Subject: [PATCH] add mod_ilbc

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1203 d0543943-73ff-0310-b7d9-9358b9ac24b2
---
 src/mod/codecs/mod_ilbc/mod_ilbc.c      |  8 +++++---
 src/mod/codecs/mod_ilbc/mod_ilbc.vcproj |  4 ++--
 w32/vsnet/Freeswitch.sln                |  4 +++-
 w32/vsnet/GetLibs.vbs                   | 27 +++++++++++++++++++++++++
 4 files changed, 37 insertions(+), 6 deletions(-)

diff --git a/src/mod/codecs/mod_ilbc/mod_ilbc.c b/src/mod/codecs/mod_ilbc/mod_ilbc.c
index b32360e0b6..fe3f889358 100644
--- a/src/mod/codecs/mod_ilbc/mod_ilbc.c
+++ b/src/mod/codecs/mod_ilbc/mod_ilbc.c
@@ -112,7 +112,8 @@ static switch_status switch_ilbc_encode(switch_codec *codec,
 		unsigned int new_len = 0;
 		unsigned char *edp = encoded_data;
 		short *ddp = decoded_data;
-		int x, y;
+		int x;
+		uint16_t y;
 		int loops = (int) decoded_data_len / context->dbytes;
 		float buf[240];
 
@@ -155,7 +156,8 @@ static switch_status switch_ilbc_decode(switch_codec *codec,
 		int loops = (int) encoded_data_len / context->bytes;
 		unsigned char *edp = encoded_data;
 		short *ddp = decoded_data;
-		int x,y;
+		int x;
+		uint16_t y;
 		unsigned int new_len = 0;
 		float buf[240];
 
@@ -163,7 +165,7 @@ static switch_status switch_ilbc_decode(switch_codec *codec,
 		for (x = 0; x < loops && new_len < *decoded_data_len; x++) {
 			iLBC_decode(buf, edp, &context->decoder, 1);
 			for(y = 0; y < context->dbytes / sizeof(short) ; y++) {
-				ddp[y] = buf[y];
+				ddp[y] = (short)buf[y];
 			}
 			ddp += context->dbytes / sizeof(short);
 			edp += context->bytes;
diff --git a/src/mod/codecs/mod_ilbc/mod_ilbc.vcproj b/src/mod/codecs/mod_ilbc/mod_ilbc.vcproj
index b5ca5e2fd2..1800d14d24 100644
--- a/src/mod/codecs/mod_ilbc/mod_ilbc.vcproj
+++ b/src/mod/codecs/mod_ilbc/mod_ilbc.vcproj
@@ -25,7 +25,7 @@
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
-				CommandLine="cscript /nologo $(InputDir)..\..\..\..\w32\vsnet\getlibs.vbs Mod_Codecilbc Debug"
+				CommandLine="cscript /nologo $(InputDir)..\..\..\..\w32\vsnet\getlibs.vbs Mod_ilbc Debug"
 			/>
 			<Tool
 				Name="VCCustomBuildTool"
@@ -108,7 +108,7 @@
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
-				CommandLine="cscript /nologo $(InputDir)..\..\..\..\w32\vsnet\getlibs.vbs Mod_Codecilbc Release"
+				CommandLine="cscript /nologo $(InputDir)..\..\..\..\w32\vsnet\getlibs.vbs Mod_ilbc Release"
 			/>
 			<Tool
 				Name="VCCustomBuildTool"
diff --git a/w32/vsnet/Freeswitch.sln b/w32/vsnet/Freeswitch.sln
index ad7b0fe94d..8433e2ae64 100644
--- a/w32/vsnet/Freeswitch.sln
+++ b/w32/vsnet/Freeswitch.sln
@@ -151,8 +151,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Languages", "Languages", "{
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey", "..\..\src\mod\languages\mod_spidermonkey\mod_spidermonkey.vcproj", "{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}"
 	ProjectSection(ProjectDependencies) = postProject
-		{89385C74-5860-4174-9CAF-A39E7C48909C} = {89385C74-5860-4174-9CAF-A39E7C48909C}
 		{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+		{89385C74-5860-4174-9CAF-A39E7C48909C} = {89385C74-5860-4174-9CAF-A39E7C48909C}
 	EndProjectSection
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ASR-TTS", "ASR-TTS", "{4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}"
@@ -326,7 +326,9 @@ Global
 		{0E2C6395-13B9-46E5-9264-8859D346018D}.Release|Win32.ActiveCfg = Release|Win32
 		{0E2C6395-13B9-46E5-9264-8859D346018D}.Release|Win32.Build.0 = Release|Win32
 		{D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|Win32.ActiveCfg = Debug|Win32
+		{D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|Win32.Build.0 = Debug|Win32
 		{D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release|Win32.ActiveCfg = Release|Win32
+		{D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release|Win32.Build.0 = Release|Win32
 		{FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|Win32.ActiveCfg = Debug|Win32
 		{FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|Win32.Build.0 = Debug|Win32
 		{FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release|Win32.ActiveCfg = Release|Win32
diff --git a/w32/vsnet/GetLibs.vbs b/w32/vsnet/GetLibs.vbs
index d4fb2603c4..208e998127 100644
--- a/w32/vsnet/GetLibs.vbs
+++ b/w32/vsnet/GetLibs.vbs
@@ -21,6 +21,7 @@ BuildModPortAudio=False
 BuildModSpeexCodec=False
 BuildModCodecG729=False
 BuildModCodecGSM=False
+BuildModilbc=False
 BuildModXMPPEvent=False
 BuildModsndfile=False
 BuildModpcre=False
@@ -82,6 +83,8 @@ If objArgs.Count >=1 Then
 			BuildModCodecG729=True
 		Case "Mod_CodecGSM"
 			BuildModCodecGSM=True
+		Case "Mod_ilbc"
+			BuildModilbc=True
 		Case "Mod_XMPPEvent"
 			BuildModXMPPEvent=True
 		Case "Mod_sndfile"
@@ -111,6 +114,7 @@ If objArgs.Count >=1 Then
 			BuildModzeroconf=True
 			BuildModSpiderMonkey=True
 			BuildModDingaling=True
+			BuildModilbc=True
 	End Select
 Else
 	BuildCore=True
@@ -127,6 +131,7 @@ Else
 	BuildModzeroconf=True
 	BuildModSpiderMonkey=True
 	BuildModDingaling=True
+	BuildModilbc=True
 End If
 
 ' ******************
@@ -201,6 +206,10 @@ If BuildModCodecGSM Then
 	BuildLibs_libgsm BuildDebug, BuildRelease
 End If
 
+If BuildModilbc Then
+	BuildLibs_libilbc BuildDebug, BuildRelease
+End If
+
 If BuildModXMPPEvent Then
 	BuildLibs_iksemel BuildDebug, BuildRelease
 End If
@@ -567,6 +576,24 @@ Sub BuildLibs_libgsm(BuildDebug, BuildRelease)
 	End If 
 End Sub
 
+
+Sub BuildLibs_libilbc(BuildDebug, BuildRelease)
+	If FSO.FolderExists(LibDestDir & "codec\ilbc") Then 
+		If BuildDebug Then
+			If Not FSO.FileExists(LibDestDir & "codec\ilbc\Debug\libilbc.lib") Then 
+				BuildViaVCBuild LibDestDir & "codec\ilbc\libilbc.vcproj", "Debug"
+			End If
+		End If
+		If BuildRelease Then
+			If Not FSO.FileExists(LibDestDir & "codec\ilbc\Release\libilbc.lib") Then 
+				BuildViaVCBuild LibDestDir & "codec\ilbc\libilbc.vcproj", "Release"
+			End If
+		End If
+	Else
+		Wscript.echo "Unable to download libilbc"
+	End If 
+End Sub
+
 Sub BuildLibs_SpeexCodec(BuildDebug, BuildRelease)
 	If Not FSO.FolderExists(LibDestDir & "speex") Then 
 		WgetUnCompress "http://downloads.us.xiph.org/releases/speex/speex-1.1.11.1.tar.gz", LibDestDir