You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(68) |
Jul
(27) |
Aug
(1) |
Sep
(9) |
Oct
(16) |
Nov
(64) |
Dec
(18) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(11) |
Feb
(5) |
Mar
(20) |
Apr
(9) |
May
(8) |
Jun
(8) |
Jul
(2) |
Aug
|
Sep
(11) |
Oct
(34) |
Nov
(23) |
Dec
(34) |
2005 |
Jan
(41) |
Feb
(25) |
Mar
(25) |
Apr
(32) |
May
(27) |
Jun
(9) |
Jul
(36) |
Aug
(6) |
Sep
(3) |
Oct
(11) |
Nov
(2) |
Dec
(21) |
2006 |
Jan
(14) |
Feb
(8) |
Mar
(18) |
Apr
(6) |
May
|
Jun
(17) |
Jul
(14) |
Aug
(26) |
Sep
(34) |
Oct
(24) |
Nov
(48) |
Dec
(64) |
2007 |
Jan
(72) |
Feb
(21) |
Mar
(50) |
Apr
(41) |
May
(35) |
Jun
(50) |
Jul
(33) |
Aug
(32) |
Sep
(50) |
Oct
(85) |
Nov
(43) |
Dec
(33) |
2008 |
Jan
(10) |
Feb
(29) |
Mar
(15) |
Apr
(45) |
May
(5) |
Jun
(2) |
Jul
(14) |
Aug
(3) |
Sep
|
Oct
|
Nov
(3) |
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
(9) |
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <sb...@us...> - 2007-10-10 15:10:43
|
Revision: 1186 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1186&view=rev Author: sbalea Date: 2007-10-10 08:10:47 -0700 (Wed, 10 Oct 2007) Log Message: ----------- Do not depend on internal APIs in stresstest This works on Linux but fails on Mac. Modified Paths: -------------- trunk/simpleclient/stresstest/stresstest.c Modified: trunk/simpleclient/stresstest/stresstest.c =================================================================== --- trunk/simpleclient/stresstest/stresstest.c 2007-10-09 16:02:48 UTC (rev 1185) +++ trunk/simpleclient/stresstest/stresstest.c 2007-10-10 15:10:47 UTC (rev 1186) @@ -223,6 +223,11 @@ return 0; } +long msecdiff(struct timeval *t0, struct timeval *t1) +{ + return (t1->tv_sec - t0->tv_sec) * 1000L + (t1->tv_usec - t0->tv_usec) / 1000L; +} + int main(int argc, char **argv) { int i; @@ -329,7 +334,7 @@ while ( !call_established ) { gettimeofday(&now, NULL); - if ( timeout > 0 && iaxci_msecdiff(&now, &start_time) > timeout ) + if ( timeout > 0 && msecdiff(&start_time, &now) > timeout ) hangup_and_exit(TEST_NO_CONNECTION); iaxc_millisleep(5); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sb...@us...> - 2007-10-09 16:02:46
|
Revision: 1185 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1185&view=rev Author: sbalea Date: 2007-10-09 09:02:48 -0700 (Tue, 09 Oct 2007) Log Message: ----------- Synchronize with trunk rev 1184 Revision Links: -------------- http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1184&view=rev Modified Paths: -------------- branches/team/mihai/echocan/contrib/win/vs2005/iaxclient.sln branches/team/mihai/echocan/contrib/win/vs2005/libiaxclient.vcproj branches/team/mihai/echocan/lib/audio_encode.c branches/team/mihai/echocan/lib/audio_portaudio.c branches/team/mihai/echocan/lib/iaxclient.h branches/team/mihai/echocan/lib/iaxclient_lib.c branches/team/mihai/echocan/lib/libiax2/src/iax.c branches/team/mihai/echocan/lib/video.c branches/team/mihai/echocan/simpleclient/stresstest/stresstest.c branches/team/mihai/echocan/simpleclient/testcall/testcall.c Added Paths: ----------- branches/team/mihai/echocan/contrib/win/vs2005/testcall.vcproj Removed Paths: ------------- branches/team/mihai/echocan/simpleclient/testcall/testcall.vcproj Modified: branches/team/mihai/echocan/contrib/win/vs2005/iaxclient.sln =================================================================== --- branches/team/mihai/echocan/contrib/win/vs2005/iaxclient.sln 2007-10-08 23:02:47 UTC (rev 1184) +++ branches/team/mihai/echocan/contrib/win/vs2005/iaxclient.sln 2007-10-09 16:02:48 UTC (rev 1185) @@ -9,14 +9,14 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libiaxclient", "libiaxclient.vcproj", "{9A9C003E-EAF6-4D0E-896F-E3994503C7E4}" ProjectSection(ProjectDependencies) = postProject + {3B023516-2C69-4CCB-9302-239991B6EC2C} = {3B023516-2C69-4CCB-9302-239991B6EC2C} + {BE15A94D-3766-4693-ABA8-5FBAACBBCC08} = {BE15A94D-3766-4693-ABA8-5FBAACBBCC08} + {82C9BD79-9796-405F-8A28-3F538514AC3A} = {82C9BD79-9796-405F-8A28-3F538514AC3A} + {3A76129B-55AB-4D54-BAA7-08F63ED52569} = {3A76129B-55AB-4D54-BAA7-08F63ED52569} + {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E} = {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E} + {2F463562-375D-481E-A6E0-7C7D0DC1ED7A} = {2F463562-375D-481E-A6E0-7C7D0DC1ED7A} + {E972C52F-9E85-4D65-B19C-031E511E9DB4} = {E972C52F-9E85-4D65-B19C-031E511E9DB4} {E2C6AD95-7A61-41FE-8754-A4623C891BF8} = {E2C6AD95-7A61-41FE-8754-A4623C891BF8} - {E972C52F-9E85-4D65-B19C-031E511E9DB4} = {E972C52F-9E85-4D65-B19C-031E511E9DB4} - {2F463562-375D-481E-A6E0-7C7D0DC1ED7A} = {2F463562-375D-481E-A6E0-7C7D0DC1ED7A} - {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E} = {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E} - {3A76129B-55AB-4D54-BAA7-08F63ED52569} = {3A76129B-55AB-4D54-BAA7-08F63ED52569} - {82C9BD79-9796-405F-8A28-3F538514AC3A} = {82C9BD79-9796-405F-8A28-3F538514AC3A} - {BE15A94D-3766-4693-ABA8-5FBAACBBCC08} = {BE15A94D-3766-4693-ABA8-5FBAACBBCC08} - {3B023516-2C69-4CCB-9302-239991B6EC2C} = {3B023516-2C69-4CCB-9302-239991B6EC2C} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libiax2", "libiax2.vcproj", "{5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}" @@ -29,6 +29,11 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtheora", "libtheora.vcproj", "{E2C6AD95-7A61-41FE-8754-A4623C891BF8}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testcall", "testcall.vcproj", "{6F5AEE93-BA87-465B-BC75-C41C434FC4E4}" + ProjectSection(ProjectDependencies) = postProject + {9A9C003E-EAF6-4D0E-896F-E3994503C7E4} = {9A9C003E-EAF6-4D0E-896F-E3994503C7E4} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug_dll|Win32 = Debug_dll|Win32 @@ -109,6 +114,14 @@ {E2C6AD95-7A61-41FE-8754-A4623C891BF8}.Release_dll|Win32.Build.0 = Release|Win32 {E2C6AD95-7A61-41FE-8754-A4623C891BF8}.Release|Win32.ActiveCfg = Release|Win32 {E2C6AD95-7A61-41FE-8754-A4623C891BF8}.Release|Win32.Build.0 = Release|Win32 + {6F5AEE93-BA87-465B-BC75-C41C434FC4E4}.Debug_dll|Win32.ActiveCfg = Debug|Win32 + {6F5AEE93-BA87-465B-BC75-C41C434FC4E4}.Debug_dll|Win32.Build.0 = Debug|Win32 + {6F5AEE93-BA87-465B-BC75-C41C434FC4E4}.Debug|Win32.ActiveCfg = Debug|Win32 + {6F5AEE93-BA87-465B-BC75-C41C434FC4E4}.Debug|Win32.Build.0 = Debug|Win32 + {6F5AEE93-BA87-465B-BC75-C41C434FC4E4}.Release_dll|Win32.ActiveCfg = Release|Win32 + {6F5AEE93-BA87-465B-BC75-C41C434FC4E4}.Release_dll|Win32.Build.0 = Release|Win32 + {6F5AEE93-BA87-465B-BC75-C41C434FC4E4}.Release|Win32.ActiveCfg = Release|Win32 + {6F5AEE93-BA87-465B-BC75-C41C434FC4E4}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE Modified: branches/team/mihai/echocan/contrib/win/vs2005/libiaxclient.vcproj =================================================================== --- branches/team/mihai/echocan/contrib/win/vs2005/libiaxclient.vcproj 2007-10-08 23:02:47 UTC (rev 1184) +++ branches/team/mihai/echocan/contrib/win/vs2005/libiaxclient.vcproj 2007-10-09 16:02:48 UTC (rev 1185) @@ -59,7 +59,7 @@ /> <Tool Name="VCLibrarianTool" - AdditionalDependencies="libiax2.lib libvideolib.lib libportmixer.lib libportaudio.lib libgsm.lib libogg.lib libspeex.lib libtheora.lib comsuppw.lib strmiids.lib wininet.lib ws2_32.lib" + AdditionalDependencies="libiax2.lib libvideolib.lib libportmixer.lib libportaudio.lib libgsm.lib libogg.lib libspeex.lib libtheora.lib comsuppw.lib strmiids.lib wininet.lib" AdditionalLibraryDirectories=""$(SolutionDir)$(ConfigurationName)\libiax2";"$(SolutionDir)$(ConfigurationName)\libvideolib";"$(SolutionDir)$(ConfigurationName)\libportaudio";"$(SolutionDir)$(ConfigurationName)\libportmixer";"$(SolutionDir)$(ConfigurationName)\libogg";"$(SolutionDir)$(ConfigurationName)\libtheora";"$(SolutionDir)$(ConfigurationName)\libspeex";"$(SolutionDir)$(ConfigurationName)\libgsm"" /> <Tool @@ -122,7 +122,7 @@ /> <Tool Name="VCLibrarianTool" - AdditionalDependencies="libiax2.lib libvideolib.lib libportmixer.lib libportaudio.lib libgsm.lib libogg.lib libspeex.lib libtheora.lib comsuppw.lib strmiids.lib wininet.lib ws2_32.lib" + AdditionalDependencies="libiax2.lib libvideolib.lib libportmixer.lib libportaudio.lib libgsm.lib libogg.lib libspeex.lib libtheora.lib comsuppw.lib strmiids.lib wininet.lib" AdditionalLibraryDirectories=""$(SolutionDir)$(ConfigurationName)\libiax2";"$(SolutionDir)$(ConfigurationName)\libvideolib";"$(SolutionDir)$(ConfigurationName)\libportaudio";"$(SolutionDir)$(ConfigurationName)\libportmixer";"$(SolutionDir)$(ConfigurationName)\libogg";"$(SolutionDir)$(ConfigurationName)\libtheora";"$(SolutionDir)$(ConfigurationName)\libspeex";"$(SolutionDir)$(ConfigurationName)\libgsm"" /> <Tool @@ -368,6 +368,10 @@ > </File> <File + RelativePath="..\..\..\lib\slice.c" + > + </File> + <File RelativePath="..\..\..\lib\video.c" > </File> @@ -430,6 +434,10 @@ > </File> <File + RelativePath="..\..\..\lib\slice.h" + > + </File> + <File RelativePath="..\..\..\lib\video.h" > </File> Copied: branches/team/mihai/echocan/contrib/win/vs2005/testcall.vcproj (from rev 1184, trunk/contrib/win/vs2005/testcall.vcproj) =================================================================== --- branches/team/mihai/echocan/contrib/win/vs2005/testcall.vcproj (rev 0) +++ branches/team/mihai/echocan/contrib/win/vs2005/testcall.vcproj 2007-10-09 16:02:48 UTC (rev 1185) @@ -0,0 +1,206 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8.00" + Name="testcall" + ProjectGUID="{6F5AEE93-BA87-465B-BC75-C41C434FC4E4}" + RootNamespace="testcall" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="$(SolutionDir)$(ConfigurationName)\$(ProjectName)" + IntermediateDirectory="$(OutDir)" + ConfigurationType="1" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..\..\..\lib" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + CompileAs="1" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="libiaxclient.lib ws2_32.lib" + LinkIncremental="2" + AdditionalLibraryDirectories="$(SolutionDir)$(ConfigurationName)\libiaxclient" + IgnoreDefaultLibraryNames="libcmtd.lib" + GenerateDebugInformation="true" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="$(SolutionDir)$(ConfigurationName)\$(ProjectName)" + IntermediateDirectory="$(OutDir)" + ConfigurationType="1" + CharacterSet="2" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="..\..\..\lib" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + RuntimeLibrary="2" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + CompileAs="1" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + IgnoreImportLibrary="false" + AdditionalDependencies="libiaxclient.lib ws2_32.lib" + LinkIncremental="1" + AdditionalLibraryDirectories="$(SolutionDir)$(ConfigurationName)\libiaxclient" + IgnoreDefaultLibraryNames="" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" + > + <File + RelativePath="..\..\..\simpleclient\testcall\testcall.c" + > + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl;inc;xsd" + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" + > + </Filter> + <Filter + Name="Resource Files" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" + UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" + > + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Modified: branches/team/mihai/echocan/lib/audio_encode.c =================================================================== --- branches/team/mihai/echocan/lib/audio_encode.c 2007-10-08 23:02:47 UTC (rev 1184) +++ branches/team/mihai/echocan/lib/audio_encode.c 2007-10-09 16:02:48 UTC (rev 1185) @@ -71,8 +71,8 @@ { /* avoid calling log10() on zero which yields inf or * negative numbers which yield nan */ - if ( vol <= 0.0 ) - return -99.9; + if ( vol <= 0.0f ) + return -99.9f; else return log10f(vol) * 20; } Modified: branches/team/mihai/echocan/lib/audio_portaudio.c =================================================================== --- branches/team/mihai/echocan/lib/audio_portaudio.c 2007-10-08 23:02:47 UTC (rev 1184) +++ branches/team/mihai/echocan/lib/audio_portaudio.c 2007-10-09 16:02:48 UTC (rev 1185) @@ -106,6 +106,7 @@ static int auxStream; static int virtualMonoIn; static int virtualMonoOut; +static int virtualMonoRing; static int running; @@ -202,12 +203,12 @@ } } -static void mix_slin(short *dst, short *src, int samples) +static void mix_slin(short *dst, short *src, int samples, int virtualMono) { int i=0,val=0; for ( i=0; i < samples; i++ ) { - if ( virtualMonoOut ) + if ( virtualMono ) val = ((short *)dst)[2*i] + ((short *)src)[i]; else val = ((short *)dst)[i] + ((short *)src)[i]; @@ -220,7 +221,7 @@ val = -0x7fff+1; } - if ( virtualMonoOut ) + if ( virtualMono ) { dst[2*i] = val; dst[2*i+1] = val; @@ -232,7 +233,7 @@ } } -static int pa_mix_sounds (void *outputBuffer, unsigned long frames, int channel) +static int pa_mix_sounds (void *outputBuffer, unsigned long frames, int channel, int virtualMono) { struct iaxc_sound *s; struct iaxc_sound **sp; @@ -280,7 +281,7 @@ /* mix in the frames */ mix_slin((short *)outputBuffer + outpos, - s->data+s->pos, n); + s->data+s->pos, n, virtualMono); s->pos += n; outpos += n; @@ -396,10 +397,10 @@ /* zero underflowed space [ silence might be more golden * than garbage? ] */ - pa_mix_sounds(outputBuffer, samplesPerFrame, 0); + pa_mix_sounds(outputBuffer, samplesPerFrame, 0, virtualMonoOut); if(!auxStream) - pa_mix_sounds(outputBuffer, samplesPerFrame, 1); + pa_mix_sounds(outputBuffer, samplesPerFrame, 1, virtualMonoOut); } @@ -433,13 +434,12 @@ PaStreamCallbackFlags statusFlags, void *userData) { - int totBytes = samplesPerFrame * sizeof(SAMPLE); + int totBytes = samplesPerFrame * sizeof(SAMPLE) * (virtualMonoRing + 1); - /* XXX: need to handle virtualMonoOut case!!! */ if ( outputBuffer ) { memset((char *)outputBuffer, 0, totBytes); - pa_mix_sounds(outputBuffer, samplesPerFrame, 1); + pa_mix_sounds(outputBuffer, samplesPerFrame, 1, virtualMonoRing); } return 0; } @@ -578,36 +578,20 @@ { PaError err; - /* FEEDBACK - iaxclient seems to assume that the ring device is a - * mono device. I can't find any mono devices on the Mac and so - * ring device opening will fail. My code assumes the ring device - * is a stereo device - this might break stuff */ - struct PaStreamParameters ring_stream_params, no_device; + struct PaStreamParameters ring_stream_params; - struct PaStreamParameters in_stream_params; - in_stream_params.device = selectedInput; - in_stream_params.channelCount = virtualMonoOut + 1; - in_stream_params.sampleFormat = paInt16; - in_stream_params.suggestedLatency = - Pa_GetDeviceInfo(selectedInput)->defaultLowInputLatency; - in_stream_params.hostApiSpecificStreamInfo = NULL; - + // setup the ring parameters ring_stream_params.device = selectedRing; - ring_stream_params.channelCount = virtualMonoOut+1; ring_stream_params.sampleFormat = paInt16; ring_stream_params.suggestedLatency = Pa_GetDeviceInfo(selectedRing)->defaultLowOutputLatency; ring_stream_params.hostApiSpecificStreamInfo = NULL; - no_device.device = paNoDevice; - no_device.channelCount = 0; - no_device.sampleFormat = paInt16; - no_device.suggestedLatency = - Pa_GetDeviceInfo(selectedInput)->defaultLowInputLatency; //TODOC - no_device.hostApiSpecificStreamInfo = NULL; + // first we'll try mono + ring_stream_params.channelCount = 1; - err = Pa_OpenStream ( &aStream, - &in_stream_params, + err = Pa_OpenStream(&aStream, + NULL, &ring_stream_params, iaxci_sample_rate, paFramesPerBufferUnspecified, //FEEBACK - unsure if appropriate @@ -617,14 +601,15 @@ if ( err != paNoError ) { - /* FEEDBACK, we try one more time, maybe ring device is a mono - * output device */ - err = Pa_OpenStream ( &aStream, - &no_device, + // next we'll try virtual mono (stereo) + ring_stream_params.channelCount = 1; + + err = Pa_OpenStream(&aStream, + NULL, &ring_stream_params, iaxci_sample_rate, paFramesPerBufferUnspecified, //FEEBACK - unsure if appropriate - paNoFlag, /* flags */ + paNoFlag, (PaStreamCallback *)pa_aux_callback, NULL); } @@ -632,13 +617,16 @@ // mmok, failure... if ( err != paNoError ) { - //fprintf(stderr, "Failure opening ring device with params: id: %d, output %d, default output %d\n", - //selectedRing, selectedOutput, Pa_GetDefaultOutputDevice()); + // fprintf(stderr, "Failure opening ring device with params: id: %d, output %d, default output %d\n", + // selectedRing, selectedOutput, Pa_GetDefaultOutputDevice()); handle_paerror(err, "opening separate ring stream"); return -1; } + // Determine whether virtual mono is being used + virtualMonoRing = ring_stream_params.channelCount - 1; + return 0; } @@ -665,7 +653,8 @@ if ( errcnt > 5 ) { iaxci_usermsg(IAXC_TEXT_TYPE_FATALERROR, - "iaxclient audio: Can't open Audio Device. Perhaps you do not have an input or output device?"); + "iaxclient audio: Can't open Audio Device. " + "Perhaps you do not have an input or output device?"); /* OK, we'll give the application the option to abort or * not here, but we will throw a fatal error anyway */ iaxc_millisleep(1000); Modified: branches/team/mihai/echocan/lib/iaxclient.h =================================================================== --- branches/team/mihai/echocan/lib/iaxclient.h 2007-10-08 23:02:47 UTC (rev 1184) +++ branches/team/mihai/echocan/lib/iaxclient.h 2007-10-09 16:02:48 UTC (rev 1185) @@ -22,7 +22,7 @@ #ifdef __cplusplus extern "C" { #endif - + /*! \file iaxclient.h \brief The IAXClient API @@ -635,7 +635,7 @@ \return The UDP port bound to; -1 if no port or */ -EXPORT short iaxc_get_bind_port(); +EXPORT int iaxc_get_bind_port(); /*! Initializes the IAXClient library @@ -764,6 +764,12 @@ EXPORT void iaxc_dump_all_calls(void); /*! + Hangs up and frees call \a callNo + \param callNo The call number to reject. +*/ +EXPORT void iaxc_dump_call_number( int callNo ); + +/*! Hangs up and frees the currently selected call. */ EXPORT void iaxc_dump_call(void); Modified: branches/team/mihai/echocan/lib/iaxclient_lib.c =================================================================== --- branches/team/mihai/echocan/lib/iaxclient_lib.c 2007-10-08 23:02:47 UTC (rev 1184) +++ branches/team/mihai/echocan/lib/iaxclient_lib.c 2007-10-09 16:02:48 UTC (rev 1185) @@ -99,7 +99,7 @@ static MUTEX iaxc_lock; static MUTEX event_queue_lock; -static short iaxci_bound_port = -1; +static int iaxci_bound_port = -1; // default to use port 4569 unless set by iaxc_set_preferred_source_udp_port static int source_udp_port = IAX_DEFAULT_PORTNO; @@ -554,7 +554,7 @@ return iax_video_bypass_jitter(calls[selected_call].session,mode); } -EXPORT short iaxc_get_bind_port() +EXPORT int iaxc_get_bind_port() { return iaxci_bound_port; } @@ -590,7 +590,7 @@ } if ( iaxc_recvfrom == (iaxc_recvfrom_t)recvfrom ) - iaxci_bound_port = (short)port; + iaxci_bound_port = port; else iaxci_bound_port = -1; @@ -655,7 +655,7 @@ #endif IAXC_FORMAT_SPEEX; audio_format_preferred = IAXC_FORMAT_SPEEX; - + return 0; } @@ -665,7 +665,6 @@ get_iaxc_lock(); - audio_driver.destroy(&audio_driver); if ( !test_mode ) { audio_driver.destroy(&audio_driver); @@ -759,7 +758,7 @@ get_iaxc_lock(); service_network(); - if ( !test_mode ) + if ( !test_mode ) service_audio(); // Check registration refresh once a second @@ -789,7 +788,7 @@ while ( !video_proc_thread_flag ) { - if (selected_call >= 0) + if ( selected_call >= 0 ) call = &calls[selected_call]; else call = NULL; @@ -923,7 +922,7 @@ \deprecated Q: Why do we continuously send IAXC_EVENT_LEVELS events when there is no selected call? - + A: So that certain users of iaxclient do not have to reset their vu meters when a call ends -- they can just count on getting level callbacks. This is a bit of a hack @@ -1089,7 +1088,7 @@ #ifdef WIN32 //fd: start: for some reason it loops here. Try to avoid it cycles_max--; - if (cycles_max<0) + if ( cycles_max < 0 ) { iaxc_millisleep(0); } @@ -1111,9 +1110,9 @@ continue; if ( !test_mode ) - audio_driver.output(&audio_driver, fr, + audio_driver.output(&audio_driver, fr, fr_samples - samples - mainbuf_delta); - + } while ( total_consumed < e->datalen ); } @@ -1198,8 +1197,8 @@ break; case IAX_EVENT_VOICE: handle_audio_event(e, callNo); - if ((calls[callNo].state & IAXC_CALL_STATE_OUTGOING) && - (calls[callNo].state & IAXC_CALL_STATE_RINGING) ) + if ( (calls[callNo].state & IAXC_CALL_STATE_OUTGOING) && + (calls[callNo].state & IAXC_CALL_STATE_RINGING) ) { calls[callNo].state &= ~IAXC_CALL_STATE_RINGING; iaxci_do_state_callback(callNo); @@ -1337,13 +1336,13 @@ get_iaxc_lock(); // if no call is selected, get a new appearance - if (selected_call < 0) + if ( selected_call < 0 ) { callNo = iaxc_first_free_call(); } else { // use selected call if not active, otherwise, get a new appearance - if (calls[selected_call].state & IAXC_CALL_STATE_ACTIVE) + if ( calls[selected_call].state & IAXC_CALL_STATE_ACTIVE ) { callNo = iaxc_first_free_call(); } else @@ -1352,14 +1351,14 @@ } } - if (callNo < 0) + if ( callNo < 0 ) { iaxci_usermsg(IAXC_STATUS, "No free call appearances"); goto iaxc_call_bail; } newsession = iax_session_new(); - if (!newsession) + if ( !newsession ) { iaxci_usermsg(IAXC_ERROR, "Can't make new session"); goto iaxc_call_bail; @@ -1369,7 +1368,7 @@ codec_destroy( callNo ); - if (ext) + if ( ext ) { strncpy(calls[callNo].remote_name, num, IAXC_EVENT_BUFSIZ); strncpy(calls[callNo].remote, ++ext, IAXC_EVENT_BUFSIZ); @@ -1379,10 +1378,10 @@ strncpy(calls[callNo].remote, "" , IAXC_EVENT_BUFSIZ); } - if (callerid_number != NULL) + if ( callerid_number != NULL ) strncpy(calls[callNo].callerid_number, callerid_number, IAXC_EVENT_BUFSIZ); - - if (callerid_name != NULL) + + if ( callerid_name != NULL ) strncpy(calls[callNo].callerid_name, callerid_name, IAXC_EVENT_BUFSIZ); strncpy(calls[callNo].local , calls[callNo].callerid_name, IAXC_EVENT_BUFSIZ); @@ -1395,7 +1394,7 @@ calls[callNo].last_ping = calls[callNo].last_activity; #ifdef USE_VIDEO - if (video) + if ( video ) iaxc_video_format_get_cap(&video_format_preferred, &video_format_capability); #endif @@ -1425,7 +1424,8 @@ EXPORT void iaxc_answer_call(int callNo) { - if (callNo < 0) return; + if ( callNo < 0 ) + return; calls[callNo].state |= IAXC_CALL_STATE_COMPLETE; calls[callNo].state &= ~IAXC_CALL_STATE_RINGING; @@ -1435,8 +1435,7 @@ EXPORT void iaxc_blind_transfer_call(int callNo, const char * dest_extension) { - if ((callNo < 0) || - !(calls[callNo].state & IAXC_CALL_STATE_ACTIVE)) + if ( callNo < 0 || !(calls[callNo].state & IAXC_CALL_STATE_ACTIVE) ) return; iax_transfer(calls[callNo].session, dest_extension); @@ -1444,9 +1443,9 @@ EXPORT void iaxc_setup_call_transfer(int sourceCallNo, int targetCallNo) { - if ((sourceCallNo < 0) || (targetCallNo < 0) || - ((calls[sourceCallNo].state & IAXC_CALL_STATE_ACTIVE) == 0) || - ((calls[targetCallNo].state & IAXC_CALL_STATE_ACTIVE) == 0)) + if ( sourceCallNo < 0 || targetCallNo < 0 || + !(calls[sourceCallNo].state & IAXC_CALL_STATE_ACTIVE) || + !(calls[targetCallNo].state & IAXC_CALL_STATE_ACTIVE) ) return; iax_setup_transfer(calls[sourceCallNo].session, calls[targetCallNo].session); @@ -1454,9 +1453,9 @@ static void iaxc_dump_one_call(int callNo) { - if (callNo < 0) + if ( callNo < 0 ) return; - if (calls[callNo].state == IAXC_CALL_STATE_FREE) + if ( calls[callNo].state == IAXC_CALL_STATE_FREE ) return; iax_hangup(calls[callNo].session,"Dumped Call"); @@ -1474,9 +1473,19 @@ } +EXPORT void iaxc_dump_call_number( int callNo ) +{ + if ( ( callNo >= 0 ) && ( callNo < max_calls ) ) + { + get_iaxc_lock(); + iaxc_dump_one_call(callNo); + put_iaxc_lock(); + } +} + EXPORT void iaxc_dump_call(void) { - if (selected_call >= 0) + if ( selected_call >= 0 ) { get_iaxc_lock(); iaxc_dump_one_call(selected_call); @@ -1486,7 +1495,7 @@ EXPORT void iaxc_reject_call(void) { - if (selected_call >= 0) + if ( selected_call >= 0 ) { iaxc_reject_call_number(selected_call); } @@ -1494,7 +1503,7 @@ EXPORT void iaxc_reject_call_number( int callNo ) { - if (callNo >= 0) + if ( ( callNo >= 0 ) && ( callNo < max_calls ) ) { get_iaxc_lock(); iax_reject(calls[callNo].session, "Call rejected manually."); @@ -1505,10 +1514,10 @@ EXPORT void iaxc_send_dtmf(char digit) { - if (selected_call >= 0) + if ( selected_call >= 0 ) { get_iaxc_lock(); - if (calls[selected_call].state & IAXC_CALL_STATE_ACTIVE) + if ( calls[selected_call].state & IAXC_CALL_STATE_ACTIVE ) iax_send_dtmf(calls[selected_call].session,digit); put_iaxc_lock(); } @@ -1516,10 +1525,10 @@ EXPORT void iaxc_send_text(const char * text) { - if (selected_call >= 0) + if ( selected_call >= 0 ) { get_iaxc_lock(); - if (calls[selected_call].state & IAXC_CALL_STATE_ACTIVE) + if ( calls[selected_call].state & IAXC_CALL_STATE_ACTIVE ) iax_send_text(calls[selected_call].session, text); put_iaxc_lock(); } @@ -1527,10 +1536,10 @@ EXPORT void iaxc_send_url(const char * url, int link) { - if (selected_call >= 0) + if ( selected_call >= 0 ) { get_iaxc_lock(); - if (calls[selected_call].state & IAXC_CALL_STATE_ACTIVE) + if ( calls[selected_call].state & IAXC_CALL_STATE_ACTIVE ) iax_send_url(calls[selected_call].session, url, link); put_iaxc_lock(); } @@ -1540,7 +1549,7 @@ { int i; for ( i = 0; i < max_calls; i++ ) - if (calls[i].session == session) + if ( calls[i].session == session ) return i; return -1; } @@ -1550,7 +1559,8 @@ { struct iaxc_registration *reg; for (reg = registrations; reg != NULL; reg = reg->next) - if (reg->session == session) break; + if ( reg->session == session ) + break; return reg; } @@ -1564,7 +1574,7 @@ iax_destroy(reg->session); reg->session = NULL; - if (e->etype == IAX_EVENT_REGREJ) + if ( e->etype == IAX_EVENT_REGREJ ) { // we were rejected, so end the registration iaxc_remove_registration_by_id(reg->id); @@ -1663,7 +1673,7 @@ /* first, see if they even want video */ video_format = (e->ies.format & IAXC_VIDEO_FORMAT_MASK); - if (video_format) + if ( video_format ) { /* next, try _their_ preferred format */ video_format &= video_format_capability; @@ -1680,7 +1690,7 @@ /* finally, see if we have one in common */ video_format = video_format_capability & (e->ies.capability & IAXC_VIDEO_FORMAT_MASK); - + /* now choose amongst these, if we got one */ if ( video_format ) { @@ -1759,23 +1769,23 @@ #endif // first, see if this is an event for one of our calls. callNo = iaxc_find_call_by_session(e->session); - if (callNo >= 0) + if ( callNo >= 0 ) { iaxc_handle_network_event(e, callNo); - } else if ((reg = iaxc_find_registration_by_session(e->session)) != NULL) + } else if ( (reg = iaxc_find_registration_by_session(e->session)) != NULL ) { iaxc_handle_regreply(e,reg); - } else if ((e->etype == IAX_EVENT_REGACK) || (e->etype == IAX_EVENT_REGREJ)) + } else if ( e->etype == IAX_EVENT_REGACK || e->etype == IAX_EVENT_REGREJ ) { iaxci_usermsg(IAXC_ERROR, "Unexpected registration reply"); - } else if (e->etype == IAX_EVENT_REGREQ) + } else if ( e->etype == IAX_EVENT_REGREQ ) { iaxci_usermsg(IAXC_ERROR, "Registration requested by someone, but we don't understand!"); - } else if (e->etype == IAX_EVENT_CONNECT) + } else if ( e->etype == IAX_EVENT_CONNECT ) { iaxc_handle_connect(e); - } else if (e->etype == IAX_EVENT_TIMEOUT) + } else if ( e->etype == IAX_EVENT_TIMEOUT ) { iaxci_usermsg(IAXC_STATUS, "Timeout for a non-existant session. Dropping", @@ -1809,10 +1819,11 @@ EXPORT int iaxc_audio_devices_set(int input, int output, int ring) { + int ret; + if ( test_mode ) return 0; - int ret = 0; get_iaxc_lock(); ret = audio_driver.select_devices(&audio_driver, input, output, ring); put_iaxc_lock(); @@ -1853,10 +1864,11 @@ EXPORT int iaxc_play_sound(struct iaxc_sound *s, int ring) { + int ret; + if ( test_mode ) return 0; - - int ret = 0; + get_iaxc_lock(); ret = audio_driver.play_sound(s,ring); put_iaxc_lock(); @@ -1865,10 +1877,11 @@ EXPORT int iaxc_stop_sound(int id) { + int ret; + if ( test_mode ) return 0; - - int ret = 0; + get_iaxc_lock(); ret = audio_driver.stop_sound(id); put_iaxc_lock(); @@ -1878,7 +1891,7 @@ EXPORT int iaxc_quelch(int callNo, int MOH) { struct iax_session *session = calls[callNo].session; - if (!session) + if ( !session ) return -1; return iax_quelch_moh(session, MOH); @@ -1900,13 +1913,11 @@ } #ifdef LIBVER - EXPORT char* iaxc_version(char * ver) { strncpy(ver, LIBVER, IAXC_EVENT_BUFSIZ); return ver; } - #endif EXPORT unsigned int iaxc_get_audio_prefs(void) @@ -1938,17 +1949,17 @@ EXPORT int iaxc_push_audio(void *data, unsigned int size, unsigned int samples) { struct iaxc_call *call; - - if (selected_call < 0) + + if ( selected_call < 0 ) return -1; - + call = &calls[selected_call]; if ( audio_prefs & IAXC_AUDIO_PREF_SEND_DISABLE ) return 0; - + //fprintf(stderr, "iaxc_push_audio: sending audio size %d\n", size); - + if ( iax_send_voice(call->session, call->format, data, size, samples) == -1 ) { fprintf(stderr, "iaxc_push_audio: failed to send audio frame of size %d on call %d\n", size, selected_call); Modified: branches/team/mihai/echocan/lib/libiax2/src/iax.c =================================================================== --- branches/team/mihai/echocan/lib/libiax2/src/iax.c 2007-10-08 23:02:47 UTC (rev 1184) +++ branches/team/mihai/echocan/lib/libiax2/src/iax.c 2007-10-09 16:02:48 UTC (rev 1185) @@ -992,9 +992,8 @@ DEBU(G "Started on port %d\n", portno); } - //srand((unsigned int)time(0)); - //callnums = rand() % 32767 + 1; - callnums = 1; + srand((unsigned int)time(0)); + callnums = rand() % 32767 + 1; transfer_id = rand() % 32767 + 1; return portno; Modified: branches/team/mihai/echocan/lib/video.c =================================================================== --- branches/team/mihai/echocan/lib/video.c 2007-10-08 23:02:47 UTC (rev 1184) +++ branches/team/mihai/echocan/lib/video.c 2007-10-09 16:02:48 UTC (rev 1185) @@ -15,6 +15,7 @@ */ #include <assert.h> +#include <stdlib.h> #include "video.h" #include "slice.h" @@ -893,8 +894,9 @@ { int i; - if ( sc == NULL ) - sc = create_slicer_context(random(), iaxc_video_fragsize); + if ( !sc ) + sc = create_slicer_context((unsigned short)rand(), + iaxc_video_fragsize); slice(data, size, &slice_set, sc); for ( i = 0 ; i < slice_set.num_slices ; i++ ) Modified: branches/team/mihai/echocan/simpleclient/stresstest/stresstest.c =================================================================== --- branches/team/mihai/echocan/simpleclient/stresstest/stresstest.c 2007-10-08 23:02:47 UTC (rev 1184) +++ branches/team/mihai/echocan/simpleclient/stresstest/stresstest.c 2007-10-09 16:02:48 UTC (rev 1185) @@ -32,6 +32,11 @@ #define MAX_CALLS 1 +#define TEST_OK 0 +#define TEST_NO_CONNECTION -1 +#define TEST_NO_MEDIA -2 +#define TEST_UNKNOWN_ERROR -99 + //int format = IAXC_FORMAT_THEORA | IAXC_FORMAT_SPEEX; int format = IAXC_FORMAT_H263 | IAXC_FORMAT_H263_PLUS | IAXC_FORMAT_H264 | IAXC_FORMAT_MPEG4 | IAXC_FORMAT_THEORA; int formatp = IAXC_FORMAT_H264; //IAXC_FORMAT_THEORA; @@ -42,6 +47,7 @@ int fragsize = 1400; int call_established = 0; +int running = 0; // Forward declaration void process_text_message(char *message); @@ -51,34 +57,42 @@ int send_video = 1; int send_audio = 1; int print_netstats = 0; +int timeout = 0; +int video_frames_count = 0; +int audio_frames_count = 0; +struct timeval start_time; + // Audio-cosmetic... struct iaxc_sound sound_ringOUT, sound_ringIN; -/* routine called at exit to shutdown audio I/O and close nicely. -NOTE: If all this isnt done, the system doesnt not handle this -cleanly and has to be rebooted. What a pile of doo doo!! */ -void killem(void) +/* routine used to shutdown and close nicely.*/ +void hangup_and_exit(int code) { + fprintf(stderr,"Dump call\n"); + iaxc_dump_call(); + fprintf(stderr,"Sleep for 500 msec\n"); + iaxc_millisleep(500); + fprintf(stderr,"Stop processing thread\n"); + iaxc_stop_processing_thread(); fprintf(stderr,"Calling iaxc_shutdown..."); iaxc_shutdown(); - fprintf(stderr,"Done\nProgram terminated correctly.\n"); - exit(0); + fprintf(stderr,"Exiting with code %d\n", code); + exit(code); } void signal_handler(int signum) { if ( signum == SIGTERM || signum == SIGINT ) { - killem(); - exit(0); + running = 0; } } -void fatal_error(char *err) { - killem(); +void fatal_error(char *err) +{ fprintf(stderr, "FATAL ERROR: %s\n", err); - exit(1); + exit(TEST_UNKNOWN_ERROR); } int levels_callback(float input, float output) { @@ -123,17 +137,6 @@ return 0; } -void hangup_and_exit(void) -{ - iaxc_dump_call(); - fprintf(stderr,"Dumped call\n"); - iaxc_millisleep(1000); - fprintf(stderr,"Sleeped for 1000 msec\n"); - iaxc_stop_processing_thread(); - fprintf(stderr,"Stopped processing thread\n"); - killem(); -} - void process_text_message(char *message) { unsigned int prefs; @@ -170,6 +173,7 @@ "-a stop sending audio\n" "-l run file in a loop\n" "-n dump periodic netstats to stderr\n" + "-t <timeout> terminate after timeout seconds and report status via return code\n" "\n" ); exit(1); @@ -184,22 +188,10 @@ fprintf(stderr, "Call answered\n"); call_established = 1; } - // Finished the phase of handshaking for the call in entry - if (s.state == (IAXC_CALL_STATE_ACTIVE|IAXC_CALL_STATE_RINGING)) - { - fprintf(stderr,"Auto-Answering to caller %s on line %d...\n",s.remote,s.callNo); - //iaxc_unquelch(s.callNo); - iaxc_millisleep(1000); - iaxc_answer_call(s.callNo); - iaxc_select_call(s.callNo); - call_established = 1; - //iaxc_millisleep(1000); - return 0; - } if (s.state == IAXC_CALL_STATE_FREE) { - fprintf(stderr,"Disconnect from other end\n"); - hangup_and_exit(); + fprintf(stderr,"Call terminated\n"); + running = 0; } return 0; @@ -219,7 +211,11 @@ case IAXC_EVENT_STATE: return test_mode_state_callback(e.ev.call); case IAXC_EVENT_VIDEO: + video_frames_count++; + break; case IAXC_EVENT_AUDIO: + audio_frames_count++; + break; default: break; } @@ -236,6 +232,7 @@ int video_frame_index; static struct slice_set_t slice_set; unsigned short source_id; + struct timeval now; /* install signal handler to catch CRTL-Cs */ signal(SIGINT, signal_handler); @@ -275,6 +272,11 @@ case 'n': print_netstats = 1; break; + case 't': + if ( i+1 >= argc ) + usage(); + timeout = 1000 * atoi(argv[++i]); + break; default: usage(); } @@ -297,7 +299,10 @@ // Load ogg file load_ogg_file(ogg_file); } - + + // Get start time for timeouts + gettimeofday(&start_time, NULL); + // Initialize iaxclient iaxc_video_format_set(formatp, format, framerate, bitrate, width, height, fragsize); iaxc_set_test_mode(1); @@ -306,8 +311,8 @@ iaxc_set_formats(IAXC_FORMAT_SPEEX, IAXC_FORMAT_SPEEX); iaxc_video_bypass_jitter(0); - iaxc_set_audio_prefs(0); - iaxc_set_video_prefs(0); + iaxc_set_audio_prefs(IAXC_AUDIO_PREF_RECV_REMOTE_ENCODED); + iaxc_set_video_prefs(IAXC_VIDEO_PREF_RECV_REMOTE_ENCODED); iaxc_set_event_callback(test_mode_callback); // Crank the engine @@ -322,9 +327,15 @@ // Wait for the call to be established; while ( !call_established ) + { + gettimeofday(&now, NULL); + if ( timeout > 0 && iaxci_msecdiff(&now, &start_time) > timeout ) + hangup_and_exit(TEST_NO_CONNECTION); iaxc_millisleep(5); + } - while ( 42 ) + running = 1; + while ( running ) { // We only need this if we actually want to send something if ( ogg_file && ( send_audio || send_video ) ) @@ -346,8 +357,17 @@ // Tight spinloops are bad, mmmkay? iaxc_millisleep(5); + + // Exit after a positive timeout + gettimeofday(&now, NULL); + if ( timeout > 0 && iaxci_msecdiff(&now, &start_time) > timeout ) + running = 0; } - hangup_and_exit(); + fprintf(stderr, "Received %d audio frames and %d video frames\n", audio_frames_count, video_frames_count); + if ( audio_frames_count == 0 && video_frames_count == 0 ) + hangup_and_exit(TEST_NO_MEDIA); + else + hangup_and_exit(TEST_OK); return 0; } Modified: branches/team/mihai/echocan/simpleclient/testcall/testcall.c =================================================================== --- branches/team/mihai/echocan/simpleclient/testcall/testcall.c 2007-10-08 23:02:47 UTC (rev 1184) +++ branches/team/mihai/echocan/simpleclient/testcall/testcall.c 2007-10-09 16:02:48 UTC (rev 1185) @@ -27,7 +27,7 @@ #include "iaxclient.h" -#define LEVEL_INCREMENT 0.10 +#define LEVEL_INCREMENT 0.10f /* static int answered_call; */ static char *output_filename = NULL; @@ -163,8 +163,8 @@ char c; int i; char *dest = NULL; - double silence_threshold = -99; - double level; + float silence_threshold = -99.0f; + float level; f = stdout; @@ -185,7 +185,7 @@ break; case 's': if(i+1 >= argc) usage(); - silence_threshold = atof(argv[++i]); + silence_threshold = (float)atof(argv[++i]); break; case 'u': if(i+1 >= argc) usage(); Deleted: branches/team/mihai/echocan/simpleclient/testcall/testcall.vcproj =================================================================== --- branches/team/mihai/echocan/simpleclient/testcall/testcall.vcproj 2007-10-08 23:02:47 UTC (rev 1184) +++ branches/team/mihai/echocan/simpleclient/testcall/testcall.vcproj 2007-10-09 16:02:48 UTC (rev 1185) @@ -1,207 +0,0 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioProject - ProjectType="Visual C++" - Version="8.00" - Name="testcall" - ProjectGUID="{6F5AEE93-BA87-465B-BC75-C41C434FC4E4}" - RootNamespace="testcall" - Keyword="Win32Proj" - > - <Platforms> - <Platform - Name="Win32" - /> - </Platforms> - <ToolFiles> - </ToolFiles> - <Configurations> - <Configuration - Name="Debug|Win32" - OutputDirectory="$(SolutionDir)$(ConfigurationName)" - IntermediateDirectory="$(ConfigurationName)" - ConfigurationType="1" - CharacterSet="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="..\..\lib\portaudio\pa_common;..\..\lib\speex\libspeex;".. \..\lib\portaudio\pablio";..\..\lib;..\..\lib\SDL\include;"$(SDL_DIR)\include"" - PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_CONSOLE;WITH_THREAD;_USE_MATH_DEFINES;IAXC_IAX2;LIBIAX;SPEEX_PREPROCESS=1;PORTAUDIO_DIRECTX;USE_WIN_AUDIO=1;HIRES_TIME;NEWJB;PA_USE_TIMER_CALLBACK=1" - MinimalRebuild="true" - BasicRuntimeChecks="3" - RuntimeLibrary="3" - UsePrecompiledHeader="0" - WarningLevel="3" - Detect64BitPortabilityProblems="true" - DebugInformationFormat="4" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - AdditionalDependencies="dsound.lib iaxclient.lib libtheora.lib libogg.lib SDL.lib wsock32.lib winmm.lib videolib.lib libiax2.lib gsm.lib portaudio.lib libspeex.lib strmiids.lib portmixerd.lib" - OutputFile="$(OutDir)\..\..\simpleclient\testcall\Debug\$(ProjectName).exe" - LinkIncremental="2" - AdditionalLibraryDirectories=""$(DXSDK_DIR)\lib\x86";..\..\lib\Debug;"$(SDL_DIR)\lib";"$(PSDK_DIR)\lib";..\..\lib\portmixer\winproj" - IgnoreDefaultLibraryNames="libcmtd.lib" - GenerateDebugInformation="true" - SubSystem="1" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Release|Win32" - OutputDirectory="$(SolutionDir)$(ConfigurationName)" - IntermediateDirectory="$(ConfigurationName)" - ConfigurationType="1" - CharacterSet="1" - WholeProgramOptimization="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="..\..\lib\portaudio\pa_common;..\..\lib\speex\libspeex;".. \..\lib\portaudio\pablio";..\..\lib;..\..\lib\SDL\include;"$(SDL_DIR)\include"" - PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_CONSOLE;WITH_THREAD;_USE_MATH_DEFINES;IAXC_IAX2;LIBIAX;SPEEX_PREPROCESS=1;PORTAUDIO_DIRECTX;USE_WIN_AUDIO=1;HIRES_TIME;NEWJB;PA_USE_TIMER_CALLBACK=1" - RuntimeLibrary="2" - UsePrecompiledHeader="0" - WarningLevel="3" - Detect64BitPortabilityProblems="true" - DebugInformationFormat="3" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - IgnoreImportLibrary="false" - AdditionalDependencies="dsound.lib iaxclient.lib libtheora.lib libogg.lib SDL.lib wsock32.lib winmm.lib videolib.lib libiax2.lib gsm.lib portaudio.lib libspeex.lib strmiids.lib portmixer.lib" - LinkIncremental="1" - AdditionalLibraryDirectories=""$(DXSDK_DIR)\lib\x86";..\..\lib\Release;"$(SDL_DIR)\lib";"$(PSDK_DIR)\lib";..\..\lib\portmixer\winproj" - IgnoreDefaultLibraryNames="msvcrtd.lib;msvcrt.lib;libcmtd.lib" - GenerateDebugInformation="true" - SubSystem="1" - OptimizeReferences="2" - EnableCOMDATFolding="2" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - </Configurations> - <References> - </References> - <Files> - <Filter - Name="Source Files" - Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" - UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" - > - <File - RelativePath="..\..\simpleclient\testcall\testcall.c" - > - </File> - </Filter> - <Filter - Name="Header Files" - Filter="h;hpp;hxx;hm;inl;inc;xsd" - UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" - > - </Filter> - <Filter - Name="Resource Files" - Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" - UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" - > - </Filter> - </Files> - <Globals> - </Globals> -</VisualStudioProject> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <do...@us...> - 2007-10-08 23:02:44
|
Revision: 1184 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1184&view=rev Author: dohpaz Date: 2007-10-08 16:02:47 -0700 (Mon, 08 Oct 2007) Log Message: ----------- Add an iaxc_dump_call_number() API function so I can drop a non-selected call. Modified Paths: -------------- trunk/lib/iaxclient.h trunk/lib/iaxclient_lib.c Modified: trunk/lib/iaxclient.h =================================================================== --- trunk/lib/iaxclient.h 2007-10-05 18:03:18 UTC (rev 1183) +++ trunk/lib/iaxclient.h 2007-10-08 23:02:47 UTC (rev 1184) @@ -764,6 +764,12 @@ EXPORT void iaxc_dump_all_calls(void); /*! + Hangs up and frees call \a callNo + \param callNo The call number to reject. +*/ +EXPORT void iaxc_dump_call_number( int callNo ); + +/*! Hangs up and frees the currently selected call. */ EXPORT void iaxc_dump_call(void); Modified: trunk/lib/iaxclient_lib.c =================================================================== --- trunk/lib/iaxclient_lib.c 2007-10-05 18:03:18 UTC (rev 1183) +++ trunk/lib/iaxclient_lib.c 2007-10-08 23:02:47 UTC (rev 1184) @@ -1473,6 +1473,16 @@ } +EXPORT void iaxc_dump_call_number( int callNo ) +{ + if ( ( callNo >= 0 ) && ( callNo < max_calls ) ) + { + get_iaxc_lock(); + iaxc_dump_one_call(callNo); + put_iaxc_lock(); + } +} + EXPORT void iaxc_dump_call(void) { if ( selected_call >= 0 ) @@ -1493,7 +1503,7 @@ EXPORT void iaxc_reject_call_number( int callNo ) { - if ( callNo >= 0 ) + if ( ( callNo >= 0 ) && ( callNo < max_calls ) ) { get_iaxc_lock(); iax_reject(calls[callNo].session, "Call rejected manually."); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jpg...@us...> - 2007-10-05 18:03:13
|
Revision: 1183 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1183&view=rev Author: jpgrayson Date: 2007-10-05 11:03:18 -0700 (Fri, 05 Oct 2007) Log Message: ----------- Doing the unthinkable to fix "make dist" problem. Modified Paths: -------------- tags/2.0.0/simpleclient/testcall/Makefile.am Modified: tags/2.0.0/simpleclient/testcall/Makefile.am =================================================================== --- tags/2.0.0/simpleclient/testcall/Makefile.am 2007-10-05 18:02:59 UTC (rev 1182) +++ tags/2.0.0/simpleclient/testcall/Makefile.am 2007-10-05 18:03:18 UTC (rev 1183) @@ -8,5 +8,5 @@ AM_CPPFLAGS += -DPOSIXSLEEP endif -EXTRA_DIST = .cvsignore testcall-jb.c testcall.vcproj +EXTRA_DIST = .cvsignore testcall-jb.c This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jpg...@us...> - 2007-10-05 18:02:54
|
Revision: 1182 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1182&view=rev Author: jpgrayson Date: 2007-10-05 11:02:59 -0700 (Fri, 05 Oct 2007) Log Message: ----------- Of course, when making a 2.0.0 release, you have to uncover a bug that only shows up when doing "make dist", right? Modified Paths: -------------- branches/2.0/simpleclient/testcall/Makefile.am Modified: branches/2.0/simpleclient/testcall/Makefile.am =================================================================== --- branches/2.0/simpleclient/testcall/Makefile.am 2007-10-05 17:40:07 UTC (rev 1181) +++ branches/2.0/simpleclient/testcall/Makefile.am 2007-10-05 18:02:59 UTC (rev 1182) @@ -8,5 +8,5 @@ AM_CPPFLAGS += -DPOSIXSLEEP endif -EXTRA_DIST = .cvsignore testcall-jb.c testcall.vcproj +EXTRA_DIST = .cvsignore testcall-jb.c This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jpg...@us...> - 2007-10-05 17:40:03
|
Revision: 1181 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1181&view=rev Author: jpgrayson Date: 2007-10-05 10:40:07 -0700 (Fri, 05 Oct 2007) Log Message: ----------- Set version back to 2.0-svn after tagging 2.0.0. Modified Paths: -------------- branches/2.0/configure.ac Modified: branches/2.0/configure.ac =================================================================== --- branches/2.0/configure.ac 2007-10-05 17:38:59 UTC (rev 1180) +++ branches/2.0/configure.ac 2007-10-05 17:40:07 UTC (rev 1181) @@ -3,7 +3,7 @@ AC_PREREQ(2.59) dnl Package version -m4_define(IAXC_VERSION, [2.0.0]) +m4_define(IAXC_VERSION, [2.0-svn]) AC_INIT(iaxclient, IAXC_VERSION, [jpg...@gm...]) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jpg...@us...> - 2007-10-05 17:38:55
|
Revision: 1180 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1180&view=rev Author: jpgrayson Date: 2007-10-05 10:38:59 -0700 (Fri, 05 Oct 2007) Log Message: ----------- Tag 2.0.0 release. Added Paths: ----------- tags/2.0.0/ Copied: tags/2.0.0 (from rev 1179, branches/2.0) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jpg...@us...> - 2007-10-05 17:38:23
|
Revision: 1179 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1179&view=rev Author: jpgrayson Date: 2007-10-05 10:38:28 -0700 (Fri, 05 Oct 2007) Log Message: ----------- Set version for pending 2.0.0 release. Modified Paths: -------------- branches/2.0/configure.ac Modified: branches/2.0/configure.ac =================================================================== --- branches/2.0/configure.ac 2007-10-05 15:53:56 UTC (rev 1178) +++ branches/2.0/configure.ac 2007-10-05 17:38:28 UTC (rev 1179) @@ -3,7 +3,7 @@ AC_PREREQ(2.59) dnl Package version -m4_define(IAXC_VERSION, [2.0-svn]) +m4_define(IAXC_VERSION, [2.0.0]) AC_INIT(iaxclient, IAXC_VERSION, [jpg...@gm...]) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jpg...@us...> - 2007-10-05 15:53:51
|
Revision: 1178 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1178&view=rev Author: jpgrayson Date: 2007-10-05 08:53:56 -0700 (Fri, 05 Oct 2007) Log Message: ----------- Backport from trunk of revision 1177 which fixes the negative port numbers problem. Revision Links: -------------- http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1177&view=rev Modified Paths: -------------- branches/2.0/lib/iaxclient.h branches/2.0/lib/iaxclient_lib.c Modified: branches/2.0/lib/iaxclient.h =================================================================== --- branches/2.0/lib/iaxclient.h 2007-10-04 22:37:39 UTC (rev 1177) +++ branches/2.0/lib/iaxclient.h 2007-10-05 15:53:56 UTC (rev 1178) @@ -281,7 +281,7 @@ // NOTE: must be called before iaxc_initialize() EXPORT void iaxc_set_preferred_source_udp_port(int sourceUdpPort); -EXPORT short iaxc_get_bind_port(); +EXPORT int iaxc_get_bind_port(); EXPORT int iaxc_initialize(int num_calls); EXPORT void iaxc_shutdown(); EXPORT void iaxc_set_formats(int preferred, int allowed); Modified: branches/2.0/lib/iaxclient_lib.c =================================================================== --- branches/2.0/lib/iaxclient_lib.c 2007-10-04 22:37:39 UTC (rev 1177) +++ branches/2.0/lib/iaxclient_lib.c 2007-10-05 15:53:56 UTC (rev 1178) @@ -94,7 +94,7 @@ static MUTEX iaxc_lock; static MUTEX event_queue_lock; -static short iaxci_bound_port = -1; +static int iaxci_bound_port = -1; // default to use port 4569 unless set by iaxc_set_preferred_source_udp_port static int source_udp_port = IAX_DEFAULT_PORTNO; @@ -543,7 +543,7 @@ return iax_video_bypass_jitter(calls[selected_call].session,mode); } -EXPORT short iaxc_get_bind_port() +EXPORT int iaxc_get_bind_port() { return iaxci_bound_port; } @@ -579,7 +579,7 @@ } if ( iaxc_recvfrom == (iaxc_recvfrom_t)recvfrom ) - iaxci_bound_port = (short)port; + iaxci_bound_port = port; else iaxci_bound_port = -1; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jpg...@us...> - 2007-10-04 22:37:37
|
Revision: 1177 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1177&view=rev Author: jpgrayson Date: 2007-10-04 15:37:39 -0700 (Thu, 04 Oct 2007) Log Message: ----------- Fix problem with negative port numbers. There is a mailing list thread describing the problem here: http://sourceforge.net/mailarchive/forum.php?thread_name=46EBD7B4.8070506%40gmail.com&forum_name=iaxclient-devel Modified Paths: -------------- trunk/lib/iaxclient.h trunk/lib/iaxclient_lib.c Modified: trunk/lib/iaxclient.h =================================================================== --- trunk/lib/iaxclient.h 2007-10-03 21:13:49 UTC (rev 1176) +++ trunk/lib/iaxclient.h 2007-10-04 22:37:39 UTC (rev 1177) @@ -22,7 +22,7 @@ #ifdef __cplusplus extern "C" { #endif - + /*! \file iaxclient.h \brief The IAXClient API @@ -635,7 +635,7 @@ \return The UDP port bound to; -1 if no port or */ -EXPORT short iaxc_get_bind_port(); +EXPORT int iaxc_get_bind_port(); /*! Initializes the IAXClient library Modified: trunk/lib/iaxclient_lib.c =================================================================== --- trunk/lib/iaxclient_lib.c 2007-10-03 21:13:49 UTC (rev 1176) +++ trunk/lib/iaxclient_lib.c 2007-10-04 22:37:39 UTC (rev 1177) @@ -99,7 +99,7 @@ static MUTEX iaxc_lock; static MUTEX event_queue_lock; -static short iaxci_bound_port = -1; +static int iaxci_bound_port = -1; // default to use port 4569 unless set by iaxc_set_preferred_source_udp_port static int source_udp_port = IAX_DEFAULT_PORTNO; @@ -554,7 +554,7 @@ return iax_video_bypass_jitter(calls[selected_call].session,mode); } -EXPORT short iaxc_get_bind_port() +EXPORT int iaxc_get_bind_port() { return iaxci_bound_port; } @@ -590,7 +590,7 @@ } if ( iaxc_recvfrom == (iaxc_recvfrom_t)recvfrom ) - iaxci_bound_port = (short)port; + iaxci_bound_port = port; else iaxci_bound_port = -1; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jpg...@us...> - 2007-10-03 21:13:45
|
Revision: 1176 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1176&view=rev Author: jpgrayson Date: 2007-10-03 14:13:49 -0700 (Wed, 03 Oct 2007) Log Message: ----------- Whitespace. Modified Paths: -------------- trunk/lib/audio_portaudio.c Modified: trunk/lib/audio_portaudio.c =================================================================== --- trunk/lib/audio_portaudio.c 2007-10-03 19:26:45 UTC (rev 1175) +++ trunk/lib/audio_portaudio.c 2007-10-03 21:13:49 UTC (rev 1176) @@ -692,7 +692,7 @@ // first we'll try mono ring_stream_params.channelCount = 1; - err = Pa_OpenStream ( &aStream, + err = Pa_OpenStream(&aStream, NULL, &ring_stream_params, sample_rate, @@ -703,10 +703,10 @@ if ( err != paNoError ) { - // next we'll try virtual mono (stereo) - ring_stream_params.channelCount = 1; + // next we'll try virtual mono (stereo) + ring_stream_params.channelCount = 1; - err = Pa_OpenStream ( &aStream, + err = Pa_OpenStream(&aStream, NULL, &ring_stream_params, sample_rate, @@ -714,14 +714,13 @@ paNoFlag, (PaStreamCallback *)pa_aux_callback, NULL); - } // mmok, failure... if ( err != paNoError ) { - // fprintf(stderr, "Failure opening ring device with params: id: %d, output %d, default output %d\n", - // selectedRing, selectedOutput, Pa_GetDefaultOutputDevice()); + // fprintf(stderr, "Failure opening ring device with params: id: %d, output %d, default output %d\n", + // selectedRing, selectedOutput, Pa_GetDefaultOutputDevice()); handle_paerror(err, "opening separate ring stream"); return -1; @@ -756,7 +755,8 @@ if ( errcnt > 5 ) { iaxci_usermsg(IAXC_TEXT_TYPE_FATALERROR, - "iaxclient audio: Can't open Audio Device. Perhaps you do not have an input or output device?"); + "iaxclient audio: Can't open Audio Device. " + "Perhaps you do not have an input or output device?"); /* OK, we'll give the application the option to abort or * not here, but we will throw a fatal error anyway */ iaxc_millisleep(1000); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jpg...@us...> - 2007-10-03 19:27:01
|
Revision: 1175 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1175&view=rev Author: jpgrayson Date: 2007-10-03 12:26:45 -0700 (Wed, 03 Oct 2007) Log Message: ----------- Fix change that breaks random call numbers. This accidentally went in in 1156. Modified Paths: -------------- trunk/lib/libiax2/src/iax.c Modified: trunk/lib/libiax2/src/iax.c =================================================================== --- trunk/lib/libiax2/src/iax.c 2007-10-03 18:57:53 UTC (rev 1174) +++ trunk/lib/libiax2/src/iax.c 2007-10-03 19:26:45 UTC (rev 1175) @@ -992,9 +992,8 @@ DEBU(G "Started on port %d\n", portno); } - //srand((unsigned int)time(0)); - //callnums = rand() % 32767 + 1; - callnums = 1; + srand((unsigned int)time(0)); + callnums = rand() % 32767 + 1; transfer_id = rand() % 32767 + 1; return portno; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jpg...@us...> - 2007-10-03 18:57:50
|
Revision: 1174 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1174&view=rev Author: jpgrayson Date: 2007-10-03 11:57:53 -0700 (Wed, 03 Oct 2007) Log Message: ----------- Backport fix for testcall to be part of the normal iaxclient visual studio build. Modified Paths: -------------- branches/2.0/contrib/win/vs2005/iaxclient.sln Added Paths: ----------- branches/2.0/contrib/win/vs2005/testcall.vcproj Removed Paths: ------------- branches/2.0/simpleclient/testcall/testcall.vcproj Modified: branches/2.0/contrib/win/vs2005/iaxclient.sln =================================================================== --- branches/2.0/contrib/win/vs2005/iaxclient.sln 2007-10-03 18:56:52 UTC (rev 1173) +++ branches/2.0/contrib/win/vs2005/iaxclient.sln 2007-10-03 18:57:53 UTC (rev 1174) @@ -9,14 +9,14 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libiaxclient", "libiaxclient.vcproj", "{9A9C003E-EAF6-4D0E-896F-E3994503C7E4}" ProjectSection(ProjectDependencies) = postProject + {3B023516-2C69-4CCB-9302-239991B6EC2C} = {3B023516-2C69-4CCB-9302-239991B6EC2C} + {BE15A94D-3766-4693-ABA8-5FBAACBBCC08} = {BE15A94D-3766-4693-ABA8-5FBAACBBCC08} + {82C9BD79-9796-405F-8A28-3F538514AC3A} = {82C9BD79-9796-405F-8A28-3F538514AC3A} + {3A76129B-55AB-4D54-BAA7-08F63ED52569} = {3A76129B-55AB-4D54-BAA7-08F63ED52569} + {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E} = {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E} + {2F463562-375D-481E-A6E0-7C7D0DC1ED7A} = {2F463562-375D-481E-A6E0-7C7D0DC1ED7A} + {E972C52F-9E85-4D65-B19C-031E511E9DB4} = {E972C52F-9E85-4D65-B19C-031E511E9DB4} {E2C6AD95-7A61-41FE-8754-A4623C891BF8} = {E2C6AD95-7A61-41FE-8754-A4623C891BF8} - {E972C52F-9E85-4D65-B19C-031E511E9DB4} = {E972C52F-9E85-4D65-B19C-031E511E9DB4} - {2F463562-375D-481E-A6E0-7C7D0DC1ED7A} = {2F463562-375D-481E-A6E0-7C7D0DC1ED7A} - {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E} = {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E} - {3A76129B-55AB-4D54-BAA7-08F63ED52569} = {3A76129B-55AB-4D54-BAA7-08F63ED52569} - {82C9BD79-9796-405F-8A28-3F538514AC3A} = {82C9BD79-9796-405F-8A28-3F538514AC3A} - {BE15A94D-3766-4693-ABA8-5FBAACBBCC08} = {BE15A94D-3766-4693-ABA8-5FBAACBBCC08} - {3B023516-2C69-4CCB-9302-239991B6EC2C} = {3B023516-2C69-4CCB-9302-239991B6EC2C} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libiax2", "libiax2.vcproj", "{5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}" @@ -29,6 +29,11 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtheora", "libtheora.vcproj", "{E2C6AD95-7A61-41FE-8754-A4623C891BF8}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testcall", "testcall.vcproj", "{6F5AEE93-BA87-465B-BC75-C41C434FC4E4}" + ProjectSection(ProjectDependencies) = postProject + {9A9C003E-EAF6-4D0E-896F-E3994503C7E4} = {9A9C003E-EAF6-4D0E-896F-E3994503C7E4} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug_dll|Win32 = Debug_dll|Win32 @@ -109,6 +114,14 @@ {E2C6AD95-7A61-41FE-8754-A4623C891BF8}.Release_dll|Win32.Build.0 = Release|Win32 {E2C6AD95-7A61-41FE-8754-A4623C891BF8}.Release|Win32.ActiveCfg = Release|Win32 {E2C6AD95-7A61-41FE-8754-A4623C891BF8}.Release|Win32.Build.0 = Release|Win32 + {6F5AEE93-BA87-465B-BC75-C41C434FC4E4}.Debug_dll|Win32.ActiveCfg = Debug|Win32 + {6F5AEE93-BA87-465B-BC75-C41C434FC4E4}.Debug_dll|Win32.Build.0 = Debug|Win32 + {6F5AEE93-BA87-465B-BC75-C41C434FC4E4}.Debug|Win32.ActiveCfg = Debug|Win32 + {6F5AEE93-BA87-465B-BC75-C41C434FC4E4}.Debug|Win32.Build.0 = Debug|Win32 + {6F5AEE93-BA87-465B-BC75-C41C434FC4E4}.Release_dll|Win32.ActiveCfg = Release|Win32 + {6F5AEE93-BA87-465B-BC75-C41C434FC4E4}.Release_dll|Win32.Build.0 = Release|Win32 + {6F5AEE93-BA87-465B-BC75-C41C434FC4E4}.Release|Win32.ActiveCfg = Release|Win32 + {6F5AEE93-BA87-465B-BC75-C41C434FC4E4}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE Copied: branches/2.0/contrib/win/vs2005/testcall.vcproj (from rev 1169, branches/2.0/simpleclient/testcall/testcall.vcproj) =================================================================== --- branches/2.0/contrib/win/vs2005/testcall.vcproj (rev 0) +++ branches/2.0/contrib/win/vs2005/testcall.vcproj 2007-10-03 18:57:53 UTC (rev 1174) @@ -0,0 +1,206 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8.00" + Name="testcall" + ProjectGUID="{6F5AEE93-BA87-465B-BC75-C41C434FC4E4}" + RootNamespace="testcall" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="$(SolutionDir)$(ConfigurationName)\$(ProjectName)" + IntermediateDirectory="$(OutDir)" + ConfigurationType="1" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..\..\..\lib" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + CompileAs="1" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="libiaxclient.lib" + LinkIncremental="2" + AdditionalLibraryDirectories="$(SolutionDir)$(ConfigurationName)\libiaxclient" + IgnoreDefaultLibraryNames="libcmtd.lib" + GenerateDebugInformation="true" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="$(SolutionDir)$(ConfigurationName)\$(ProjectName)" + IntermediateDirectory="$(OutDir)" + ConfigurationType="1" + CharacterSet="2" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="..\..\..\lib" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + RuntimeLibrary="2" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + CompileAs="1" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + IgnoreImportLibrary="false" + AdditionalDependencies="libiaxclient.lib" + LinkIncremental="1" + AdditionalLibraryDirectories="$(SolutionDir)$(ConfigurationName)\libiaxclient" + IgnoreDefaultLibraryNames="" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" + > + <File + RelativePath="..\..\..\simpleclient\testcall\testcall.c" + > + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl;inc;xsd" + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" + > + </Filter> + <Filter + Name="Resource Files" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" + UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" + > + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Deleted: branches/2.0/simpleclient/testcall/testcall.vcproj =================================================================== --- branches/2.0/simpleclient/testcall/testcall.vcproj 2007-10-03 18:56:52 UTC (rev 1173) +++ branches/2.0/simpleclient/testcall/testcall.vcproj 2007-10-03 18:57:53 UTC (rev 1174) @@ -1,207 +0,0 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioProject - ProjectType="Visual C++" - Version="8.00" - Name="testcall" - ProjectGUID="{6F5AEE93-BA87-465B-BC75-C41C434FC4E4}" - RootNamespace="testcall" - Keyword="Win32Proj" - > - <Platforms> - <Platform - Name="Win32" - /> - </Platforms> - <ToolFiles> - </ToolFiles> - <Configurations> - <Configuration - Name="Debug|Win32" - OutputDirectory="$(SolutionDir)$(ConfigurationName)" - IntermediateDirectory="$(ConfigurationName)" - ConfigurationType="1" - CharacterSet="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="..\..\lib\portaudio\pa_common;..\..\lib\speex\libspeex;".. \..\lib\portaudio\pablio";..\..\lib;..\..\lib\SDL\include;"$(SDL_DIR)\include"" - PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_CONSOLE;WITH_THREAD;_USE_MATH_DEFINES;IAXC_IAX2;LIBIAX;SPEEX_PREPROCESS=1;PORTAUDIO_DIRECTX;USE_WIN_AUDIO=1;HIRES_TIME;NEWJB;PA_USE_TIMER_CALLBACK=1" - MinimalRebuild="true" - BasicRuntimeChecks="3" - RuntimeLibrary="3" - UsePrecompiledHeader="0" - WarningLevel="3" - Detect64BitPortabilityProblems="true" - DebugInformationFormat="4" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - AdditionalDependencies="dsound.lib iaxclient.lib libtheora.lib libogg.lib SDL.lib wsock32.lib winmm.lib videolib.lib libiax2.lib gsm.lib portaudio.lib libspeex.lib strmiids.lib portmixerd.lib" - OutputFile="$(OutDir)\..\..\simpleclient\testcall\Debug\$(ProjectName).exe" - LinkIncremental="2" - AdditionalLibraryDirectories=""$(DXSDK_DIR)\lib\x86";..\..\lib\Debug;"$(SDL_DIR)\lib";"$(PSDK_DIR)\lib";..\..\lib\portmixer\winproj" - IgnoreDefaultLibraryNames="libcmtd.lib" - GenerateDebugInformation="true" - SubSystem="1" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Release|Win32" - OutputDirectory="$(SolutionDir)$(ConfigurationName)" - IntermediateDirectory="$(ConfigurationName)" - ConfigurationType="1" - CharacterSet="1" - WholeProgramOptimization="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="..\..\lib\portaudio\pa_common;..\..\lib\speex\libspeex;".. \..\lib\portaudio\pablio";..\..\lib;..\..\lib\SDL\include;"$(SDL_DIR)\include"" - PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_CONSOLE;WITH_THREAD;_USE_MATH_DEFINES;IAXC_IAX2;LIBIAX;SPEEX_PREPROCESS=1;PORTAUDIO_DIRECTX;USE_WIN_AUDIO=1;HIRES_TIME;NEWJB;PA_USE_TIMER_CALLBACK=1" - RuntimeLibrary="2" - UsePrecompiledHeader="0" - WarningLevel="3" - Detect64BitPortabilityProblems="true" - DebugInformationFormat="3" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - IgnoreImportLibrary="false" - AdditionalDependencies="dsound.lib iaxclient.lib libtheora.lib libogg.lib SDL.lib wsock32.lib winmm.lib videolib.lib libiax2.lib gsm.lib portaudio.lib libspeex.lib strmiids.lib portmixer.lib" - LinkIncremental="1" - AdditionalLibraryDirectories=""$(DXSDK_DIR)\lib\x86";..\..\lib\Release;"$(SDL_DIR)\lib";"$(PSDK_DIR)\lib";..\..\lib\portmixer\winproj" - IgnoreDefaultLibraryNames="msvcrtd.lib;msvcrt.lib;libcmtd.lib" - GenerateDebugInformation="true" - SubSystem="1" - OptimizeReferences="2" - EnableCOMDATFolding="2" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - </Configurations> - <References> - </References> - <Files> - <Filter - Name="Source Files" - Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" - UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" - > - <File - RelativePath="..\..\simpleclient\testcall\testcall.c" - > - </File> - </Filter> - <Filter - Name="Header Files" - Filter="h;hpp;hxx;hm;inl;inc;xsd" - UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" - > - </Filter> - <Filter - Name="Resource Files" - Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" - UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" - > - </Filter> - </Files> - <Globals> - </Globals> -</VisualStudioProject> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jpg...@us...> - 2007-10-03 18:56:48
|
Revision: 1173 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1173&view=rev Author: jpgrayson Date: 2007-10-03 11:56:52 -0700 (Wed, 03 Oct 2007) Log Message: ----------- Move the vcproj file for testcall to the standard spot for such things. Modify testcall.vcproj to build and link correctly with iaxclient. Modified Paths: -------------- trunk/contrib/win/vs2005/iaxclient.sln Added Paths: ----------- trunk/contrib/win/vs2005/testcall.vcproj Removed Paths: ------------- trunk/simpleclient/testcall/testcall.vcproj Modified: trunk/contrib/win/vs2005/iaxclient.sln =================================================================== --- trunk/contrib/win/vs2005/iaxclient.sln 2007-10-03 18:05:48 UTC (rev 1172) +++ trunk/contrib/win/vs2005/iaxclient.sln 2007-10-03 18:56:52 UTC (rev 1173) @@ -9,14 +9,14 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libiaxclient", "libiaxclient.vcproj", "{9A9C003E-EAF6-4D0E-896F-E3994503C7E4}" ProjectSection(ProjectDependencies) = postProject + {3B023516-2C69-4CCB-9302-239991B6EC2C} = {3B023516-2C69-4CCB-9302-239991B6EC2C} + {BE15A94D-3766-4693-ABA8-5FBAACBBCC08} = {BE15A94D-3766-4693-ABA8-5FBAACBBCC08} + {82C9BD79-9796-405F-8A28-3F538514AC3A} = {82C9BD79-9796-405F-8A28-3F538514AC3A} + {3A76129B-55AB-4D54-BAA7-08F63ED52569} = {3A76129B-55AB-4D54-BAA7-08F63ED52569} + {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E} = {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E} + {2F463562-375D-481E-A6E0-7C7D0DC1ED7A} = {2F463562-375D-481E-A6E0-7C7D0DC1ED7A} + {E972C52F-9E85-4D65-B19C-031E511E9DB4} = {E972C52F-9E85-4D65-B19C-031E511E9DB4} {E2C6AD95-7A61-41FE-8754-A4623C891BF8} = {E2C6AD95-7A61-41FE-8754-A4623C891BF8} - {E972C52F-9E85-4D65-B19C-031E511E9DB4} = {E972C52F-9E85-4D65-B19C-031E511E9DB4} - {2F463562-375D-481E-A6E0-7C7D0DC1ED7A} = {2F463562-375D-481E-A6E0-7C7D0DC1ED7A} - {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E} = {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E} - {3A76129B-55AB-4D54-BAA7-08F63ED52569} = {3A76129B-55AB-4D54-BAA7-08F63ED52569} - {82C9BD79-9796-405F-8A28-3F538514AC3A} = {82C9BD79-9796-405F-8A28-3F538514AC3A} - {BE15A94D-3766-4693-ABA8-5FBAACBBCC08} = {BE15A94D-3766-4693-ABA8-5FBAACBBCC08} - {3B023516-2C69-4CCB-9302-239991B6EC2C} = {3B023516-2C69-4CCB-9302-239991B6EC2C} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libiax2", "libiax2.vcproj", "{5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}" @@ -29,6 +29,11 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtheora", "libtheora.vcproj", "{E2C6AD95-7A61-41FE-8754-A4623C891BF8}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testcall", "testcall.vcproj", "{6F5AEE93-BA87-465B-BC75-C41C434FC4E4}" + ProjectSection(ProjectDependencies) = postProject + {9A9C003E-EAF6-4D0E-896F-E3994503C7E4} = {9A9C003E-EAF6-4D0E-896F-E3994503C7E4} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug_dll|Win32 = Debug_dll|Win32 @@ -109,6 +114,14 @@ {E2C6AD95-7A61-41FE-8754-A4623C891BF8}.Release_dll|Win32.Build.0 = Release|Win32 {E2C6AD95-7A61-41FE-8754-A4623C891BF8}.Release|Win32.ActiveCfg = Release|Win32 {E2C6AD95-7A61-41FE-8754-A4623C891BF8}.Release|Win32.Build.0 = Release|Win32 + {6F5AEE93-BA87-465B-BC75-C41C434FC4E4}.Debug_dll|Win32.ActiveCfg = Debug|Win32 + {6F5AEE93-BA87-465B-BC75-C41C434FC4E4}.Debug_dll|Win32.Build.0 = Debug|Win32 + {6F5AEE93-BA87-465B-BC75-C41C434FC4E4}.Debug|Win32.ActiveCfg = Debug|Win32 + {6F5AEE93-BA87-465B-BC75-C41C434FC4E4}.Debug|Win32.Build.0 = Debug|Win32 + {6F5AEE93-BA87-465B-BC75-C41C434FC4E4}.Release_dll|Win32.ActiveCfg = Release|Win32 + {6F5AEE93-BA87-465B-BC75-C41C434FC4E4}.Release_dll|Win32.Build.0 = Release|Win32 + {6F5AEE93-BA87-465B-BC75-C41C434FC4E4}.Release|Win32.ActiveCfg = Release|Win32 + {6F5AEE93-BA87-465B-BC75-C41C434FC4E4}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE Copied: trunk/contrib/win/vs2005/testcall.vcproj (from rev 1172, trunk/simpleclient/testcall/testcall.vcproj) =================================================================== --- trunk/contrib/win/vs2005/testcall.vcproj (rev 0) +++ trunk/contrib/win/vs2005/testcall.vcproj 2007-10-03 18:56:52 UTC (rev 1173) @@ -0,0 +1,206 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8.00" + Name="testcall" + ProjectGUID="{6F5AEE93-BA87-465B-BC75-C41C434FC4E4}" + RootNamespace="testcall" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="$(SolutionDir)$(ConfigurationName)\$(ProjectName)" + IntermediateDirectory="$(OutDir)" + ConfigurationType="1" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..\..\..\lib" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + CompileAs="1" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="libiaxclient.lib ws2_32.lib" + LinkIncremental="2" + AdditionalLibraryDirectories="$(SolutionDir)$(ConfigurationName)\libiaxclient" + IgnoreDefaultLibraryNames="libcmtd.lib" + GenerateDebugInformation="true" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="$(SolutionDir)$(ConfigurationName)\$(ProjectName)" + IntermediateDirectory="$(OutDir)" + ConfigurationType="1" + CharacterSet="2" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="..\..\..\lib" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + RuntimeLibrary="2" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + CompileAs="1" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + IgnoreImportLibrary="false" + AdditionalDependencies="libiaxclient.lib ws2_32.lib" + LinkIncremental="1" + AdditionalLibraryDirectories="$(SolutionDir)$(ConfigurationName)\libiaxclient" + IgnoreDefaultLibraryNames="" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" + > + <File + RelativePath="..\..\..\simpleclient\testcall\testcall.c" + > + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl;inc;xsd" + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" + > + </Filter> + <Filter + Name="Resource Files" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" + UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" + > + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Deleted: trunk/simpleclient/testcall/testcall.vcproj =================================================================== --- trunk/simpleclient/testcall/testcall.vcproj 2007-10-03 18:05:48 UTC (rev 1172) +++ trunk/simpleclient/testcall/testcall.vcproj 2007-10-03 18:56:52 UTC (rev 1173) @@ -1,207 +0,0 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioProject - ProjectType="Visual C++" - Version="8.00" - Name="testcall" - ProjectGUID="{6F5AEE93-BA87-465B-BC75-C41C434FC4E4}" - RootNamespace="testcall" - Keyword="Win32Proj" - > - <Platforms> - <Platform - Name="Win32" - /> - </Platforms> - <ToolFiles> - </ToolFiles> - <Configurations> - <Configuration - Name="Debug|Win32" - OutputDirectory="$(SolutionDir)$(ConfigurationName)" - IntermediateDirectory="$(ConfigurationName)" - ConfigurationType="1" - CharacterSet="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="..\..\lib\portaudio\pa_common;..\..\lib\speex\libspeex;".. \..\lib\portaudio\pablio";..\..\lib;..\..\lib\SDL\include;"$(SDL_DIR)\include"" - PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_CONSOLE;WITH_THREAD;_USE_MATH_DEFINES;IAXC_IAX2;LIBIAX;SPEEX_PREPROCESS=1;PORTAUDIO_DIRECTX;USE_WIN_AUDIO=1;HIRES_TIME;NEWJB;PA_USE_TIMER_CALLBACK=1" - MinimalRebuild="true" - BasicRuntimeChecks="3" - RuntimeLibrary="3" - UsePrecompiledHeader="0" - WarningLevel="3" - Detect64BitPortabilityProblems="true" - DebugInformationFormat="4" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - AdditionalDependencies="dsound.lib iaxclient.lib libtheora.lib libogg.lib SDL.lib wsock32.lib winmm.lib videolib.lib libiax2.lib gsm.lib portaudio.lib libspeex.lib strmiids.lib portmixerd.lib" - OutputFile="$(OutDir)\..\..\simpleclient\testcall\Debug\$(ProjectName).exe" - LinkIncremental="2" - AdditionalLibraryDirectories=""$(DXSDK_DIR)\lib\x86";..\..\lib\Debug;"$(SDL_DIR)\lib";"$(PSDK_DIR)\lib";..\..\lib\portmixer\winproj" - IgnoreDefaultLibraryNames="libcmtd.lib" - GenerateDebugInformation="true" - SubSystem="1" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Release|Win32" - OutputDirectory="$(SolutionDir)$(ConfigurationName)" - IntermediateDirectory="$(ConfigurationName)" - ConfigurationType="1" - CharacterSet="1" - WholeProgramOptimization="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="..\..\lib\portaudio\pa_common;..\..\lib\speex\libspeex;".. \..\lib\portaudio\pablio";..\..\lib;..\..\lib\SDL\include;"$(SDL_DIR)\include"" - PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_CONSOLE;WITH_THREAD;_USE_MATH_DEFINES;IAXC_IAX2;LIBIAX;SPEEX_PREPROCESS=1;PORTAUDIO_DIRECTX;USE_WIN_AUDIO=1;HIRES_TIME;NEWJB;PA_USE_TIMER_CALLBACK=1" - RuntimeLibrary="2" - UsePrecompiledHeader="0" - WarningLevel="3" - Detect64BitPortabilityProblems="true" - DebugInformationFormat="3" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - IgnoreImportLibrary="false" - AdditionalDependencies="dsound.lib iaxclient.lib libtheora.lib libogg.lib SDL.lib wsock32.lib winmm.lib videolib.lib libiax2.lib gsm.lib portaudio.lib libspeex.lib strmiids.lib portmixer.lib" - LinkIncremental="1" - AdditionalLibraryDirectories=""$(DXSDK_DIR)\lib\x86";..\..\lib\Release;"$(SDL_DIR)\lib";"$(PSDK_DIR)\lib";..\..\lib\portmixer\winproj" - IgnoreDefaultLibraryNames="msvcrtd.lib;msvcrt.lib;libcmtd.lib" - GenerateDebugInformation="true" - SubSystem="1" - OptimizeReferences="2" - EnableCOMDATFolding="2" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - </Configurations> - <References> - </References> - <Files> - <Filter - Name="Source Files" - Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" - UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" - > - <File - RelativePath="..\..\simpleclient\testcall\testcall.c" - > - </File> - </Filter> - <Filter - Name="Header Files" - Filter="h;hpp;hxx;hm;inl;inc;xsd" - UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" - > - </Filter> - <Filter - Name="Resource Files" - Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" - UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" - > - </Filter> - </Files> - <Globals> - </Globals> -</VisualStudioProject> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jpg...@us...> - 2007-10-03 18:05:43
|
Revision: 1172 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1172&view=rev Author: jpgrayson Date: 2007-10-03 11:05:48 -0700 (Wed, 03 Oct 2007) Log Message: ----------- Backport fix from trunk to use floats. Modified Paths: -------------- branches/2.0/simpleclient/testcall/testcall.c Modified: branches/2.0/simpleclient/testcall/testcall.c =================================================================== --- branches/2.0/simpleclient/testcall/testcall.c 2007-10-03 17:42:50 UTC (rev 1171) +++ branches/2.0/simpleclient/testcall/testcall.c 2007-10-03 18:05:48 UTC (rev 1172) @@ -27,7 +27,7 @@ #include "iaxclient.h" -#define LEVEL_INCREMENT 0.10 +#define LEVEL_INCREMENT 0.10f /* static int answered_call; */ static char *output_filename = NULL; @@ -163,8 +163,8 @@ char c; int i; char *dest = NULL; - double silence_threshold = -99; - double level; + float silence_threshold = -99.0f; + float level; f = stdout; @@ -185,7 +185,7 @@ break; case 's': if(i+1 >= argc) usage(); - silence_threshold = atof(argv[++i]); + silence_threshold = (float)atof(argv[++i]); break; case 'u': if(i+1 >= argc) usage(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jpg...@us...> - 2007-10-03 17:42:46
|
Revision: 1171 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1171&view=rev Author: jpgrayson Date: 2007-10-03 10:42:50 -0700 (Wed, 03 Oct 2007) Log Message: ----------- Backport fix from trunk to use floats instead of doubles. Modified Paths: -------------- branches/2.0/lib/audio_encode.c Modified: branches/2.0/lib/audio_encode.c =================================================================== --- branches/2.0/lib/audio_encode.c 2007-10-03 17:37:45 UTC (rev 1170) +++ branches/2.0/lib/audio_encode.c 2007-10-03 17:42:50 UTC (rev 1171) @@ -57,8 +57,8 @@ { /* avoid calling log10() on zero which yields inf or * negative numbers which yield nan */ - if ( vol <= 0.0 ) - return -99.9; + if ( vol <= 0.0f ) + return -99.9f; else return log10f(vol) * 20; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jpg...@us...> - 2007-10-03 17:37:56
|
Revision: 1170 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1170&view=rev Author: jpgrayson Date: 2007-10-03 10:37:45 -0700 (Wed, 03 Oct 2007) Log Message: ----------- Use floats exclusively instead of doubles to match the iaxclient API. Modified Paths: -------------- trunk/simpleclient/testcall/testcall.c Modified: trunk/simpleclient/testcall/testcall.c =================================================================== --- trunk/simpleclient/testcall/testcall.c 2007-10-03 17:30:10 UTC (rev 1169) +++ trunk/simpleclient/testcall/testcall.c 2007-10-03 17:37:45 UTC (rev 1170) @@ -27,7 +27,7 @@ #include "iaxclient.h" -#define LEVEL_INCREMENT 0.10 +#define LEVEL_INCREMENT 0.10f /* static int answered_call; */ static char *output_filename = NULL; @@ -163,8 +163,8 @@ char c; int i; char *dest = NULL; - double silence_threshold = -99; - double level; + float silence_threshold = -99.0f; + float level; f = stdout; @@ -185,7 +185,7 @@ break; case 's': if(i+1 >= argc) usage(); - silence_threshold = atof(argv[++i]); + silence_threshold = (float)atof(argv[++i]); break; case 'u': if(i+1 >= argc) usage(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jpg...@us...> - 2007-10-03 17:30:06
|
Revision: 1169 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1169&view=rev Author: jpgrayson Date: 2007-10-03 10:30:10 -0700 (Wed, 03 Oct 2007) Log Message: ----------- Remove C99-isms that prevent building with msvc compiler. Modified Paths: -------------- trunk/lib/iaxclient_lib.c Modified: trunk/lib/iaxclient_lib.c =================================================================== --- trunk/lib/iaxclient_lib.c 2007-10-03 17:27:30 UTC (rev 1168) +++ trunk/lib/iaxclient_lib.c 2007-10-03 17:30:10 UTC (rev 1169) @@ -1809,10 +1809,11 @@ EXPORT int iaxc_audio_devices_set(int input, int output, int ring) { + int ret; + if ( test_mode ) return 0; - int ret = 0; get_iaxc_lock(); ret = audio_driver.select_devices(&audio_driver, input, output, ring); put_iaxc_lock(); @@ -1853,10 +1854,11 @@ EXPORT int iaxc_play_sound(struct iaxc_sound *s, int ring) { + int ret; + if ( test_mode ) return 0; - int ret = 0; get_iaxc_lock(); ret = audio_driver.play_sound(s,ring); put_iaxc_lock(); @@ -1865,10 +1867,11 @@ EXPORT int iaxc_stop_sound(int id) { + int ret; + if ( test_mode ) return 0; - int ret = 0; get_iaxc_lock(); ret = audio_driver.stop_sound(id); put_iaxc_lock(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jpg...@us...> - 2007-10-03 17:28:00
|
Revision: 1168 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1168&view=rev Author: jpgrayson Date: 2007-10-03 10:27:30 -0700 (Wed, 03 Oct 2007) Log Message: ----------- Whitespace and formatting. Modified Paths: -------------- trunk/lib/iaxclient_lib.c Modified: trunk/lib/iaxclient_lib.c =================================================================== --- trunk/lib/iaxclient_lib.c 2007-10-03 17:19:09 UTC (rev 1167) +++ trunk/lib/iaxclient_lib.c 2007-10-03 17:27:30 UTC (rev 1168) @@ -655,7 +655,7 @@ #endif IAXC_FORMAT_SPEEX; audio_format_preferred = IAXC_FORMAT_SPEEX; - + return 0; } @@ -758,7 +758,7 @@ get_iaxc_lock(); service_network(); - if ( !test_mode ) + if ( !test_mode ) service_audio(); // Check registration refresh once a second @@ -788,7 +788,7 @@ while ( !video_proc_thread_flag ) { - if (selected_call >= 0) + if ( selected_call >= 0 ) call = &calls[selected_call]; else call = NULL; @@ -922,7 +922,7 @@ \deprecated Q: Why do we continuously send IAXC_EVENT_LEVELS events when there is no selected call? - + A: So that certain users of iaxclient do not have to reset their vu meters when a call ends -- they can just count on getting level callbacks. This is a bit of a hack @@ -1088,7 +1088,7 @@ #ifdef WIN32 //fd: start: for some reason it loops here. Try to avoid it cycles_max--; - if (cycles_max<0) + if ( cycles_max < 0 ) { iaxc_millisleep(0); } @@ -1110,9 +1110,9 @@ continue; if ( !test_mode ) - audio_driver.output(&audio_driver, fr, + audio_driver.output(&audio_driver, fr, fr_samples - samples - mainbuf_delta); - + } while ( total_consumed < e->datalen ); } @@ -1197,8 +1197,8 @@ break; case IAX_EVENT_VOICE: handle_audio_event(e, callNo); - if ((calls[callNo].state & IAXC_CALL_STATE_OUTGOING) && - (calls[callNo].state & IAXC_CALL_STATE_RINGING) ) + if ( (calls[callNo].state & IAXC_CALL_STATE_OUTGOING) && + (calls[callNo].state & IAXC_CALL_STATE_RINGING) ) { calls[callNo].state &= ~IAXC_CALL_STATE_RINGING; iaxci_do_state_callback(callNo); @@ -1336,13 +1336,13 @@ get_iaxc_lock(); // if no call is selected, get a new appearance - if (selected_call < 0) + if ( selected_call < 0 ) { callNo = iaxc_first_free_call(); } else { // use selected call if not active, otherwise, get a new appearance - if (calls[selected_call].state & IAXC_CALL_STATE_ACTIVE) + if ( calls[selected_call].state & IAXC_CALL_STATE_ACTIVE ) { callNo = iaxc_first_free_call(); } else @@ -1351,14 +1351,14 @@ } } - if (callNo < 0) + if ( callNo < 0 ) { iaxci_usermsg(IAXC_STATUS, "No free call appearances"); goto iaxc_call_bail; } newsession = iax_session_new(); - if (!newsession) + if ( !newsession ) { iaxci_usermsg(IAXC_ERROR, "Can't make new session"); goto iaxc_call_bail; @@ -1368,7 +1368,7 @@ codec_destroy( callNo ); - if (ext) + if ( ext ) { strncpy(calls[callNo].remote_name, num, IAXC_EVENT_BUFSIZ); strncpy(calls[callNo].remote, ++ext, IAXC_EVENT_BUFSIZ); @@ -1378,10 +1378,10 @@ strncpy(calls[callNo].remote, "" , IAXC_EVENT_BUFSIZ); } - if (callerid_number != NULL) + if ( callerid_number != NULL ) strncpy(calls[callNo].callerid_number, callerid_number, IAXC_EVENT_BUFSIZ); - - if (callerid_name != NULL) + + if ( callerid_name != NULL ) strncpy(calls[callNo].callerid_name, callerid_name, IAXC_EVENT_BUFSIZ); strncpy(calls[callNo].local , calls[callNo].callerid_name, IAXC_EVENT_BUFSIZ); @@ -1394,7 +1394,7 @@ calls[callNo].last_ping = calls[callNo].last_activity; #ifdef USE_VIDEO - if (video) + if ( video ) iaxc_video_format_get_cap(&video_format_preferred, &video_format_capability); #endif @@ -1424,7 +1424,8 @@ EXPORT void iaxc_answer_call(int callNo) { - if (callNo < 0) return; + if ( callNo < 0 ) + return; calls[callNo].state |= IAXC_CALL_STATE_COMPLETE; calls[callNo].state &= ~IAXC_CALL_STATE_RINGING; @@ -1434,8 +1435,7 @@ EXPORT void iaxc_blind_transfer_call(int callNo, const char * dest_extension) { - if ((callNo < 0) || - !(calls[callNo].state & IAXC_CALL_STATE_ACTIVE)) + if ( callNo < 0 || !(calls[callNo].state & IAXC_CALL_STATE_ACTIVE) ) return; iax_transfer(calls[callNo].session, dest_extension); @@ -1443,9 +1443,9 @@ EXPORT void iaxc_setup_call_transfer(int sourceCallNo, int targetCallNo) { - if ((sourceCallNo < 0) || (targetCallNo < 0) || - ((calls[sourceCallNo].state & IAXC_CALL_STATE_ACTIVE) == 0) || - ((calls[targetCallNo].state & IAXC_CALL_STATE_ACTIVE) == 0)) + if ( sourceCallNo < 0 || targetCallNo < 0 || + !(calls[sourceCallNo].state & IAXC_CALL_STATE_ACTIVE) || + !(calls[targetCallNo].state & IAXC_CALL_STATE_ACTIVE) ) return; iax_setup_transfer(calls[sourceCallNo].session, calls[targetCallNo].session); @@ -1453,9 +1453,9 @@ static void iaxc_dump_one_call(int callNo) { - if (callNo < 0) + if ( callNo < 0 ) return; - if (calls[callNo].state == IAXC_CALL_STATE_FREE) + if ( calls[callNo].state == IAXC_CALL_STATE_FREE ) return; iax_hangup(calls[callNo].session,"Dumped Call"); @@ -1475,7 +1475,7 @@ EXPORT void iaxc_dump_call(void) { - if (selected_call >= 0) + if ( selected_call >= 0 ) { get_iaxc_lock(); iaxc_dump_one_call(selected_call); @@ -1485,7 +1485,7 @@ EXPORT void iaxc_reject_call(void) { - if (selected_call >= 0) + if ( selected_call >= 0 ) { iaxc_reject_call_number(selected_call); } @@ -1493,7 +1493,7 @@ EXPORT void iaxc_reject_call_number( int callNo ) { - if (callNo >= 0) + if ( callNo >= 0 ) { get_iaxc_lock(); iax_reject(calls[callNo].session, "Call rejected manually."); @@ -1504,10 +1504,10 @@ EXPORT void iaxc_send_dtmf(char digit) { - if (selected_call >= 0) + if ( selected_call >= 0 ) { get_iaxc_lock(); - if (calls[selected_call].state & IAXC_CALL_STATE_ACTIVE) + if ( calls[selected_call].state & IAXC_CALL_STATE_ACTIVE ) iax_send_dtmf(calls[selected_call].session,digit); put_iaxc_lock(); } @@ -1515,10 +1515,10 @@ EXPORT void iaxc_send_text(const char * text) { - if (selected_call >= 0) + if ( selected_call >= 0 ) { get_iaxc_lock(); - if (calls[selected_call].state & IAXC_CALL_STATE_ACTIVE) + if ( calls[selected_call].state & IAXC_CALL_STATE_ACTIVE ) iax_send_text(calls[selected_call].session, text); put_iaxc_lock(); } @@ -1526,10 +1526,10 @@ EXPORT void iaxc_send_url(const char * url, int link) { - if (selected_call >= 0) + if ( selected_call >= 0 ) { get_iaxc_lock(); - if (calls[selected_call].state & IAXC_CALL_STATE_ACTIVE) + if ( calls[selected_call].state & IAXC_CALL_STATE_ACTIVE ) iax_send_url(calls[selected_call].session, url, link); put_iaxc_lock(); } @@ -1539,7 +1539,7 @@ { int i; for ( i = 0; i < max_calls; i++ ) - if (calls[i].session == session) + if ( calls[i].session == session ) return i; return -1; } @@ -1549,7 +1549,8 @@ { struct iaxc_registration *reg; for (reg = registrations; reg != NULL; reg = reg->next) - if (reg->session == session) break; + if ( reg->session == session ) + break; return reg; } @@ -1563,7 +1564,7 @@ iax_destroy(reg->session); reg->session = NULL; - if (e->etype == IAX_EVENT_REGREJ) + if ( e->etype == IAX_EVENT_REGREJ ) { // we were rejected, so end the registration iaxc_remove_registration_by_id(reg->id); @@ -1662,7 +1663,7 @@ /* first, see if they even want video */ video_format = (e->ies.format & IAXC_VIDEO_FORMAT_MASK); - if (video_format) + if ( video_format ) { /* next, try _their_ preferred format */ video_format &= video_format_capability; @@ -1679,7 +1680,7 @@ /* finally, see if we have one in common */ video_format = video_format_capability & (e->ies.capability & IAXC_VIDEO_FORMAT_MASK); - + /* now choose amongst these, if we got one */ if ( video_format ) { @@ -1758,23 +1759,23 @@ #endif // first, see if this is an event for one of our calls. callNo = iaxc_find_call_by_session(e->session); - if (callNo >= 0) + if ( callNo >= 0 ) { iaxc_handle_network_event(e, callNo); - } else if ((reg = iaxc_find_registration_by_session(e->session)) != NULL) + } else if ( (reg = iaxc_find_registration_by_session(e->session)) != NULL ) { iaxc_handle_regreply(e,reg); - } else if ((e->etype == IAX_EVENT_REGACK) || (e->etype == IAX_EVENT_REGREJ)) + } else if ( e->etype == IAX_EVENT_REGACK || e->etype == IAX_EVENT_REGREJ ) { iaxci_usermsg(IAXC_ERROR, "Unexpected registration reply"); - } else if (e->etype == IAX_EVENT_REGREQ) + } else if ( e->etype == IAX_EVENT_REGREQ ) { iaxci_usermsg(IAXC_ERROR, "Registration requested by someone, but we don't understand!"); - } else if (e->etype == IAX_EVENT_CONNECT) + } else if ( e->etype == IAX_EVENT_CONNECT ) { iaxc_handle_connect(e); - } else if (e->etype == IAX_EVENT_TIMEOUT) + } else if ( e->etype == IAX_EVENT_TIMEOUT ) { iaxci_usermsg(IAXC_STATUS, "Timeout for a non-existant session. Dropping", @@ -1854,7 +1855,7 @@ { if ( test_mode ) return 0; - + int ret = 0; get_iaxc_lock(); ret = audio_driver.play_sound(s,ring); @@ -1866,7 +1867,7 @@ { if ( test_mode ) return 0; - + int ret = 0; get_iaxc_lock(); ret = audio_driver.stop_sound(id); @@ -1877,7 +1878,7 @@ EXPORT int iaxc_quelch(int callNo, int MOH) { struct iax_session *session = calls[callNo].session; - if (!session) + if ( !session ) return -1; return iax_quelch_moh(session, MOH); @@ -1899,13 +1900,11 @@ } #ifdef LIBVER - EXPORT char* iaxc_version(char * ver) { strncpy(ver, LIBVER, IAXC_EVENT_BUFSIZ); return ver; } - #endif EXPORT unsigned int iaxc_get_audio_prefs(void) @@ -1937,17 +1936,17 @@ EXPORT int iaxc_push_audio(void *data, unsigned int size, unsigned int samples) { struct iaxc_call *call; - - if (selected_call < 0) + + if ( selected_call < 0 ) return -1; - + call = &calls[selected_call]; if ( audio_prefs & IAXC_AUDIO_PREF_SEND_DISABLE ) return 0; - + //fprintf(stderr, "iaxc_push_audio: sending audio size %d\n", size); - + if ( iax_send_voice(call->session, call->format, data, size, samples) == -1 ) { fprintf(stderr, "iaxc_push_audio: failed to send audio frame of size %d on call %d\n", size, selected_call); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jpg...@us...> - 2007-10-03 17:19:04
|
Revision: 1167 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1167&view=rev Author: jpgrayson Date: 2007-10-03 10:19:09 -0700 (Wed, 03 Oct 2007) Log Message: ----------- Add slice.c and slice.h to build. This was breaking the windows build. Remove ws2_32.lib from additional dependencies for release and debug static configurations. This was causing warning messages. Modified Paths: -------------- trunk/contrib/win/vs2005/libiaxclient.vcproj Modified: trunk/contrib/win/vs2005/libiaxclient.vcproj =================================================================== --- trunk/contrib/win/vs2005/libiaxclient.vcproj 2007-10-03 17:17:10 UTC (rev 1166) +++ trunk/contrib/win/vs2005/libiaxclient.vcproj 2007-10-03 17:19:09 UTC (rev 1167) @@ -59,7 +59,7 @@ /> <Tool Name="VCLibrarianTool" - AdditionalDependencies="libiax2.lib libvideolib.lib libportmixer.lib libportaudio.lib libgsm.lib libogg.lib libspeex.lib libtheora.lib comsuppw.lib strmiids.lib wininet.lib ws2_32.lib" + AdditionalDependencies="libiax2.lib libvideolib.lib libportmixer.lib libportaudio.lib libgsm.lib libogg.lib libspeex.lib libtheora.lib comsuppw.lib strmiids.lib wininet.lib" AdditionalLibraryDirectories=""$(SolutionDir)$(ConfigurationName)\libiax2";"$(SolutionDir)$(ConfigurationName)\libvideolib";"$(SolutionDir)$(ConfigurationName)\libportaudio";"$(SolutionDir)$(ConfigurationName)\libportmixer";"$(SolutionDir)$(ConfigurationName)\libogg";"$(SolutionDir)$(ConfigurationName)\libtheora";"$(SolutionDir)$(ConfigurationName)\libspeex";"$(SolutionDir)$(ConfigurationName)\libgsm"" /> <Tool @@ -122,7 +122,7 @@ /> <Tool Name="VCLibrarianTool" - AdditionalDependencies="libiax2.lib libvideolib.lib libportmixer.lib libportaudio.lib libgsm.lib libogg.lib libspeex.lib libtheora.lib comsuppw.lib strmiids.lib wininet.lib ws2_32.lib" + AdditionalDependencies="libiax2.lib libvideolib.lib libportmixer.lib libportaudio.lib libgsm.lib libogg.lib libspeex.lib libtheora.lib comsuppw.lib strmiids.lib wininet.lib" AdditionalLibraryDirectories=""$(SolutionDir)$(ConfigurationName)\libiax2";"$(SolutionDir)$(ConfigurationName)\libvideolib";"$(SolutionDir)$(ConfigurationName)\libportaudio";"$(SolutionDir)$(ConfigurationName)\libportmixer";"$(SolutionDir)$(ConfigurationName)\libogg";"$(SolutionDir)$(ConfigurationName)\libtheora";"$(SolutionDir)$(ConfigurationName)\libspeex";"$(SolutionDir)$(ConfigurationName)\libgsm"" /> <Tool @@ -368,6 +368,10 @@ > </File> <File + RelativePath="..\..\..\lib\slice.c" + > + </File> + <File RelativePath="..\..\..\lib\video.c" > </File> @@ -430,6 +434,10 @@ > </File> <File + RelativePath="..\..\..\lib\slice.h" + > + </File> + <File RelativePath="..\..\..\lib\video.h" > </File> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jpg...@us...> - 2007-10-03 17:17:07
|
Revision: 1166 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1166&view=rev Author: jpgrayson Date: 2007-10-03 10:17:10 -0700 (Wed, 03 Oct 2007) Log Message: ----------- Use more portable rand() instead of random(). We do not really need the extra randomness of random() anyway. Modified Paths: -------------- trunk/lib/video.c Modified: trunk/lib/video.c =================================================================== --- trunk/lib/video.c 2007-10-03 17:15:52 UTC (rev 1165) +++ trunk/lib/video.c 2007-10-03 17:17:10 UTC (rev 1166) @@ -15,6 +15,7 @@ */ #include <assert.h> +#include <stdlib.h> #include "video.h" #include "slice.h" @@ -893,8 +894,9 @@ { int i; - if ( sc == NULL ) - sc = create_slicer_context(random(), iaxc_video_fragsize); + if ( !sc ) + sc = create_slicer_context((unsigned short)rand(), + iaxc_video_fragsize); slice(data, size, &slice_set, sc); for ( i = 0 ; i < slice_set.num_slices ; i++ ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jpg...@us...> - 2007-10-03 17:15:49
|
Revision: 1165 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1165&view=rev Author: jpgrayson Date: 2007-10-03 10:15:52 -0700 (Wed, 03 Oct 2007) Log Message: ----------- Be explicit about float use. Modified Paths: -------------- trunk/lib/audio_encode.c Modified: trunk/lib/audio_encode.c =================================================================== --- trunk/lib/audio_encode.c 2007-10-02 19:37:29 UTC (rev 1164) +++ trunk/lib/audio_encode.c 2007-10-03 17:15:52 UTC (rev 1165) @@ -57,8 +57,8 @@ { /* avoid calling log10() on zero which yields inf or * negative numbers which yield nan */ - if ( vol <= 0.0 ) - return -99.9; + if ( vol <= 0.0f ) + return -99.9f; else return log10f(vol) * 20; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sb...@us...> - 2007-10-02 19:37:26
|
Revision: 1164 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1164&view=rev Author: sbalea Date: 2007-10-02 12:37:29 -0700 (Tue, 02 Oct 2007) Log Message: ----------- Several changes to stresstest: - timed operation: stresstest will quit after a given timeout (controlled by the -t <timeout> CLI parameter, default never) - return codes that signal error conditions 0 - normal termination -1 - connection could not be established -2 - no media received - eliminate some unused code, move stuff around, beautify the code a little Modified Paths: -------------- trunk/simpleclient/stresstest/stresstest.c Modified: trunk/simpleclient/stresstest/stresstest.c =================================================================== --- trunk/simpleclient/stresstest/stresstest.c 2007-10-02 19:11:39 UTC (rev 1163) +++ trunk/simpleclient/stresstest/stresstest.c 2007-10-02 19:37:29 UTC (rev 1164) @@ -32,6 +32,11 @@ #define MAX_CALLS 1 +#define TEST_OK 0 +#define TEST_NO_CONNECTION -1 +#define TEST_NO_MEDIA -2 +#define TEST_UNKNOWN_ERROR -99 + //int format = IAXC_FORMAT_THEORA | IAXC_FORMAT_SPEEX; int format = IAXC_FORMAT_H263 | IAXC_FORMAT_H263_PLUS | IAXC_FORMAT_H264 | IAXC_FORMAT_MPEG4 | IAXC_FORMAT_THEORA; int formatp = IAXC_FORMAT_H264; //IAXC_FORMAT_THEORA; @@ -42,6 +47,7 @@ int fragsize = 1400; int call_established = 0; +int running = 0; // Forward declaration void process_text_message(char *message); @@ -51,34 +57,42 @@ int send_video = 1; int send_audio = 1; int print_netstats = 0; +int timeout = 0; +int video_frames_count = 0; +int audio_frames_count = 0; +struct timeval start_time; + // Audio-cosmetic... struct iaxc_sound sound_ringOUT, sound_ringIN; -/* routine called at exit to shutdown audio I/O and close nicely. -NOTE: If all this isnt done, the system doesnt not handle this -cleanly and has to be rebooted. What a pile of doo doo!! */ -void killem(void) +/* routine used to shutdown and close nicely.*/ +void hangup_and_exit(int code) { + fprintf(stderr,"Dump call\n"); + iaxc_dump_call(); + fprintf(stderr,"Sleep for 500 msec\n"); + iaxc_millisleep(500); + fprintf(stderr,"Stop processing thread\n"); + iaxc_stop_processing_thread(); fprintf(stderr,"Calling iaxc_shutdown..."); iaxc_shutdown(); - fprintf(stderr,"Done\nProgram terminated correctly.\n"); - exit(0); + fprintf(stderr,"Exiting with code %d\n", code); + exit(code); } void signal_handler(int signum) { if ( signum == SIGTERM || signum == SIGINT ) { - killem(); - exit(0); + running = 0; } } -void fatal_error(char *err) { - killem(); +void fatal_error(char *err) +{ fprintf(stderr, "FATAL ERROR: %s\n", err); - exit(1); + exit(TEST_UNKNOWN_ERROR); } int levels_callback(float input, float output) { @@ -123,17 +137,6 @@ return 0; } -void hangup_and_exit(void) -{ - iaxc_dump_call(); - fprintf(stderr,"Dumped call\n"); - iaxc_millisleep(1000); - fprintf(stderr,"Sleeped for 1000 msec\n"); - iaxc_stop_processing_thread(); - fprintf(stderr,"Stopped processing thread\n"); - killem(); -} - void process_text_message(char *message) { unsigned int prefs; @@ -170,6 +173,7 @@ "-a stop sending audio\n" "-l run file in a loop\n" "-n dump periodic netstats to stderr\n" + "-t <timeout> terminate after timeout seconds and report status via return code\n" "\n" ); exit(1); @@ -184,22 +188,10 @@ fprintf(stderr, "Call answered\n"); call_established = 1; } - // Finished the phase of handshaking for the call in entry - if (s.state == (IAXC_CALL_STATE_ACTIVE|IAXC_CALL_STATE_RINGING)) - { - fprintf(stderr,"Auto-Answering to caller %s on line %d...\n",s.remote,s.callNo); - //iaxc_unquelch(s.callNo); - iaxc_millisleep(1000); - iaxc_answer_call(s.callNo); - iaxc_select_call(s.callNo); - call_established = 1; - //iaxc_millisleep(1000); - return 0; - } if (s.state == IAXC_CALL_STATE_FREE) { - fprintf(stderr,"Disconnect from other end\n"); - hangup_and_exit(); + fprintf(stderr,"Call terminated\n"); + running = 0; } return 0; @@ -219,7 +211,11 @@ case IAXC_EVENT_STATE: return test_mode_state_callback(e.ev.call); case IAXC_EVENT_VIDEO: + video_frames_count++; + break; case IAXC_EVENT_AUDIO: + audio_frames_count++; + break; default: break; } @@ -236,6 +232,7 @@ int video_frame_index; static struct slice_set_t slice_set; unsigned short source_id; + struct timeval now; /* install signal handler to catch CRTL-Cs */ signal(SIGINT, signal_handler); @@ -275,6 +272,11 @@ case 'n': print_netstats = 1; break; + case 't': + if ( i+1 >= argc ) + usage(); + timeout = 1000 * atoi(argv[++i]); + break; default: usage(); } @@ -297,7 +299,10 @@ // Load ogg file load_ogg_file(ogg_file); } - + + // Get start time for timeouts + gettimeofday(&start_time, NULL); + // Initialize iaxclient iaxc_video_format_set(formatp, format, framerate, bitrate, width, height, fragsize); iaxc_set_test_mode(1); @@ -306,8 +311,8 @@ iaxc_set_formats(IAXC_FORMAT_SPEEX, IAXC_FORMAT_SPEEX); iaxc_video_bypass_jitter(0); - iaxc_set_audio_prefs(0); - iaxc_set_video_prefs(0); + iaxc_set_audio_prefs(IAXC_AUDIO_PREF_RECV_REMOTE_ENCODED); + iaxc_set_video_prefs(IAXC_VIDEO_PREF_RECV_REMOTE_ENCODED); iaxc_set_event_callback(test_mode_callback); // Crank the engine @@ -322,9 +327,15 @@ // Wait for the call to be established; while ( !call_established ) + { + gettimeofday(&now, NULL); + if ( timeout > 0 && iaxci_msecdiff(&now, &start_time) > timeout ) + hangup_and_exit(TEST_NO_CONNECTION); iaxc_millisleep(5); + } - while ( 42 ) + running = 1; + while ( running ) { // We only need this if we actually want to send something if ( ogg_file && ( send_audio || send_video ) ) @@ -346,8 +357,17 @@ // Tight spinloops are bad, mmmkay? iaxc_millisleep(5); + + // Exit after a positive timeout + gettimeofday(&now, NULL); + if ( timeout > 0 && iaxci_msecdiff(&now, &start_time) > timeout ) + running = 0; } - hangup_and_exit(); + fprintf(stderr, "Received %d audio frames and %d video frames\n", audio_frames_count, video_frames_count); + if ( audio_frames_count == 0 && video_frames_count == 0 ) + hangup_and_exit(TEST_NO_MEDIA); + else + hangup_and_exit(TEST_OK); return 0; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sb...@us...> - 2007-10-02 19:11:38
|
Revision: 1163 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1163&view=rev Author: sbalea Date: 2007-10-02 12:11:39 -0700 (Tue, 02 Oct 2007) Log Message: ----------- Do not attempt to destroy the audio driver when in test mode (crash potential) Modified Paths: -------------- trunk/lib/iaxclient_lib.c Modified: trunk/lib/iaxclient_lib.c =================================================================== --- trunk/lib/iaxclient_lib.c 2007-10-01 05:23:11 UTC (rev 1162) +++ trunk/lib/iaxclient_lib.c 2007-10-02 19:11:39 UTC (rev 1163) @@ -665,7 +665,6 @@ get_iaxc_lock(); - audio_driver.destroy(&audio_driver); if ( !test_mode ) { audio_driver.destroy(&audio_driver); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <do...@us...> - 2007-10-01 05:23:08
|
Revision: 1162 http://iaxclient.svn.sourceforge.net/iaxclient/?rev=1162&view=rev Author: dohpaz Date: 2007-09-30 22:23:11 -0700 (Sun, 30 Sep 2007) Log Message: ----------- See any operating system documentation about shared libraries for Improved handling of aux device for ring in portable audio. + Don't assume that just because the output device uses virtual mono (stereo) that the ring output device will. + Start out trying to open the ring device as mono, then fall back to stereo + Don't specify an input device (pass in NULL as per PortAudio V19 docs). + Properly handle virtual mono in pa_aux_callback. Modified Paths: -------------- trunk/lib/audio_portaudio.c Modified: trunk/lib/audio_portaudio.c =================================================================== --- trunk/lib/audio_portaudio.c 2007-09-26 20:11:06 UTC (rev 1161) +++ trunk/lib/audio_portaudio.c 2007-10-01 05:23:11 UTC (rev 1162) @@ -131,6 +131,7 @@ static int auxStream; static int virtualMonoIn; static int virtualMonoOut; +static int virtualMonoRing; static int running; @@ -227,12 +228,12 @@ } } -static void mix_slin(short *dst, short *src, int samples) +static void mix_slin(short *dst, short *src, int samples, int virtualMono) { int i=0,val=0; for ( i=0; i < samples; i++ ) { - if ( virtualMonoOut ) + if ( virtualMono ) val = ((short *)dst)[2*i] + ((short *)src)[i]; else val = ((short *)dst)[i] + ((short *)src)[i]; @@ -245,7 +246,7 @@ val = -0x7fff+1; } - if ( virtualMonoOut ) + if ( virtualMono ) { dst[2*i] = val; dst[2*i+1] = val; @@ -257,7 +258,7 @@ } } -static int pa_mix_sounds (void *outputBuffer, unsigned long frames, int channel) +static int pa_mix_sounds (void *outputBuffer, unsigned long frames, int channel, int virtualMono) { struct iaxc_sound *s; struct iaxc_sound **sp; @@ -305,7 +306,7 @@ /* mix in the frames */ mix_slin((short *)outputBuffer + outpos, - s->data+s->pos, n); + s->data+s->pos, n, virtualMono); s->pos += n; outpos += n; @@ -497,10 +498,10 @@ /* zero underflowed space [ silence might be more golden * than garbage? ] */ - pa_mix_sounds(outputBuffer, samplesPerFrame, 0); + pa_mix_sounds(outputBuffer, samplesPerFrame, 0, virtualMonoOut); if(!auxStream) - pa_mix_sounds(outputBuffer, samplesPerFrame, 1); + pa_mix_sounds(outputBuffer, samplesPerFrame, 1, virtualMonoOut); } @@ -535,13 +536,12 @@ PaStreamCallbackFlags statusFlags, void *userData) { - int totBytes = samplesPerFrame * sizeof(SAMPLE); + int totBytes = samplesPerFrame * sizeof(SAMPLE) * (virtualMonoRing + 1); - /* XXX: need to handle virtualMonoOut case!!! */ if ( outputBuffer ) { memset((char *)outputBuffer, 0, totBytes); - pa_mix_sounds(outputBuffer, samplesPerFrame, 1); + pa_mix_sounds(outputBuffer, samplesPerFrame, 1, virtualMonoRing); } return 0; } @@ -680,36 +680,20 @@ { PaError err; - /* FEEDBACK - iaxclient seems to assume that the ring device is a - * mono device. I can't find any mono devices on the Mac and so - * ring device opening will fail. My code assumes the ring device - * is a stereo device - this might break stuff */ - struct PaStreamParameters ring_stream_params, no_device; + struct PaStreamParameters ring_stream_params; - struct PaStreamParameters in_stream_params; - in_stream_params.device = selectedInput; - in_stream_params.channelCount = virtualMonoOut + 1; - in_stream_params.sampleFormat = paInt16; - in_stream_params.suggestedLatency = - Pa_GetDeviceInfo(selectedInput)->defaultLowInputLatency; - in_stream_params.hostApiSpecificStreamInfo = NULL; - + // setup the ring parameters ring_stream_params.device = selectedRing; - ring_stream_params.channelCount = virtualMonoOut+1; ring_stream_params.sampleFormat = paInt16; ring_stream_params.suggestedLatency = Pa_GetDeviceInfo(selectedRing)->defaultLowOutputLatency; ring_stream_params.hostApiSpecificStreamInfo = NULL; - no_device.device = paNoDevice; - no_device.channelCount = 0; - no_device.sampleFormat = paInt16; - no_device.suggestedLatency = - Pa_GetDeviceInfo(selectedInput)->defaultLowInputLatency; //TODOC - no_device.hostApiSpecificStreamInfo = NULL; + // first we'll try mono + ring_stream_params.channelCount = 1; err = Pa_OpenStream ( &aStream, - &in_stream_params, + NULL, &ring_stream_params, sample_rate, paFramesPerBufferUnspecified, //FEEBACK - unsure if appropriate @@ -719,28 +703,33 @@ if ( err != paNoError ) { - /* FEEDBACK, we try one more time, maybe ring device is a mono - * output device */ - err = Pa_OpenStream ( &aStream, - &no_device, + // next we'll try virtual mono (stereo) + ring_stream_params.channelCount = 1; + + err = Pa_OpenStream ( &aStream, + NULL, &ring_stream_params, sample_rate, paFramesPerBufferUnspecified, //FEEBACK - unsure if appropriate - paNoFlag, /* flags */ + paNoFlag, (PaStreamCallback *)pa_aux_callback, NULL); + } // mmok, failure... if ( err != paNoError ) { - //fprintf(stderr, "Failure opening ring device with params: id: %d, output %d, default output %d\n", - //selectedRing, selectedOutput, Pa_GetDefaultOutputDevice()); + // fprintf(stderr, "Failure opening ring device with params: id: %d, output %d, default output %d\n", + // selectedRing, selectedOutput, Pa_GetDefaultOutputDevice()); handle_paerror(err, "opening separate ring stream"); return -1; } + // Determine whether virtual mono is being used + virtualMonoRing = ring_stream_params.channelCount - 1; + return 0; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |