update to snapshot spandsp-20090427
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13177 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
9355013017
commit
a802976818
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: async.c,v 1.18 2009/02/10 13:06:46 steveu Exp $
|
||||
* $Id: async.c,v 1.19 2009/04/23 14:12:34 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -67,6 +67,10 @@ SPAN_DECLARE(const char *) signal_status_to_str(int status)
|
|||
return "Shutdown complete";
|
||||
case SIG_STATUS_OCTET_REPORT:
|
||||
return "Octet report";
|
||||
case SIG_STATUS_POOR_SIGNAL_QUALITY:
|
||||
return "Poor signal quality";
|
||||
case SIG_STATUS_MODEM_RETRAIN_OCCURRED:
|
||||
return "Modem retrain occurred";
|
||||
}
|
||||
return "???";
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: at_interpreter.c,v 1.37 2009/03/23 14:17:42 steveu Exp $
|
||||
* $Id: at_interpreter.c,v 1.39 2009/04/24 22:35:25 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -519,6 +519,64 @@ static int parse_2_out(at_state_t *s, const char **t, int *target1, int max_valu
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
static int parse_n_out(at_state_t *s,
|
||||
const char **t,
|
||||
int *targets[],
|
||||
const int max_values[],
|
||||
int entries,
|
||||
const char *prefix,
|
||||
const char *def)
|
||||
{
|
||||
char buf[100];
|
||||
int val;
|
||||
int len;
|
||||
int i;
|
||||
|
||||
switch (*(*t)++)
|
||||
{
|
||||
case '=':
|
||||
switch (**t)
|
||||
{
|
||||
case '?':
|
||||
/* Show possible values */
|
||||
(*t)++;
|
||||
snprintf(buf, sizeof(buf), "%s%s", (prefix) ? prefix : "", def);
|
||||
at_put_response(s, buf);
|
||||
break;
|
||||
default:
|
||||
/* Set value */
|
||||
for (i = 0; i < entries; i++)
|
||||
{
|
||||
if ((val = parse_num(t, max_values[i])) < 0)
|
||||
return FALSE;
|
||||
if (targets[i])
|
||||
*targets[i] = val;
|
||||
if (**t != ',')
|
||||
break;
|
||||
(*t)++;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case '?':
|
||||
/* Show current value */
|
||||
len = snprintf(buf, sizeof(buf), "%s", (prefix) ? prefix : "");
|
||||
for (i = 0; i < entries; i++)
|
||||
{
|
||||
if (i > 0)
|
||||
len += snprintf(&buf[len], sizeof(buf) - len, ",");
|
||||
val = (targets[i]) ? *targets[i] : 0;
|
||||
len += snprintf(&buf[len], sizeof(buf) - len, "%d", val);
|
||||
}
|
||||
at_put_response(s, buf);
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
static int parse_hex_out(at_state_t *s, const char **t, int *target, int max_value, const char *prefix, const char *def)
|
||||
{
|
||||
char buf[100];
|
||||
|
@ -3191,9 +3249,76 @@ static const char *at_cmd_plus_ER(at_state_t *s, const char *t)
|
|||
|
||||
static const char *at_cmd_plus_ES(at_state_t *s, const char *t)
|
||||
{
|
||||
static const int maxes[3] =
|
||||
{
|
||||
7, 4, 9
|
||||
};
|
||||
int *locations[3];
|
||||
|
||||
/* V.250 6.5.1 - Error control selection */
|
||||
|
||||
/* orig_rqst
|
||||
0: Direct mode
|
||||
1: Initiate call with Buffered mode only
|
||||
2: Initiate V.42 without Detection Phase. If Rec. V.8 is in use, this is a request to disable V.42 Detection Phase
|
||||
3: Initiate V.42 with Detection Phase
|
||||
4: Initiate Altemative Protocol
|
||||
5: Initiate Synchronous Mode when connection is completed, immediately after the entire CONNECT result code
|
||||
is delivered. V.24 circuits 113 and 115 are activated when Data State is entered
|
||||
6: Initiate Synchronous Access Mode when connection is completed, and Data State is entered
|
||||
7: Initiate Frame Tunnelling Mode when connection is completed, and Data State is entered
|
||||
|
||||
orig_fbk
|
||||
0: Error control optional (either LAPM or Alternative acceptable); if error control not established, maintain
|
||||
DTE-DCE data rate and use V.14 buffered mode with flow control during non-error-control operation
|
||||
1: Error control optional (either LAPM or Alternative acceptable); if error control not established, change
|
||||
DTE-DCE data rate to match line rate and use Direct mode
|
||||
2: Error control required (either LAPM or Alternative acceptable); if error control not established, disconnect
|
||||
3: Error control required (only LAPM acceptable); if error control not established, disconnect
|
||||
4: Error control required (only Altemative protocol acceptable); if error control not established, disconnect
|
||||
|
||||
ans_fbk
|
||||
0: Direct mode
|
||||
1: Error control disabled, use Buffered mode
|
||||
2: Error control optional (either LAPM or Alternative acceptable); if error control not established, maintain
|
||||
DTE-DCE data rate and use local buffering and flow control during non-error-control operation
|
||||
3: Error control optional (either LAPM or Alternative acceptable); if error control not established, change
|
||||
DTE-DCE data rate to match line rate and use Direct mode
|
||||
4: Error control required (either LAPM or Alternative acceptable); if error control not established, disconnect
|
||||
5: Error control required (only LAPM acceptable); if error control not established, disconnect
|
||||
6: Error control required (only Alternative protocol acceptable); if error control not established, disconnect
|
||||
7: Initiate Synchronous Mode when connection is completed, immediately after the entire CONNECT result code
|
||||
is delivered. V.24 cicuits 113 and 115 are activated when Data State is entered
|
||||
8: Initiate Synchronous Access Mode when connection is completed, and Data State is entered
|
||||
9: Initiate Frame Tunnelling Mode when connection is completed, and Data State is entered */
|
||||
|
||||
/* TODO: */
|
||||
t += 3;
|
||||
locations[0] = NULL;
|
||||
locations[1] = NULL;
|
||||
locations[2] = NULL;
|
||||
if (!parse_n_out(s, &t, locations, maxes, 3, "+ES:", "(0-7),(0-4),(0-9)"))
|
||||
return NULL;
|
||||
return t;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
static const char *at_cmd_plus_ESA(at_state_t *s, const char *t)
|
||||
{
|
||||
static const int maxes[8] =
|
||||
{
|
||||
2, 1, 1, 1, 2, 1, 255, 255
|
||||
};
|
||||
int *locations[8];
|
||||
int i;
|
||||
|
||||
/* V.80 8.2 - Synchronous access mode configuration */
|
||||
/* TODO: */
|
||||
t += 4;
|
||||
for (i = 0; i < 8; i++)
|
||||
locations[i] = NULL;
|
||||
if (!parse_n_out(s, &t, locations, maxes, 8, "+ESA:", "(0-2),(0-1),(0-1),(0-1),(0-2),(0-1),(0-255),(0-255)"))
|
||||
return NULL;
|
||||
return t;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
@ -3800,18 +3925,66 @@ static const char *at_cmd_plus_GSN(at_state_t *s, const char *t)
|
|||
|
||||
static const char *at_cmd_plus_IBC(at_state_t *s, const char *t)
|
||||
{
|
||||
/* TIA-617 8.3 - Control of in-band control */
|
||||
static const int maxes[13] =
|
||||
{
|
||||
2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
|
||||
};
|
||||
int *locations[13];
|
||||
int i;
|
||||
|
||||
/* V.80 7.9 - Control of in-band control */
|
||||
/* TODO: */
|
||||
t += 4;
|
||||
/* 0: In-band control service disabled
|
||||
1: In-band control service enabled, 7-bit codes allowed, and top bit insignificant
|
||||
2; In-band control service enabled, 7-bit codes allowed, and 8-bit codes available
|
||||
|
||||
Circuits 105, 106, 107, 108, 109, 110, 125, 132, 133, 135, 142 in that order. For each one:
|
||||
0: disabled
|
||||
1: enabled
|
||||
|
||||
DCE line connect status reports:
|
||||
0: disabled
|
||||
1: enabled */
|
||||
for (i = 0; i < 13; i++)
|
||||
locations[i] = NULL;
|
||||
if (!parse_n_out(s, &t, locations, maxes, 13, "+IBC:", "(0-2),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0.1),(0,1)"))
|
||||
return NULL;
|
||||
return t;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
static const char *at_cmd_plus_IBM(at_state_t *s, const char *t)
|
||||
{
|
||||
/* TIA-617 8.4 - In-Band MARK idle reporting control */
|
||||
static const int maxes[3] =
|
||||
{
|
||||
7, 255, 255
|
||||
};
|
||||
int *locations[3];
|
||||
|
||||
/* V.80 7.10 - In-band MARK idle reporting control */
|
||||
/* TODO: */
|
||||
t += 4;
|
||||
/* Report control
|
||||
0: No reports
|
||||
1: Report only once when <T1 > expires
|
||||
2: Report each time <T2> expires
|
||||
3: Report once when <T1> expires, and then each time <T2> expires
|
||||
4: Report only when the Mark-ldle Period ends; T3 = the entire interval
|
||||
5: Report the first time when <T1> is exceeded, and then once more when the mark idle period ends
|
||||
6: Report each time when <T2> is exceeded, and then once more when the mark idle period ends;
|
||||
T3 = entire interval -- N*T2
|
||||
7: report the first time when <T1> is exceeded, and then each time <T2> is exceeded, and then once
|
||||
more when the mark idle period ends; T3 = entire mark idle period -- N*T2 - T1
|
||||
|
||||
T1 in units of 10ms
|
||||
|
||||
T2 in units of 10ms */
|
||||
locations[0] = NULL;
|
||||
locations[1] = NULL;
|
||||
locations[2] = NULL;
|
||||
if (!parse_n_out(s, &t, locations, maxes, 3, "+IBM:", "(0-7),(0-255),(0-255)"))
|
||||
return NULL;
|
||||
return t;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
@ -3821,19 +3994,19 @@ static const char *at_cmd_plus_ICF(at_state_t *s, const char *t)
|
|||
/* V.250 6.2.11 - DTE-DCE character framing */
|
||||
t += 4;
|
||||
/* Character format
|
||||
0 auto detect
|
||||
1 8 data 2 stop
|
||||
2 8 data 1 parity 1 stop
|
||||
3 8 data 1 stop
|
||||
4 7 data 2 stop
|
||||
5 7 data 1 parity 1 stop
|
||||
6 7 data 1 stop
|
||||
0: auto detect
|
||||
1: 8 data 2 stop
|
||||
2: 8 data 1 parity 1 stop
|
||||
3: 8 data 1 stop
|
||||
4: 7 data 2 stop
|
||||
5: 7 data 1 parity 1 stop
|
||||
6: 7 data 1 stop
|
||||
|
||||
parity
|
||||
0 Odd
|
||||
1 Even
|
||||
2 Mark
|
||||
3 Space */
|
||||
Parity
|
||||
0: Odd
|
||||
1: Even
|
||||
2: Mark
|
||||
3: Space */
|
||||
if (!parse_2_out(s, &t, &s->dte_char_format, 6, &s->dte_parity, 3, "+ICF:", "(0-6),(0-3)"))
|
||||
return NULL;
|
||||
return t;
|
||||
|
@ -3909,6 +4082,15 @@ static const char *at_cmd_plus_IRTS(at_state_t *s, const char *t)
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
static const char *at_cmd_plus_ITF(at_state_t *s, const char *t)
|
||||
{
|
||||
/* V.80 8.4 - Transmit flow control thresholds */
|
||||
/* TODO: */
|
||||
t += 5;
|
||||
return t;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
static const char *at_cmd_plus_MA(at_state_t *s, const char *t)
|
||||
{
|
||||
/* V.250 6.4.2 - Modulation automode control */
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: fax.c,v 1.91 2009/04/12 03:29:58 steveu Exp $
|
||||
* $Id: fax.c,v 1.92 2009/04/23 15:48:21 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -575,7 +575,7 @@ SPAN_DECLARE(fax_state_t *) fax_init(fax_state_t *s, int calling_party)
|
|||
(void *) s,
|
||||
fax_send_hdlc,
|
||||
(void *) s);
|
||||
t30_set_supported_modems(&s->t30, T30_SUPPORT_V27TER | T30_SUPPORT_V29);
|
||||
t30_set_supported_modems(&s->t30, T30_SUPPORT_V27TER | T30_SUPPORT_V29 | T30_SUPPORT_V17);
|
||||
t30_restart(&s->t30);
|
||||
#if defined(LOG_FAX_AUDIO)
|
||||
{
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
* Computer Science, Speech Group
|
||||
* Chengxiang Lu and Alex Hauptmann
|
||||
*
|
||||
* $Id: g722.c,v 1.9 2009/02/21 04:27:46 steveu Exp $
|
||||
* $Id: g722.c,v 1.10 2009/04/22 12:57:40 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -415,7 +415,8 @@ SPAN_DECLARE(int) g722_decode(g722_decode_state_t *s, int16_t amp[], const uint8
|
|||
{
|
||||
if (s->eight_k)
|
||||
{
|
||||
amp[outlen++] = (int16_t) rlow;
|
||||
/* We shift by 1 to allow for the 15 bit input to the G.722 algorithm. */
|
||||
amp[outlen++] = (int16_t) (rlow << 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -424,8 +425,10 @@ SPAN_DECLARE(int) g722_decode(g722_decode_state_t *s, int16_t amp[], const uint8
|
|||
s->y[s->ptr] = (int16_t) (rlow - rhigh);
|
||||
if (++s->ptr >= 12)
|
||||
s->ptr = 0;
|
||||
amp[outlen++] = (int16_t) (vec_circular_dot_prodi16(s->y, qmf_coeffs_rev, 12, s->ptr) >> 12);
|
||||
amp[outlen++] = (int16_t) (vec_circular_dot_prodi16(s->x, qmf_coeffs_fwd, 12, s->ptr) >> 12);
|
||||
/* We shift by 12 to allow for the QMF filters (DC gain = 4096), less 1
|
||||
to allow for the 15 bit input to the G.722 algorithm. */
|
||||
amp[outlen++] = (int16_t) (vec_circular_dot_prodi16(s->y, qmf_coeffs_rev, 12, s->ptr) >> 11);
|
||||
amp[outlen++] = (int16_t) (vec_circular_dot_prodi16(s->x, qmf_coeffs_fwd, 12, s->ptr) >> 11);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -511,7 +514,8 @@ SPAN_DECLARE(int) g722_encode(g722_encode_state_t *s, uint8_t g722_data[], const
|
|||
{
|
||||
if (s->eight_k)
|
||||
{
|
||||
xlow = amp[j++];
|
||||
/* We shift by 1 to allow for the 15 bit input to the G.722 algorithm. */
|
||||
xlow = amp[j++] >> 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -522,8 +526,11 @@ SPAN_DECLARE(int) g722_encode(g722_encode_state_t *s, uint8_t g722_data[], const
|
|||
s->ptr = 0;
|
||||
sumodd = vec_circular_dot_prodi16(s->x, qmf_coeffs_fwd, 12, s->ptr);
|
||||
sumeven = vec_circular_dot_prodi16(s->y, qmf_coeffs_rev, 12, s->ptr);
|
||||
xlow = (int16_t) ((sumeven + sumodd) >> 13);
|
||||
xhigh = (int16_t) ((sumeven - sumodd) >> 13);
|
||||
/* We shift by 12 to allow for the QMF filters (DC gain = 4096), plus 1
|
||||
to allow for us summing two filters, plus 1 to allow for the 15 bit
|
||||
input to the G.722 algorithm. */
|
||||
xlow = (int16_t) ((sumeven + sumodd) >> 14);
|
||||
xhigh = (int16_t) ((sumeven - sumodd) >> 14);
|
||||
}
|
||||
}
|
||||
/* Block 1L, SUBTRA */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 10.00
|
||||
# Visual Studio 2008
|
||||
# Visual C++ Express 2008
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_at_dictionary", "msvc\make_at_dictionary.2008.vcproj", "{DEE932AB-5911-4700-9EEB-8C7090A0A330}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_modem_filter", "msvc\make_modem_filter.2008.vcproj", "{329A6FA0-0FCC-4435-A950-E670AEFA9838}"
|
||||
|
@ -19,6 +19,41 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtiff", "libtiff.2008.vcp
|
|||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download TIFF", "msvc\Download_TIFF.2008.vcproj", "{2B8A45C9-FEB4-4734-AB37-8DB9DB899917}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "t38_core_tests", "..\tests\msvc\t38_core_tests.vcproj", "{A34A9D0E-A7E2-4A04-B044-7BB2FE709EF3}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{1CBB0077-18C5-455F-801C-0A0CE7B0BBF5} = {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "t38_non_ecm_buffer_tests", "..\tests\msvc\t38_non_ecm_buffer_tests.vcproj", "{80A3D9D9-3846-4DA5-8676-F940D725EA62}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{1CBB0077-18C5-455F-801C-0A0CE7B0BBF5} = {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vector_int_tests", "..\tests\msvc\vector_int_tests.vcproj", "{80A60464-29E8-4EE8-BAFA-8708B7C08CC3}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{1CBB0077-18C5-455F-801C-0A0CE7B0BBF5} = {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vector_float_tests", "..\tests\msvc\vector_float_tests.vcproj", "{EA745FF7-9E4B-4C13-BA19-2EE8165A6245}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{1CBB0077-18C5-455F-801C-0A0CE7B0BBF5} = {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "complex_tests", "..\tests\msvc\complex_tests.vcproj", "{A349379F-0FEA-49C8-9535-05F39663337B}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{1CBB0077-18C5-455F-801C-0A0CE7B0BBF5} = {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "complex_vector_float_tests", "..\tests\msvc\complex_vector_float_tests.vcproj", "{2B0D705C-1CF2-401C-BFBC-A43FB806908C}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{1CBB0077-18C5-455F-801C-0A0CE7B0BBF5} = {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "complex_vector_int_tests", "..\tests\msvc\complex_vector_int_tests.vcproj", "{C2E8B4D1-A398-4D57-94F8-B61F20C7D514}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{1CBB0077-18C5-455F-801C-0A0CE7B0BBF5} = {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
All|Win32 = All|Win32
|
||||
|
@ -76,6 +111,69 @@ Global
|
|||
{2B8A45C9-FEB4-4734-AB37-8DB9DB899917}.Release|Win32.ActiveCfg = All|Win32
|
||||
{2B8A45C9-FEB4-4734-AB37-8DB9DB899917}.Release|Win32.Build.0 = All|Win32
|
||||
{2B8A45C9-FEB4-4734-AB37-8DB9DB899917}.Release|x64.ActiveCfg = All|Win32
|
||||
{A34A9D0E-A7E2-4A04-B044-7BB2FE709EF3}.All|Win32.ActiveCfg = Release|Win32
|
||||
{A34A9D0E-A7E2-4A04-B044-7BB2FE709EF3}.All|Win32.Build.0 = Release|Win32
|
||||
{A34A9D0E-A7E2-4A04-B044-7BB2FE709EF3}.All|x64.ActiveCfg = Release|Win32
|
||||
{A34A9D0E-A7E2-4A04-B044-7BB2FE709EF3}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{A34A9D0E-A7E2-4A04-B044-7BB2FE709EF3}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{A34A9D0E-A7E2-4A04-B044-7BB2FE709EF3}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{A34A9D0E-A7E2-4A04-B044-7BB2FE709EF3}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{A34A9D0E-A7E2-4A04-B044-7BB2FE709EF3}.Release|Win32.Build.0 = Release|Win32
|
||||
{A34A9D0E-A7E2-4A04-B044-7BB2FE709EF3}.Release|x64.ActiveCfg = Release|Win32
|
||||
{80A3D9D9-3846-4DA5-8676-F940D725EA62}.All|Win32.ActiveCfg = Release|Win32
|
||||
{80A3D9D9-3846-4DA5-8676-F940D725EA62}.All|Win32.Build.0 = Release|Win32
|
||||
{80A3D9D9-3846-4DA5-8676-F940D725EA62}.All|x64.ActiveCfg = Release|Win32
|
||||
{80A3D9D9-3846-4DA5-8676-F940D725EA62}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{80A3D9D9-3846-4DA5-8676-F940D725EA62}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{80A3D9D9-3846-4DA5-8676-F940D725EA62}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{80A3D9D9-3846-4DA5-8676-F940D725EA62}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{80A3D9D9-3846-4DA5-8676-F940D725EA62}.Release|Win32.Build.0 = Release|Win32
|
||||
{80A3D9D9-3846-4DA5-8676-F940D725EA62}.Release|x64.ActiveCfg = Release|Win32
|
||||
{80A60464-29E8-4EE8-BAFA-8708B7C08CC3}.All|Win32.ActiveCfg = Release|Win32
|
||||
{80A60464-29E8-4EE8-BAFA-8708B7C08CC3}.All|Win32.Build.0 = Release|Win32
|
||||
{80A60464-29E8-4EE8-BAFA-8708B7C08CC3}.All|x64.ActiveCfg = Release|Win32
|
||||
{80A60464-29E8-4EE8-BAFA-8708B7C08CC3}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{80A60464-29E8-4EE8-BAFA-8708B7C08CC3}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{80A60464-29E8-4EE8-BAFA-8708B7C08CC3}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{80A60464-29E8-4EE8-BAFA-8708B7C08CC3}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{80A60464-29E8-4EE8-BAFA-8708B7C08CC3}.Release|Win32.Build.0 = Release|Win32
|
||||
{80A60464-29E8-4EE8-BAFA-8708B7C08CC3}.Release|x64.ActiveCfg = Release|Win32
|
||||
{EA745FF7-9E4B-4C13-BA19-2EE8165A6245}.All|Win32.ActiveCfg = Release|Win32
|
||||
{EA745FF7-9E4B-4C13-BA19-2EE8165A6245}.All|Win32.Build.0 = Release|Win32
|
||||
{EA745FF7-9E4B-4C13-BA19-2EE8165A6245}.All|x64.ActiveCfg = Release|Win32
|
||||
{EA745FF7-9E4B-4C13-BA19-2EE8165A6245}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{EA745FF7-9E4B-4C13-BA19-2EE8165A6245}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{EA745FF7-9E4B-4C13-BA19-2EE8165A6245}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{EA745FF7-9E4B-4C13-BA19-2EE8165A6245}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{EA745FF7-9E4B-4C13-BA19-2EE8165A6245}.Release|Win32.Build.0 = Release|Win32
|
||||
{EA745FF7-9E4B-4C13-BA19-2EE8165A6245}.Release|x64.ActiveCfg = Release|Win32
|
||||
{A349379F-0FEA-49C8-9535-05F39663337B}.All|Win32.ActiveCfg = Release|Win32
|
||||
{A349379F-0FEA-49C8-9535-05F39663337B}.All|Win32.Build.0 = Release|Win32
|
||||
{A349379F-0FEA-49C8-9535-05F39663337B}.All|x64.ActiveCfg = Release|Win32
|
||||
{A349379F-0FEA-49C8-9535-05F39663337B}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{A349379F-0FEA-49C8-9535-05F39663337B}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{A349379F-0FEA-49C8-9535-05F39663337B}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{A349379F-0FEA-49C8-9535-05F39663337B}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{A349379F-0FEA-49C8-9535-05F39663337B}.Release|Win32.Build.0 = Release|Win32
|
||||
{A349379F-0FEA-49C8-9535-05F39663337B}.Release|x64.ActiveCfg = Release|Win32
|
||||
{2B0D705C-1CF2-401C-BFBC-A43FB806908C}.All|Win32.ActiveCfg = Release|Win32
|
||||
{2B0D705C-1CF2-401C-BFBC-A43FB806908C}.All|Win32.Build.0 = Release|Win32
|
||||
{2B0D705C-1CF2-401C-BFBC-A43FB806908C}.All|x64.ActiveCfg = Release|Win32
|
||||
{2B0D705C-1CF2-401C-BFBC-A43FB806908C}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{2B0D705C-1CF2-401C-BFBC-A43FB806908C}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{2B0D705C-1CF2-401C-BFBC-A43FB806908C}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{2B0D705C-1CF2-401C-BFBC-A43FB806908C}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{2B0D705C-1CF2-401C-BFBC-A43FB806908C}.Release|Win32.Build.0 = Release|Win32
|
||||
{2B0D705C-1CF2-401C-BFBC-A43FB806908C}.Release|x64.ActiveCfg = Release|Win32
|
||||
{C2E8B4D1-A398-4D57-94F8-B61F20C7D514}.All|Win32.ActiveCfg = Release|Win32
|
||||
{C2E8B4D1-A398-4D57-94F8-B61F20C7D514}.All|Win32.Build.0 = Release|Win32
|
||||
{C2E8B4D1-A398-4D57-94F8-B61F20C7D514}.All|x64.ActiveCfg = Release|Win32
|
||||
{C2E8B4D1-A398-4D57-94F8-B61F20C7D514}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{C2E8B4D1-A398-4D57-94F8-B61F20C7D514}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{C2E8B4D1-A398-4D57-94F8-B61F20C7D514}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{C2E8B4D1-A398-4D57-94F8-B61F20C7D514}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{C2E8B4D1-A398-4D57-94F8-B61F20C7D514}.Release|Win32.Build.0 = Release|Win32
|
||||
{C2E8B4D1-A398-4D57-94F8-B61F20C7D514}.Release|x64.ActiveCfg = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: make_at_dictionary.c,v 1.2 2009/02/10 17:16:57 steveu Exp $
|
||||
* $Id: make_at_dictionary.c,v 1.4 2009/04/24 22:35:25 steveu Exp $
|
||||
*/
|
||||
|
||||
#if defined(HAVE_CONFIG_H)
|
||||
|
@ -228,6 +228,7 @@ const char *wordlist[] =
|
|||
"+EFRAM", /* V.250 6.5.8 - Frame length */
|
||||
"+ER", /* V.250 6.5.5 - Error control reporting */
|
||||
"+ES", /* V.250 6.5.1 - Error control selection */
|
||||
"+ESA", /* V.80 8.2 - Synchronous access mode configuration */
|
||||
"+ESR", /* V.250 6.5.3 - Selective repeat */
|
||||
"+ETBM", /* V.250 6.5.6 - Call termination buffer management */
|
||||
"+EWIND", /* V.250 6.5.7 - Window size */
|
||||
|
@ -289,8 +290,8 @@ const char *wordlist[] =
|
|||
"+GMR", /* V.250 6.1.6 - Request revision identification */
|
||||
"+GOI", /* V.250 6.1.8 - Request global object identification */
|
||||
"+GSN", /* V.250 6.1.7 - Request product serial number identification */
|
||||
"+IBC", /* TIA-617 8.3 - Control of in-band control */
|
||||
"+IBM", /* TIA-617 8.4 - In-Band MARK idle reporting control */
|
||||
"+IBC", /* V.80 7.9 - Control of in-band control */
|
||||
"+IBM", /* V.80 7.10 - In-band MARK idle reporting control */
|
||||
"+ICF", /* V.250 6.2.11 - DTE-DCE character framing */
|
||||
"+ICLOK", /* V.250 6.2.14 - Select sync transmit clock source */
|
||||
"+IDSR", /* V.250 6.2.16 - Select data set ready option */
|
||||
|
@ -299,6 +300,7 @@ const char *wordlist[] =
|
|||
"+ILSD", /* V.250 6.2.15 - Select long space disconnect option */
|
||||
"+IPR", /* V.250 6.2.10 - Fixed DTE rate */
|
||||
"+IRTS", /* V.250 6.2.17 - Select synchronous mode RTS option */
|
||||
"+ITF", /* V.80 8.4 - Transmit flow control thresholds */
|
||||
"+MA", /* V.250 6.4.2 - Modulation automode control */
|
||||
"+MR", /* V.250 6.4.3 - Modulation reporting control */
|
||||
"+MS", /* V.250 6.4.1 - Modulation selection */
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: async.h,v 1.24 2009/02/12 12:38:39 steveu Exp $
|
||||
* $Id: async.h,v 1.25 2009/04/23 14:12:34 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -78,7 +78,11 @@ enum
|
|||
/*! \brief A modem has completed its task, and shut down. */
|
||||
SIG_STATUS_SHUTDOWN_COMPLETE = -10,
|
||||
/*! \brief Regular octet report for things like HDLC to the MTP standards. */
|
||||
SIG_STATUS_OCTET_REPORT = -11
|
||||
SIG_STATUS_OCTET_REPORT = -11,
|
||||
/*! \brief Notification that a modem has detected signal quality degradation. */
|
||||
SIG_STATUS_POOR_SIGNAL_QUALITY = -12,
|
||||
/*! \brief Notification that a modem retrain has occurred. */
|
||||
SIG_STATUS_MODEM_RETRAIN_OCCURRED = -13
|
||||
};
|
||||
|
||||
/*! Message put function for data pumps */
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: fax_modems.h,v 1.10 2009/02/14 15:21:14 steveu Exp $
|
||||
* $Id: fax_modems.h,v 1.11 2009/04/26 12:55:23 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -63,6 +63,10 @@ extern "C"
|
|||
SPAN_DECLARE(int) fax_modems_v17_v21_rx(void *user_data, const int16_t amp[], int len);
|
||||
SPAN_DECLARE(int) fax_modems_v27ter_v21_rx(void *user_data, const int16_t amp[], int len);
|
||||
SPAN_DECLARE(int) fax_modems_v29_v21_rx(void *user_data, const int16_t amp[], int len);
|
||||
SPAN_DECLARE(int) fax_modems_v17_v21_rx_fillin(void *user_data, int len);
|
||||
SPAN_DECLARE(int) fax_modems_v27ter_v21_rx_fillin(void *user_data, int len);
|
||||
SPAN_DECLARE(int) fax_modems_v29_v21_rx_fillin(void *user_data, int len);
|
||||
SPAN_DECLARE(void) fax_modems_start_rx_modem(fax_modems_state_t *s, int which);
|
||||
|
||||
SPAN_DECLARE(void) fax_modems_set_tep_mode(fax_modems_state_t *s, int use_tep);
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: v22bis.h,v 1.4 2009/04/17 14:37:53 steveu Exp $
|
||||
* $Id: v22bis.h,v 1.9 2009/04/26 09:50:28 steveu Exp $
|
||||
*/
|
||||
|
||||
#if !defined(_SPANDSP_PRIVATE_V22BIS_H_)
|
||||
|
@ -34,22 +34,26 @@
|
|||
*/
|
||||
struct v22bis_state_s
|
||||
{
|
||||
/*! \brief The bit rate of the modem. Valid values are 1200 and 2400. */
|
||||
/*! \brief The maximum permitted bit rate of the modem. Valid values are 1200 and 2400. */
|
||||
int bit_rate;
|
||||
/*! \brief TRUE is this is the calling side modem. */
|
||||
int caller;
|
||||
/*! \brief The callback function used to put each bit received. */
|
||||
put_bit_func_t put_bit;
|
||||
/*! \brief The callback function used to get the next bit to be transmitted. */
|
||||
get_bit_func_t get_bit;
|
||||
/*! \brief A user specified opaque pointer passed to the callback routines. */
|
||||
void *user_data;
|
||||
/*! \brief A user specified opaque pointer passed to the get_bit callback routine. */
|
||||
void *get_bit_user_data;
|
||||
/*! \brief The callback function used to put each bit received. */
|
||||
put_bit_func_t put_bit;
|
||||
/*! \brief A user specified opaque pointer passed to the put_bit callback routine. */
|
||||
void *put_bit_user_data;
|
||||
/*! \brief The callback function used to report modem status changes. */
|
||||
modem_rx_status_func_t status_handler;
|
||||
/*! \brief A user specified opaque pointer passed to the status function. */
|
||||
void *status_user_data;
|
||||
|
||||
/* RECEIVE SECTION */
|
||||
int negotiated_bit_rate;
|
||||
|
||||
/* Receive section */
|
||||
struct
|
||||
{
|
||||
/*! \brief The route raised cosine (RRC) pulse shaping filter buffer. */
|
||||
|
@ -84,8 +88,6 @@ struct v22bis_state_s
|
|||
/*! \brief The integral part of the carrier tracking filter. */
|
||||
float carrier_track_i;
|
||||
|
||||
int scrambled_ones_to_date;
|
||||
|
||||
/*! \brief A callback function which may be enabled to report every symbol's
|
||||
constellation position. */
|
||||
qam_report_handler_t qam_report;
|
||||
|
@ -132,12 +134,11 @@ struct v22bis_state_s
|
|||
|
||||
int sixteen_way_decisions;
|
||||
|
||||
int detected_unscrambled_ones;
|
||||
int detected_unscrambled_zeros;
|
||||
int detected_2400bps_markers;
|
||||
int pattern_repeats;
|
||||
int last_raw_bits;
|
||||
} rx;
|
||||
|
||||
/* TRANSMIT SECTION */
|
||||
/* Transmit section */
|
||||
struct
|
||||
{
|
||||
/*! \brief The gain factor needed to achieve the specified output power. */
|
||||
|
@ -181,5 +182,22 @@ struct v22bis_state_s
|
|||
logging_state_t logging;
|
||||
};
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
/*! Reinitialise an existing V.22bis modem receive context.
|
||||
\brief Reinitialise an existing V.22bis modem receive context.
|
||||
\param s The modem context.
|
||||
\return 0 for OK, -1 for bad parameter */
|
||||
int v22bis_rx_restart(v22bis_state_t *s);
|
||||
|
||||
void v22bis_report_status_change(v22bis_state_t *s, int status);
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/*- End of file ------------------------------------------------------------*/
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: v22bis.h,v 1.39 2009/04/17 14:37:53 steveu Exp $
|
||||
* $Id: v22bis.h,v 1.41 2009/04/25 10:18:50 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -81,13 +81,6 @@ extern "C"
|
|||
{
|
||||
#endif
|
||||
|
||||
/*! Reinitialise an existing V.22bis modem receive context.
|
||||
\brief Reinitialise an existing V.22bis modem receive context.
|
||||
\param s The modem context.
|
||||
\param bit_rate The bit rate of the modem. Valid values are 1200 and 2400.
|
||||
\return 0 for OK, -1 for bad parameter */
|
||||
SPAN_DECLARE(int) v22bis_rx_restart(v22bis_state_t *s, int bit_rate);
|
||||
|
||||
/*! Process a block of received V.22bis modem audio samples.
|
||||
\brief Process a block of received V.22bis modem audio samples.
|
||||
\param s The modem context.
|
||||
|
@ -108,7 +101,7 @@ SPAN_DECLARE(int) v22bis_rx_fillin(v22bis_state_t *s, int len);
|
|||
\brief Get a snapshot of the current equalizer coefficients.
|
||||
\param coeffs The vector of complex coefficients.
|
||||
\return The number of coefficients in the vector. */
|
||||
SPAN_DECLARE(int) v22bis_equalizer_state(v22bis_state_t *s, complexf_t **coeffs);
|
||||
SPAN_DECLARE(int) v22bis_rx_equalizer_state(v22bis_state_t *s, complexf_t **coeffs);
|
||||
|
||||
/*! Get the current received carrier frequency.
|
||||
\param s The modem context.
|
||||
|
@ -118,7 +111,7 @@ SPAN_DECLARE(float) v22bis_rx_carrier_frequency(v22bis_state_t *s);
|
|||
/*! Get the current symbol timing correction since startup.
|
||||
\param s The modem context.
|
||||
\return The correction. */
|
||||
SPAN_DECLARE(float) v22bis_symbol_timing_correction(v22bis_state_t *s);
|
||||
SPAN_DECLARE(float) v22bis_rx_symbol_timing_correction(v22bis_state_t *s);
|
||||
|
||||
/*! Get a current received signal power.
|
||||
\param s The modem context.
|
||||
|
@ -134,7 +127,7 @@ SPAN_DECLARE(void) v22bis_rx_signal_cutoff(v22bis_state_t *s, float cutoff);
|
|||
\param s The modem context.
|
||||
\param handler The handler routine.
|
||||
\param user_data An opaque pointer passed to the handler routine. */
|
||||
SPAN_DECLARE(void) v22bis_set_qam_report_handler(v22bis_state_t *s, qam_report_handler_t handler, void *user_data);
|
||||
SPAN_DECLARE(void) v22bis_rx_set_qam_report_handler(v22bis_state_t *s, qam_report_handler_t handler, void *user_data);
|
||||
|
||||
/*! Generate a block of V.22bis modem audio samples.
|
||||
\brief Generate a block of V.22bis modem audio samples.
|
||||
|
@ -157,6 +150,18 @@ SPAN_DECLARE(void) v22bis_tx_power(v22bis_state_t *s, float power);
|
|||
\return 0 for OK, -1 for bad parameter. */
|
||||
SPAN_DECLARE(int) v22bis_restart(v22bis_state_t *s, int bit_rate);
|
||||
|
||||
/*! Request a retrain for a V.22bis modem context. A rate change may also be resquested.
|
||||
\brief Request a retrain for a V.22bis modem context.
|
||||
\param s The modem context.
|
||||
\param bit_rate The bit rate of the modem. Valid values are 1200 and 2400.
|
||||
\return 0 for OK, -1 for bad parameter. */
|
||||
SPAN_DECLARE(int) v22bis_request_retrain(v22bis_state_t *s, int bit_rate);
|
||||
|
||||
/*! Report the current operating bit rate of a V.22bis modem context.
|
||||
\brief Report the current operating bit rate of a V.22bis modem context
|
||||
\param s The modem context. */
|
||||
SPAN_DECLARE(int) v22bis_current_bit_rate(v22bis_state_t *s);
|
||||
|
||||
/*! Initialise a V.22bis modem context. This must be called before the first
|
||||
use of the context, to initialise its contents.
|
||||
\brief Initialise a V.22bis modem context.
|
||||
|
@ -173,8 +178,9 @@ SPAN_DECLARE(v22bis_state_t *) v22bis_init(v22bis_state_t *s,
|
|||
int guard,
|
||||
int caller,
|
||||
get_bit_func_t get_bit,
|
||||
void *get_bit_user_data,
|
||||
put_bit_func_t put_bit,
|
||||
void *user_data);
|
||||
void *put_bit_user_data);
|
||||
|
||||
/*! Release a V.22bis modem receive context.
|
||||
\brief Release a V.22bis modem receive context.
|
||||
|
|
|
@ -30,9 +30,9 @@
|
|||
|
||||
/* The date and time of the version are in UTC form. */
|
||||
|
||||
#define SPANDSP_RELEASE_DATE 20090420
|
||||
#define SPANDSP_RELEASE_TIME 163808
|
||||
#define SPANDSP_RELEASE_DATETIME_STRING "20090420 163808"
|
||||
#define SPANDSP_RELEASE_DATE 20090427
|
||||
#define SPANDSP_RELEASE_TIME 151958
|
||||
#define SPANDSP_RELEASE_DATETIME_STRING "20090427 151958"
|
||||
|
||||
#endif
|
||||
/*- End of file ------------------------------------------------------------*/
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: t30.c,v 1.290 2009/04/16 12:11:54 steveu Exp $
|
||||
* $Id: t30.c,v 1.291 2009/04/23 15:40:32 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -5914,7 +5914,7 @@ SPAN_DECLARE(t30_state_t *) t30_init(t30_state_t *s,
|
|||
s->send_hdlc_user_data = send_hdlc_user_data;
|
||||
|
||||
/* Default to the basic modems. */
|
||||
s->supported_modems = T30_SUPPORT_V27TER | T30_SUPPORT_V29;
|
||||
s->supported_modems = T30_SUPPORT_V27TER | T30_SUPPORT_V29 | T30_SUPPORT_V17;
|
||||
s->supported_compressions = T30_SUPPORT_T4_1D_COMPRESSION | T30_SUPPORT_T4_2D_COMPRESSION;
|
||||
s->supported_resolutions = T30_SUPPORT_STANDARD_RESOLUTION | T30_SUPPORT_FINE_RESOLUTION | T30_SUPPORT_SUPERFINE_RESOLUTION
|
||||
| T30_SUPPORT_R8_RESOLUTION;
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: v17rx.c,v 1.145 2009/04/20 16:36:36 steveu Exp $
|
||||
* $Id: v17rx.c,v 1.146 2009/04/21 13:59:07 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -1323,6 +1323,16 @@ SPAN_DECLARE(int) v17_rx_restart(v17_rx_state_t *s, int bit_rate, int short_trai
|
|||
|
||||
SPAN_DECLARE(v17_rx_state_t *) v17_rx_init(v17_rx_state_t *s, int bit_rate, put_bit_func_t put_bit, void *user_data)
|
||||
{
|
||||
switch (bit_rate)
|
||||
{
|
||||
case 14400:
|
||||
case 12000:
|
||||
case 9600:
|
||||
case 7200:
|
||||
break;
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
if (s == NULL)
|
||||
{
|
||||
if ((s = (v17_rx_state_t *) malloc(sizeof(*s))) == NULL)
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: v17tx.c,v 1.72 2009/04/12 04:20:01 steveu Exp $
|
||||
* $Id: v17tx.c,v 1.73 2009/04/21 13:59:07 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -400,6 +400,16 @@ SPAN_DECLARE(int) v17_tx_restart(v17_tx_state_t *s, int bit_rate, int tep, int s
|
|||
|
||||
SPAN_DECLARE(v17_tx_state_t *) v17_tx_init(v17_tx_state_t *s, int bit_rate, int tep, get_bit_func_t get_bit, void *user_data)
|
||||
{
|
||||
switch (bit_rate)
|
||||
{
|
||||
case 14400:
|
||||
case 12000:
|
||||
case 9600:
|
||||
case 7200:
|
||||
break;
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
if (s == NULL)
|
||||
{
|
||||
if ((s = (v17_tx_state_t *) malloc(sizeof(*s))) == NULL)
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: v18.c,v 1.6 2009/04/20 16:36:36 steveu Exp $
|
||||
* $Id: v18.c,v 1.7 2009/04/26 07:00:38 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -113,12 +113,21 @@ static const struct dtmf_to_ascii_s dtmf_to_ascii[] =
|
|||
{"##8", 'W'},
|
||||
{"##9", 'Z'},
|
||||
{"##0", ' '},
|
||||
#if defined(WIN32)
|
||||
{"#*1", 'X'}, // (Note 1) 111 1011
|
||||
{"#*2", 'X'}, // (Note 1) 111 1100
|
||||
{"#*3", 'X'}, // (Note 1) 111 1101
|
||||
{"#*4", 'X'}, // (Note 1) 101 1011
|
||||
{"#*5", 'X'}, // (Note 1) 101 1100
|
||||
{"#*6", 'X'}, // (Note 1) 101 1101
|
||||
#else
|
||||
{"#*1", 'æ'}, // (Note 1) 111 1011
|
||||
{"#*2", 'ø'}, // (Note 1) 111 1100
|
||||
{"#*3", 'å'}, // (Note 1) 111 1101
|
||||
{"#*4", 'Æ'}, // (Note 1) 101 1011
|
||||
{"#*5", 'Ø'}, // (Note 1) 101 1100
|
||||
{"#*6", 'Å'}, // (Note 1) 101 1101
|
||||
#endif
|
||||
{"#0", '?'},
|
||||
{"#1", 'c'},
|
||||
{"#2", 'f'},
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: v22bis_rx.c,v 1.56 2009/04/20 12:26:38 steveu Exp $
|
||||
* $Id: v22bis_rx.c,v 1.66 2009/04/27 15:18:52 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -47,11 +47,12 @@
|
|||
|
||||
#include "spandsp/telephony.h"
|
||||
#include "spandsp/logging.h"
|
||||
#include "spandsp/complex.h"
|
||||
#include "spandsp/vector_float.h"
|
||||
#include "spandsp/complex_vector_float.h"
|
||||
#include "spandsp/async.h"
|
||||
#include "spandsp/power_meter.h"
|
||||
#include "spandsp/arctan2.h"
|
||||
#include "spandsp/complex.h"
|
||||
#include "spandsp/dds.h"
|
||||
#include "spandsp/complex_filters.h"
|
||||
|
||||
|
@ -108,10 +109,10 @@ enum
|
|||
V22BIS_RX_TRAINING_STAGE_SYMBOL_ACQUISITION,
|
||||
V22BIS_RX_TRAINING_STAGE_LOG_PHASE,
|
||||
V22BIS_RX_TRAINING_STAGE_UNSCRAMBLED_ONES,
|
||||
V22BIS_RX_TRAINING_STAGE_UNSCRAMBLED_ONES_SUSTAINING,
|
||||
V22BIS_RX_TRAINING_STAGE_SCRAMBLED_ONES_AT_1200,
|
||||
V22BIS_RX_TRAINING_STAGE_SCRAMBLED_ONES_AT_1200_SUSTAINING,
|
||||
V22BIS_RX_TRAINING_STAGE_WAIT_FOR_START_1,
|
||||
V22BIS_RX_TRAINING_STAGE_WAIT_FOR_START_2,
|
||||
V22BIS_RX_TRAINING_STAGE_WAIT_FOR_SCRAMBLED_ONES_AT_2400,
|
||||
V22BIS_RX_TRAINING_STAGE_PARKED
|
||||
};
|
||||
|
||||
|
@ -158,7 +159,7 @@ SPAN_DECLARE(float) v22bis_rx_carrier_frequency(v22bis_state_t *s)
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(float) v22bis_symbol_timing_correction(v22bis_state_t *s)
|
||||
SPAN_DECLARE(float) v22bis_rx_symbol_timing_correction(v22bis_state_t *s)
|
||||
{
|
||||
return (float) s->rx.total_baud_timing_correction/((float) PULSESHAPER_COEFF_SETS*40.0f/(3.0f*2.0f));
|
||||
}
|
||||
|
@ -177,16 +178,16 @@ SPAN_DECLARE(void) v22bis_rx_signal_cutoff(v22bis_state_t *s, float cutoff)
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
static void report_status_change(v22bis_state_t *s, int status)
|
||||
void v22bis_report_status_change(v22bis_state_t *s, int status)
|
||||
{
|
||||
if (s->status_handler)
|
||||
s->status_handler(s->status_user_data, status);
|
||||
else if (s->put_bit)
|
||||
s->put_bit(s->user_data, status);
|
||||
s->put_bit(s->put_bit_user_data, status);
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) v22bis_equalizer_state(v22bis_state_t *s, complexf_t **coeffs)
|
||||
SPAN_DECLARE(int) v22bis_rx_equalizer_state(v22bis_state_t *s, complexf_t **coeffs)
|
||||
{
|
||||
*coeffs = s->rx.eq_coeff;
|
||||
return 2*V22BIS_EQUALIZER_LEN + 1;
|
||||
|
@ -195,31 +196,20 @@ SPAN_DECLARE(int) v22bis_equalizer_state(v22bis_state_t *s, complexf_t **coeffs)
|
|||
|
||||
static void equalizer_reset(v22bis_state_t *s)
|
||||
{
|
||||
int i;
|
||||
|
||||
/* Start with an equalizer based on everything being perfect */
|
||||
for (i = 0; i < 2*V22BIS_EQUALIZER_LEN + 1; i++)
|
||||
s->rx.eq_coeff[i] = complex_setf(0.0f, 0.0f);
|
||||
#if defined(SPANDSP_USE_FIXED_POINTx)
|
||||
cvec_zeroi16(s->rx.eq_coeff, 2*V22BIS_EQUALIZER_LEN + 1);
|
||||
s->rx.eq_coeff[V22BIS_EQUALIZER_LEN] = complex_seti16(3*FP_FACTOR, 0*FP_FACTOR);
|
||||
cvec_zeroi16(s->rx.eq_buf, V22BIS_EQUALIZER_MASK + 1);
|
||||
s->rx.eq_delta = 32768.0f*EQUALIZER_DELTA/(2*V22BIS_EQUALIZER_LEN + 1);
|
||||
#else
|
||||
cvec_zerof(s->rx.eq_coeff, 2*V22BIS_EQUALIZER_LEN + 1);
|
||||
s->rx.eq_coeff[V22BIS_EQUALIZER_LEN] = complex_setf(3.0f, 0.0f);
|
||||
for (i = 0; i <= V22BIS_EQUALIZER_MASK; i++)
|
||||
s->rx.eq_buf[i] = complex_setf(0.0f, 0.0f);
|
||||
|
||||
s->rx.eq_coeff[V22BIS_EQUALIZER_LEN - 6].re = -0.02f;
|
||||
s->rx.eq_coeff[V22BIS_EQUALIZER_LEN - 5].re = 0.035f;
|
||||
s->rx.eq_coeff[V22BIS_EQUALIZER_LEN - 4].re = 0.08f;
|
||||
s->rx.eq_coeff[V22BIS_EQUALIZER_LEN - 3].re = -0.30f;
|
||||
s->rx.eq_coeff[V22BIS_EQUALIZER_LEN - 2].re = -0.37f;
|
||||
s->rx.eq_coeff[V22BIS_EQUALIZER_LEN - 1].re = 0.09f;
|
||||
s->rx.eq_coeff[V22BIS_EQUALIZER_LEN].re = 3.19f;
|
||||
s->rx.eq_coeff[V22BIS_EQUALIZER_LEN + 1].re = 0.09f;
|
||||
s->rx.eq_coeff[V22BIS_EQUALIZER_LEN + 2].re = -0.37f;
|
||||
s->rx.eq_coeff[V22BIS_EQUALIZER_LEN + 3].re = -0.30f;
|
||||
s->rx.eq_coeff[V22BIS_EQUALIZER_LEN + 5].re = 0.035f;
|
||||
s->rx.eq_coeff[V22BIS_EQUALIZER_LEN + 6].re = -0.02f;
|
||||
|
||||
cvec_zerof(s->rx.eq_buf, V22BIS_EQUALIZER_MASK + 1);
|
||||
s->rx.eq_delta = EQUALIZER_DELTA/(2*V22BIS_EQUALIZER_LEN + 1);
|
||||
#endif
|
||||
s->rx.eq_put_step = 20 - 1;
|
||||
s->rx.eq_step = 0;
|
||||
s->rx.eq_delta = EQUALIZER_DELTA/(2*V22BIS_EQUALIZER_LEN + 1);
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
|
@ -291,7 +281,9 @@ static __inline__ int descramble(v22bis_state_t *s, int bit)
|
|||
bit &= 1;
|
||||
|
||||
/* Descramble the bit */
|
||||
out_bit = (bit ^ (s->rx.scramble_reg >> 14) ^ (s->rx.scramble_reg >> 17)) & 1;
|
||||
out_bit = (bit ^ (s->rx.scramble_reg >> 13) ^ (s->rx.scramble_reg >> 16)) & 1;
|
||||
s->rx.scramble_reg = (s->rx.scramble_reg << 1) | bit;
|
||||
|
||||
if (s->rx.scrambler_pattern_count >= 64)
|
||||
{
|
||||
out_bit ^= 1;
|
||||
|
@ -301,7 +293,6 @@ static __inline__ int descramble(v22bis_state_t *s, int bit)
|
|||
s->rx.scrambler_pattern_count++;
|
||||
else
|
||||
s->rx.scrambler_pattern_count = 0;
|
||||
s->rx.scramble_reg = (s->rx.scramble_reg << 1) | bit;
|
||||
return out_bit;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
@ -312,7 +303,7 @@ static __inline__ void put_bit(v22bis_state_t *s, int bit)
|
|||
|
||||
/* Descramble the bit */
|
||||
out_bit = descramble(s, bit);
|
||||
s->put_bit(s->user_data, out_bit);
|
||||
s->put_bit(s->put_bit_user_data, out_bit);
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
|
@ -321,16 +312,16 @@ static void decode_baud(v22bis_state_t *s, int nearest)
|
|||
int raw_bits;
|
||||
|
||||
raw_bits = phase_steps[((nearest >> 2) - (s->rx.constellation_state >> 2)) & 3];
|
||||
s->rx.constellation_state = nearest;
|
||||
/* The first two bits are the quadrant */
|
||||
put_bit(s, raw_bits >> 1);
|
||||
put_bit(s, raw_bits);
|
||||
if (s->bit_rate == 2400)
|
||||
if (s->rx.sixteen_way_decisions)
|
||||
{
|
||||
/* The other two bits are the position within the quadrant */
|
||||
put_bit(s, nearest >> 1);
|
||||
put_bit(s, nearest);
|
||||
}
|
||||
s->rx.constellation_state = nearest;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
|
@ -340,16 +331,16 @@ static int decode_baudx(v22bis_state_t *s, int nearest)
|
|||
int out_bits;
|
||||
|
||||
raw_bits = phase_steps[((nearest >> 2) - (s->rx.constellation_state >> 2)) & 3];
|
||||
s->rx.constellation_state = nearest;
|
||||
/* The first two bits are the quadrant */
|
||||
out_bits = descramble(s, raw_bits >> 1);
|
||||
out_bits = (out_bits << 1) | descramble(s, raw_bits);
|
||||
if (s->bit_rate == 2400)
|
||||
if (s->rx.sixteen_way_decisions)
|
||||
{
|
||||
/* The other two bits are the position within the quadrant */
|
||||
out_bits = (out_bits << 1) | descramble(s, nearest >> 1);
|
||||
out_bits = (out_bits << 1) | descramble(s, nearest);
|
||||
}
|
||||
s->rx.constellation_state = nearest;
|
||||
return out_bits;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
@ -443,7 +434,7 @@ static void process_half_baud(v22bis_state_t *s, const complexf_t *sample)
|
|||
when the true symbol boundary is close to a sample boundary. */
|
||||
s->rx.eq_put_step += (s->rx.gardner_integrate/16);
|
||||
s->rx.total_baud_timing_correction += (s->rx.gardner_integrate/16);
|
||||
//span_log(&s->logging, SPAN_LOG_FLOW, "Gardner kick %d [total %d]\n", s->rx.gardner_integrate, s->rx.total_baud_timing_correction);
|
||||
//span_log(&s->logging, SPAN_LOG_FLOW, "Gardner kick %d [total %d]\n", s->rx.gardner_integrate, s->rx.total_baud_timing_correction);
|
||||
if (s->rx.qam_report)
|
||||
s->rx.qam_report(s->rx.qam_user_data, NULL, NULL, s->rx.gardner_integrate);
|
||||
s->rx.gardner_integrate = 0;
|
||||
|
@ -451,7 +442,6 @@ static void process_half_baud(v22bis_state_t *s, const complexf_t *sample)
|
|||
|
||||
z = equalizer_get(s);
|
||||
|
||||
//span_log(&s->logging, SPAN_LOG_FLOW, "VVV %p %d\n", s->user_data, s->rx.training);
|
||||
if (s->rx.sixteen_way_decisions)
|
||||
{
|
||||
re = (int) (z.re + 3.0f);
|
||||
|
@ -468,20 +458,20 @@ static void process_half_baud(v22bis_state_t *s, const complexf_t *sample)
|
|||
}
|
||||
else
|
||||
{
|
||||
zz = complex_setf(3.0f/sqrtf(10.0f), -1.0f/sqrtf(10.0f));
|
||||
zz = complex_setf(3.0f/3.162278f, -1.0f/3.162278f);
|
||||
zz = complex_mulf(&z, &zz);
|
||||
nearest = (find_quadrant(&zz) << 2) | 0x01;
|
||||
printf("Trackit rx %p %15.5f %15.5f %15.5f %15.5f %d\n", s, z.re, z.im, zz.re, zz.im, nearest);
|
||||
}
|
||||
raw_bits = 0;
|
||||
|
||||
switch (s->rx.training)
|
||||
{
|
||||
case V22BIS_RX_TRAINING_STAGE_NORMAL_OPERATION:
|
||||
/* Normal operation. */
|
||||
track_carrier(s, &z, &v22bis_constellation[nearest]);
|
||||
tune_equalizer(s, &z, &v22bis_constellation[nearest]);
|
||||
target = &v22bis_constellation[nearest];
|
||||
track_carrier(s, &z, target);
|
||||
tune_equalizer(s, &z, target);
|
||||
decode_baud(s, nearest);
|
||||
target = &v22bis_constellation[s->rx.constellation_state];
|
||||
break;
|
||||
case V22BIS_RX_TRAINING_STAGE_SYMBOL_ACQUISITION:
|
||||
/* Allow time for the Gardner algorithm to settle the symbol timing. */
|
||||
|
@ -494,13 +484,13 @@ static void process_half_baud(v22bis_state_t *s, const complexf_t *sample)
|
|||
but since we might be off in the opposite direction from the source, the total
|
||||
error could be higher. */
|
||||
s->rx.gardner_step = 4;
|
||||
s->rx.detected_unscrambled_zeros = 0;
|
||||
s->rx.detected_unscrambled_ones = 0;
|
||||
s->rx.detected_2400bps_markers = 0;
|
||||
s->rx.pattern_repeats = 0;
|
||||
if (s->caller)
|
||||
s->rx.training = V22BIS_RX_TRAINING_STAGE_UNSCRAMBLED_ONES;
|
||||
else
|
||||
s->rx.training = V22BIS_RX_TRAINING_STAGE_SCRAMBLED_ONES_AT_1200;
|
||||
/* Be pessimistic and see what the handshake brings */
|
||||
s->negotiated_bit_rate = 1200;
|
||||
break;
|
||||
}
|
||||
/* Once we have pulled in the symbol timing in a coarse way, use finer
|
||||
|
@ -511,29 +501,25 @@ static void process_half_baud(v22bis_state_t *s, const complexf_t *sample)
|
|||
case V22BIS_RX_TRAINING_STAGE_UNSCRAMBLED_ONES:
|
||||
/* Calling modem only */
|
||||
/* The calling modem should initially receive unscrambled ones at 1200bps */
|
||||
track_carrier(s, &z, &v22bis_constellation[nearest]);
|
||||
target = &z;
|
||||
target = &v22bis_constellation[nearest];
|
||||
track_carrier(s, &z, target);
|
||||
raw_bits = phase_steps[((nearest >> 2) - (s->rx.constellation_state >> 2)) & 3];
|
||||
s->rx.constellation_state = nearest;
|
||||
switch (raw_bits)
|
||||
{
|
||||
case 0:
|
||||
s->rx.detected_unscrambled_zeros++;
|
||||
break;
|
||||
case 3:
|
||||
s->rx.detected_unscrambled_ones++;
|
||||
break;
|
||||
default:
|
||||
s->rx.detected_2400bps_markers++;
|
||||
break;
|
||||
}
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "TWIDDLING THUMBS - %d %d\n", s->rx.training_count, s->rx.detected_2400bps_markers);
|
||||
if (raw_bits != s->rx.last_raw_bits)
|
||||
s->rx.pattern_repeats = 0;
|
||||
else
|
||||
s->rx.pattern_repeats++;
|
||||
if (++s->rx.training_count == ms_to_symbols(155 + 456))
|
||||
{
|
||||
if (s->rx.detected_unscrambled_ones >= ms_to_symbols(456)
|
||||
||
|
||||
s->rx.detected_unscrambled_zeros >= ms_to_symbols(456))
|
||||
/* After the first 155ms things should have been steady, so check if the last 456ms was
|
||||
steady at 11 or 00. */
|
||||
if (raw_bits == s->rx.last_raw_bits
|
||||
&&
|
||||
(raw_bits == 0x3 || raw_bits == 0x0)
|
||||
&&
|
||||
s->rx.pattern_repeats >= ms_to_symbols(456))
|
||||
{
|
||||
/* It looks like the answering machine is sending us a clean unscrambled 11 or 00 */
|
||||
if (s->bit_rate == 2400)
|
||||
{
|
||||
/* Try to establish at 2400bps */
|
||||
|
@ -544,127 +530,147 @@ span_log(&s->logging, SPAN_LOG_FLOW, "TWIDDLING THUMBS - %d %d\n", s->rx.trainin
|
|||
else
|
||||
{
|
||||
/* Only try to establish at 1200bps */
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "+++ starting S11 (Caller)\n");
|
||||
s->tx.training = V22BIS_TX_TRAINING_STAGE_TIMED_S11;
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "+++ starting S11 (1200) (Caller)\n");
|
||||
s->tx.training = V22BIS_TX_TRAINING_STAGE_S11;
|
||||
s->tx.training_count = 0;
|
||||
}
|
||||
}
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "unscrambled ones = %d, unscrambled zeros = %d, 2400 markers = %d\n", s->rx.detected_unscrambled_ones, s->rx.detected_unscrambled_zeros, s->rx.detected_2400bps_markers);
|
||||
s->rx.pattern_repeats = 0;
|
||||
s->rx.training_count = 0;
|
||||
s->rx.training = V22BIS_RX_TRAINING_STAGE_UNSCRAMBLED_ONES_SUSTAINING;
|
||||
}
|
||||
break;
|
||||
case V22BIS_RX_TRAINING_STAGE_UNSCRAMBLED_ONES_SUSTAINING:
|
||||
/* Calling modem only */
|
||||
/* Wait for the end of the unscrambled ones at 1200bps */
|
||||
target = &v22bis_constellation[nearest];
|
||||
track_carrier(s, &z, target);
|
||||
raw_bits = phase_steps[((nearest >> 2) - (s->rx.constellation_state >> 2)) & 3];
|
||||
s->rx.constellation_state = nearest;
|
||||
if (raw_bits != s->rx.last_raw_bits)
|
||||
{
|
||||
/* This looks like the end of the sustained initial unscrambled 11 or 00 */
|
||||
s->tx.training_count = 0;
|
||||
s->tx.training = V22BIS_TX_TRAINING_STAGE_TIMED_S11;
|
||||
s->rx.training_count = 0;
|
||||
s->rx.training = V22BIS_RX_TRAINING_STAGE_SCRAMBLED_ONES_AT_1200;
|
||||
s->rx.detected_unscrambled_zeros = 0;
|
||||
s->rx.detected_unscrambled_ones = 0;
|
||||
s->rx.detected_2400bps_markers = 0;
|
||||
s->rx.scrambled_ones_to_date = 0;
|
||||
s->rx.pattern_repeats = 0;
|
||||
}
|
||||
break;
|
||||
case V22BIS_RX_TRAINING_STAGE_SCRAMBLED_ONES_AT_1200:
|
||||
track_carrier(s, &z, &v22bis_constellation[nearest]);
|
||||
tune_equalizer(s, &z, &v22bis_constellation[nearest]);
|
||||
target = &z;
|
||||
target = &v22bis_constellation[nearest];
|
||||
track_carrier(s, &z, target);
|
||||
tune_equalizer(s, &z, target);
|
||||
raw_bits = phase_steps[((nearest >> 2) - (s->rx.constellation_state >> 2)) & 3];
|
||||
switch (raw_bits)
|
||||
{
|
||||
case 0:
|
||||
s->rx.detected_unscrambled_zeros++;
|
||||
break;
|
||||
case 3:
|
||||
s->rx.detected_unscrambled_ones++;
|
||||
break;
|
||||
default:
|
||||
s->rx.detected_2400bps_markers++;
|
||||
break;
|
||||
}
|
||||
bitstream = decode_baudx(s, nearest);
|
||||
s->rx.scrambled_ones_to_date += ones[bitstream];
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "S11 0x%02x 0x%02x 0x%X %d %d %d %d %d %d\n", raw_bits, nearest, bitstream, s->rx.scrambled_ones_to_date, s->rx.detected_unscrambled_ones, s->rx.detected_unscrambled_zeros, s->rx.detected_2400bps_markers, s->rx.training_count, s->rx.detected_2400bps_markers);
|
||||
if (s->rx.detected_2400bps_markers && ++s->rx.training_count > ms_to_symbols(270))
|
||||
s->rx.training_count++;
|
||||
//span_log(&s->logging, SPAN_LOG_FLOW, "S11 0x%02x 0x%02x 0x%X %d %d %d %d %d\n", raw_bits, nearest, bitstream, s->rx.scrambled_ones_to_date, 0, 0, 0, s->rx.training_count);
|
||||
if (s->negotiated_bit_rate == 1200)
|
||||
{
|
||||
if (!s->caller)
|
||||
/* Search for the S1 signal */
|
||||
if ((s->rx.last_raw_bits ^ raw_bits) == 0x3)
|
||||
{
|
||||
if (s->bit_rate == 2400 && s->rx.detected_2400bps_markers > 20)
|
||||
s->rx.pattern_repeats++;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (s->rx.pattern_repeats >= 15 && (s->rx.last_raw_bits == 0x3 || s->rx.last_raw_bits == 0x0))
|
||||
{
|
||||
/* Try to establish at 2400bps */
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "+++ starting U0011 (S1) (Answerer)\n");
|
||||
s->tx.training = V22BIS_TX_TRAINING_STAGE_U0011;
|
||||
/* We should get a full run of 00 11 (about 60 bauds) at the calling modem, but only about 20
|
||||
at the answering modem, as the first 40 are TED settling time. */
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "+++ S1 detected at %d\n", s->rx.pattern_repeats);
|
||||
if (s->bit_rate == 2400)
|
||||
{
|
||||
if (!s->caller)
|
||||
{
|
||||
/* Accept establishment at 2400bps */
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "+++ starting U0011 (S1) (Answerer)\n");
|
||||
s->tx.training = V22BIS_TX_TRAINING_STAGE_U0011;
|
||||
s->tx.training_count = 0;
|
||||
}
|
||||
s->negotiated_bit_rate = 2400;
|
||||
}
|
||||
}
|
||||
s->rx.pattern_repeats = 0;
|
||||
}
|
||||
if (s->rx.training_count >= ms_to_symbols(270))
|
||||
{
|
||||
/* If we haven't seen the S1 signal by now, we are committed to be in 1200bps mode */
|
||||
if (s->caller)
|
||||
{
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "+++ Rx normal operation (1200)\n");
|
||||
/* The transmit side needs to sustain the scrambled ones for a timed period */
|
||||
s->tx.training_count = 0;
|
||||
s->tx.training = V22BIS_TX_TRAINING_STAGE_TIMED_S11;
|
||||
/* Normal reception starts immediately */
|
||||
s->rx.training = V22BIS_RX_TRAINING_STAGE_NORMAL_OPERATION;
|
||||
s->rx.carrier_track_i = 8000.0f;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* We are going to work at 1200bps. */
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "+++ [1200] starting S11 (Answerer)\n");
|
||||
s->bit_rate = 1200;
|
||||
s->tx.training = V22BIS_TX_TRAINING_STAGE_TIMED_S11;
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "+++ starting S11 (1200) (Answerer)\n");
|
||||
/* The transmit side needs to sustain the scrambled ones for a timed period */
|
||||
s->tx.training_count = 0;
|
||||
s->tx.training = V22BIS_TX_TRAINING_STAGE_TIMED_S11;
|
||||
/* The receive side needs to wait a timed period, receiving scrambled ones,
|
||||
before entering normal operation. */
|
||||
s->rx.training = V22BIS_RX_TRAINING_STAGE_SCRAMBLED_ONES_AT_1200_SUSTAINING;
|
||||
}
|
||||
}
|
||||
s->rx.training = V22BIS_RX_TRAINING_STAGE_SCRAMBLED_ONES_AT_1200_SUSTAINING;
|
||||
}
|
||||
break;
|
||||
case V22BIS_RX_TRAINING_STAGE_SCRAMBLED_ONES_AT_1200_SUSTAINING:
|
||||
track_carrier(s, &z, &v22bis_constellation[nearest]);
|
||||
tune_equalizer(s, &z, &v22bis_constellation[nearest]);
|
||||
target = &z;
|
||||
raw_bits = phase_steps[((nearest >> 2) - (s->rx.constellation_state >> 2)) & 3];
|
||||
switch (raw_bits)
|
||||
{
|
||||
case 0:
|
||||
s->rx.detected_unscrambled_zeros++;
|
||||
break;
|
||||
case 3:
|
||||
s->rx.detected_unscrambled_ones++;
|
||||
break;
|
||||
default:
|
||||
s->rx.detected_2400bps_markers++;
|
||||
break;
|
||||
}
|
||||
bitstream = decode_baudx(s, nearest);
|
||||
s->rx.scrambled_ones_to_date += ones[bitstream];
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "S11 0x%02x 0x%02x 0x%X %d %d %d %d %d sustain\n", raw_bits, nearest, bitstream, s->rx.scrambled_ones_to_date, s->rx.detected_unscrambled_ones, s->rx.detected_unscrambled_zeros, s->rx.detected_2400bps_markers, s->rx.training_count);
|
||||
if (s->rx.detected_2400bps_markers == 20)
|
||||
{
|
||||
/* It looks like we have the S1 (Unscrambled 00 11) section, so 2400bps
|
||||
operation is possible. */
|
||||
s->rx.detected_2400bps_markers++;
|
||||
if (s->bit_rate == 2400)
|
||||
{
|
||||
/* We are allowed to use 2400bps, and the far end is requesting 2400bps. Result: we are going to
|
||||
work at 2400bps */
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "+++ [2400] starting U0011 (S1)\n");
|
||||
s->tx.training = V22BIS_TX_TRAINING_STAGE_U0011;
|
||||
s->tx.training_count = 0;
|
||||
}
|
||||
}
|
||||
if (++s->rx.training_count > ms_to_symbols(270 + 765))
|
||||
else
|
||||
{
|
||||
if (s->caller)
|
||||
{
|
||||
if (s->bit_rate == 2400)
|
||||
if (s->rx.training_count >= ms_to_symbols(100 + 450))
|
||||
{
|
||||
/* We've continued for a further 756+-10ms. This should have given the other
|
||||
side enough time to train its equaliser. */
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "+++ starting S1111 (B)\n");
|
||||
s->tx.training = V22BIS_TX_TRAINING_STAGE_S1111;
|
||||
s->tx.training_count = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "+++ Tx normal operation (1200)\n");
|
||||
s->tx.training = V22BIS_TX_TRAINING_STAGE_NORMAL_OPERATION;
|
||||
s->tx.training_count = 0;
|
||||
s->tx.current_get_bit = s->get_bit;
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "+++ starting 16 way decisions (caller)\n");
|
||||
s->rx.sixteen_way_decisions = TRUE;
|
||||
s->rx.training = V22BIS_RX_TRAINING_STAGE_WAIT_FOR_SCRAMBLED_ONES_AT_2400;
|
||||
s->rx.pattern_repeats = 0;
|
||||
s->rx.carrier_track_i = 8000.0f;
|
||||
}
|
||||
}
|
||||
if (s->bit_rate == 2400)
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "+++ Rx normal operation (2400)\n");
|
||||
else
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "+++ Rx normal operation (1200)\n");
|
||||
{
|
||||
if (s->rx.training_count >= ms_to_symbols(450))
|
||||
{
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "+++ starting 16 way decisions (answerer)\n");
|
||||
s->rx.sixteen_way_decisions = TRUE;
|
||||
s->rx.training = V22BIS_RX_TRAINING_STAGE_WAIT_FOR_SCRAMBLED_ONES_AT_2400;
|
||||
s->rx.pattern_repeats = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case V22BIS_RX_TRAINING_STAGE_SCRAMBLED_ONES_AT_1200_SUSTAINING:
|
||||
target = &v22bis_constellation[nearest];
|
||||
track_carrier(s, &z, target);
|
||||
tune_equalizer(s, &z, target);
|
||||
bitstream = decode_baudx(s, nearest);
|
||||
if (++s->rx.training_count > ms_to_symbols(270 + 765))
|
||||
{
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "+++ Rx normal operation (1200)\n");
|
||||
s->rx.training = V22BIS_RX_TRAINING_STAGE_NORMAL_OPERATION;
|
||||
}
|
||||
if (s->bit_rate == 2400 && s->rx.training_count == ms_to_symbols(450))
|
||||
break;
|
||||
case V22BIS_RX_TRAINING_STAGE_WAIT_FOR_SCRAMBLED_ONES_AT_2400:
|
||||
target = &v22bis_constellation[nearest];
|
||||
track_carrier(s, &z, target);
|
||||
tune_equalizer(s, &z, target);
|
||||
bitstream = decode_baudx(s, nearest);
|
||||
/* We need 32 sustained 1's to switch into normal operation. */
|
||||
if (bitstream == 0xF)
|
||||
{
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "+++ starting 16 way decisions\n");
|
||||
s->rx.sixteen_way_decisions = TRUE;
|
||||
if (++s->rx.pattern_repeats >= 9)
|
||||
{
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "+++ Rx normal operation (2400)\n");
|
||||
s->rx.training = V22BIS_RX_TRAINING_STAGE_NORMAL_OPERATION;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
s->rx.pattern_repeats = 0;
|
||||
}
|
||||
break;
|
||||
case V22BIS_RX_TRAINING_STAGE_PARKED:
|
||||
|
@ -674,6 +680,7 @@ span_log(&s->logging, SPAN_LOG_FLOW, "S11 0x%02x 0x%02x 0x%X %d %d %d %d %d sust
|
|||
target = &z;
|
||||
break;
|
||||
}
|
||||
s->rx.last_raw_bits = raw_bits;
|
||||
if (s->rx.qam_report)
|
||||
s->rx.qam_report(s->rx.qam_user_data, &z, target, s->rx.constellation_state);
|
||||
}
|
||||
|
@ -721,8 +728,8 @@ SPAN_DECLARE(int) v22bis_rx(v22bis_state_t *s, const int16_t amp[], int len)
|
|||
/* Look for power below the carrier off point */
|
||||
if (power < s->rx.carrier_off_power)
|
||||
{
|
||||
v22bis_rx_restart(s, s->bit_rate);
|
||||
report_status_change(s, SIG_STATUS_CARRIER_DOWN);
|
||||
v22bis_restart(s, s->bit_rate);
|
||||
v22bis_report_status_change(s, SIG_STATUS_CARRIER_DOWN);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
@ -732,7 +739,7 @@ SPAN_DECLARE(int) v22bis_rx(v22bis_state_t *s, const int16_t amp[], int len)
|
|||
if (power < s->rx.carrier_on_power)
|
||||
continue;
|
||||
s->rx.signal_present = TRUE;
|
||||
report_status_change(s, SIG_STATUS_CARRIER_UP);
|
||||
v22bis_report_status_change(s, SIG_STATUS_CARRIER_UP);
|
||||
}
|
||||
if (s->rx.training != V22BIS_RX_TRAINING_STAGE_PARKED)
|
||||
{
|
||||
|
@ -813,11 +820,8 @@ SPAN_DECLARE(int) v22bis_rx_fillin(v22bis_state_t *s, int len)
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) v22bis_rx_restart(v22bis_state_t *s, int bit_rate)
|
||||
int v22bis_rx_restart(v22bis_state_t *s)
|
||||
{
|
||||
/* If bit_rate is 2400, the real bit rate is negotiated. If bit_rate
|
||||
is 1200, the real bit rate is forced to 1200. */
|
||||
s->bit_rate = bit_rate;
|
||||
vec_zerof(s->rx.rrc_filter, sizeof(s->rx.rrc_filter)/sizeof(s->rx.rrc_filter[0]));
|
||||
s->rx.rrc_filter_step = 0;
|
||||
s->rx.scramble_reg = 0;
|
||||
|
@ -837,19 +841,24 @@ SPAN_DECLARE(int) v22bis_rx_restart(v22bis_state_t *s, int bit_rate)
|
|||
|
||||
equalizer_reset(s);
|
||||
|
||||
s->rx.detected_unscrambled_ones = 0;
|
||||
s->rx.detected_unscrambled_zeros = 0;
|
||||
s->rx.detected_2400bps_markers = 0;
|
||||
s->rx.pattern_repeats = 0;
|
||||
s->rx.last_raw_bits = 0;
|
||||
s->rx.gardner_integrate = 0;
|
||||
s->rx.gardner_step = 256;
|
||||
s->rx.baud_phase = 0;
|
||||
s->rx.carrier_track_i = 8000.0f;
|
||||
s->rx.training_error = 0.0f;
|
||||
s->rx.total_baud_timing_correction = 0;
|
||||
/* We want the carrier to pull in faster on the answerer side, as it has very little time to adapt. */
|
||||
s->rx.carrier_track_i = (s->caller) ? 8000.0f : 40000.0f;
|
||||
s->rx.carrier_track_p = 8000000.0f;
|
||||
|
||||
s->negotiated_bit_rate = 1200;
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(void) v22bis_set_qam_report_handler(v22bis_state_t *s, qam_report_handler_t handler, void *user_data)
|
||||
SPAN_DECLARE(void) v22bis_rx_set_qam_report_handler(v22bis_state_t *s, qam_report_handler_t handler, void *user_data)
|
||||
{
|
||||
s->rx.qam_report = handler;
|
||||
s->rx.qam_user_data = user_data;
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: v22bis_tx.c,v 1.56 2009/04/17 14:37:52 steveu Exp $
|
||||
* $Id: v22bis_tx.c,v 1.61 2009/04/25 10:18:50 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -294,12 +294,13 @@ static __inline__ int scramble(v22bis_state_t *s, int bit)
|
|||
bit ^= 1;
|
||||
s->tx.scrambler_pattern_count = 0;
|
||||
}
|
||||
out_bit = (bit ^ (s->tx.scramble_reg >> 14) ^ (s->tx.scramble_reg >> 17)) & 1;
|
||||
out_bit = (bit ^ (s->tx.scramble_reg >> 13) ^ (s->tx.scramble_reg >> 16)) & 1;
|
||||
s->tx.scramble_reg = (s->tx.scramble_reg << 1) | out_bit;
|
||||
|
||||
if (out_bit == 1)
|
||||
s->tx.scrambler_pattern_count++;
|
||||
else
|
||||
s->tx.scrambler_pattern_count = 0;
|
||||
s->tx.scramble_reg = (s->tx.scramble_reg << 1) | out_bit;
|
||||
return out_bit;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
@ -308,7 +309,7 @@ static __inline__ int get_scrambled_bit(v22bis_state_t *s)
|
|||
{
|
||||
int bit;
|
||||
|
||||
if ((bit = s->tx.current_get_bit(s->user_data)) == SIG_STATUS_END_OF_DATA)
|
||||
if ((bit = s->tx.current_get_bit(s->get_bit_user_data)) == SIG_STATUS_END_OF_DATA)
|
||||
{
|
||||
/* Fill out this symbol with ones, and prepare to send
|
||||
the rest of the shutdown sequence. */
|
||||
|
@ -334,8 +335,8 @@ static complexf_t training_get(v22bis_state_t *s)
|
|||
{
|
||||
/* Initial 75ms of silence is over */
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "+++ starting U11 1200\n");
|
||||
s->tx.training = V22BIS_TX_TRAINING_STAGE_U11;
|
||||
s->tx.training_count = 0;
|
||||
s->tx.training = V22BIS_TX_TRAINING_STAGE_U11;
|
||||
}
|
||||
/* Fall through */
|
||||
case V22BIS_TX_TRAINING_STAGE_INITIAL_SILENCE:
|
||||
|
@ -353,37 +354,40 @@ static complexf_t training_get(v22bis_state_t *s)
|
|||
/* Continuous unscrambled double dibit 00 11 at 1200bps. This is termed the S1 segment in
|
||||
the V.22bis spec. It is only sent to request or accept 2400bps mode, and lasts 100+-3ms. After this
|
||||
timed burst, we unconditionally change to sending scrambled ones at 1200bps. */
|
||||
s->tx.constellation_state = (s->tx.constellation_state + phase_steps[(s->tx.training_count & 1) ? 3 : 0]) & 3;
|
||||
s->tx.constellation_state = (s->tx.constellation_state + phase_steps[3*(s->tx.training_count & 1)]) & 3;
|
||||
z = v22bis_constellation[(s->tx.constellation_state << 2) | 0x01];
|
||||
if (++s->tx.training_count >= ms_to_symbols(100))
|
||||
{
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "+++ starting S11 after U0011\n");
|
||||
if (s->caller)
|
||||
{
|
||||
s->tx.training_count = 0;
|
||||
s->tx.training = V22BIS_TX_TRAINING_STAGE_S11;
|
||||
}
|
||||
else
|
||||
{
|
||||
s->tx.training_count = ms_to_symbols(756 - (600 - 100));
|
||||
s->tx.training = V22BIS_TX_TRAINING_STAGE_TIMED_S11;
|
||||
s->tx.training_count = 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case V22BIS_TX_TRAINING_STAGE_TIMED_S11:
|
||||
/* A timed period of scrambled ones at 1200bps. */
|
||||
if (!s->caller)
|
||||
if (++s->tx.training_count >= ms_to_symbols(756))
|
||||
{
|
||||
if (++s->tx.training_count >= ms_to_symbols(756))
|
||||
if (s->negotiated_bit_rate == 2400)
|
||||
{
|
||||
if (s->bit_rate == 2400)
|
||||
{
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "+++ starting S1111 (C)\n");
|
||||
s->tx.training = V22BIS_TX_TRAINING_STAGE_S1111;
|
||||
s->tx.training_count = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "+++ Tx normal operation (1200)\n");
|
||||
s->tx.training = V22BIS_TX_TRAINING_STAGE_NORMAL_OPERATION;
|
||||
s->tx.training_count = 0;
|
||||
s->tx.current_get_bit = s->get_bit;
|
||||
}
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "+++ starting S1111 (C)\n");
|
||||
s->tx.training_count = 0;
|
||||
s->tx.training = V22BIS_TX_TRAINING_STAGE_S1111;
|
||||
}
|
||||
else
|
||||
{
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "+++ Tx normal operation (1200)\n");
|
||||
s->tx.training_count = 0;
|
||||
s->tx.training = V22BIS_TX_TRAINING_STAGE_NORMAL_OPERATION;
|
||||
v22bis_report_status_change(s, SIG_STATUS_TRAINING_SUCCEEDED);
|
||||
s->tx.current_get_bit = s->get_bit;
|
||||
}
|
||||
}
|
||||
/* Fall through */
|
||||
|
@ -406,8 +410,9 @@ static complexf_t training_get(v22bis_state_t *s)
|
|||
{
|
||||
/* We have completed training. Now handle some real work. */
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "+++ Tx normal operation (2400)\n");
|
||||
s->tx.training = V22BIS_TX_TRAINING_STAGE_NORMAL_OPERATION;
|
||||
s->tx.training_count = 0;
|
||||
s->tx.training = V22BIS_TX_TRAINING_STAGE_NORMAL_OPERATION;
|
||||
v22bis_report_status_change(s, SIG_STATUS_TRAINING_SUCCEEDED);
|
||||
s->tx.current_get_bit = s->get_bit;
|
||||
}
|
||||
break;
|
||||
|
@ -442,7 +447,7 @@ static complexf_t getbaud(v22bis_state_t *s)
|
|||
bits = get_scrambled_bit(s);
|
||||
bits = (bits << 1) | get_scrambled_bit(s);
|
||||
s->tx.constellation_state = (s->tx.constellation_state + phase_steps[bits]) & 3;
|
||||
if (s->bit_rate == 1200)
|
||||
if (s->negotiated_bit_rate == 1200)
|
||||
{
|
||||
bits = 0x01;
|
||||
}
|
||||
|
@ -525,9 +530,8 @@ SPAN_DECLARE(void) v22bis_tx_power(v22bis_state_t *s, float power)
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
static int v22bis_tx_restart(v22bis_state_t *s, int bit_rate)
|
||||
static int v22bis_tx_restart(v22bis_state_t *s)
|
||||
{
|
||||
s->bit_rate = bit_rate;
|
||||
cvec_zerof(s->tx.rrc_filter, sizeof(s->tx.rrc_filter)/sizeof(s->tx.rrc_filter[0]));
|
||||
s->tx.rrc_filter_step = 0;
|
||||
s->tx.scramble_reg = 0;
|
||||
|
@ -550,14 +554,14 @@ static int v22bis_tx_restart(v22bis_state_t *s, int bit_rate)
|
|||
SPAN_DECLARE(void) v22bis_set_get_bit(v22bis_state_t *s, get_bit_func_t get_bit, void *user_data)
|
||||
{
|
||||
s->get_bit = get_bit;
|
||||
s->user_data = user_data;
|
||||
s->get_bit_user_data = user_data;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(void) v22bis_set_put_bit(v22bis_state_t *s, put_bit_func_t put_bit, void *user_data)
|
||||
{
|
||||
s->put_bit = put_bit;
|
||||
s->user_data = user_data;
|
||||
s->put_bit_user_data = user_data;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
|
@ -576,11 +580,40 @@ SPAN_DECLARE(logging_state_t *) v22bis_get_logging_state(v22bis_state_t *s)
|
|||
|
||||
SPAN_DECLARE(int) v22bis_restart(v22bis_state_t *s, int bit_rate)
|
||||
{
|
||||
if (bit_rate != 2400 && bit_rate != 1200)
|
||||
switch (bit_rate)
|
||||
{
|
||||
case 2400:
|
||||
case 1200:
|
||||
break;
|
||||
default:
|
||||
return -1;
|
||||
if (v22bis_tx_restart(s, bit_rate))
|
||||
}
|
||||
s->bit_rate = bit_rate;
|
||||
s->negotiated_bit_rate = 1200;
|
||||
if (v22bis_tx_restart(s))
|
||||
return -1;
|
||||
return v22bis_rx_restart(s, bit_rate);
|
||||
return v22bis_rx_restart(s);
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) v22bis_request_retrain(v22bis_state_t *s, int bit_rate)
|
||||
{
|
||||
switch (bit_rate)
|
||||
{
|
||||
case 2400:
|
||||
case 1200:
|
||||
break;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
/* TODO: Implement retrain and bit rate change */
|
||||
return -1;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) v22bis_current_bit_rate(v22bis_state_t *s)
|
||||
{
|
||||
return s->negotiated_bit_rate;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
|
@ -589,9 +622,18 @@ SPAN_DECLARE(v22bis_state_t *) v22bis_init(v22bis_state_t *s,
|
|||
int guard,
|
||||
int caller,
|
||||
get_bit_func_t get_bit,
|
||||
void *get_bit_user_data,
|
||||
put_bit_func_t put_bit,
|
||||
void *user_data)
|
||||
void *put_bit_user_data)
|
||||
{
|
||||
switch (bit_rate)
|
||||
{
|
||||
case 2400:
|
||||
case 1200:
|
||||
break;
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
if (s == NULL)
|
||||
{
|
||||
if ((s = (v22bis_state_t *) malloc(sizeof(*s))) == NULL)
|
||||
|
@ -604,8 +646,9 @@ SPAN_DECLARE(v22bis_state_t *) v22bis_init(v22bis_state_t *s,
|
|||
s->caller = caller;
|
||||
|
||||
s->get_bit = get_bit;
|
||||
s->get_bit_user_data = get_bit_user_data;
|
||||
s->put_bit = put_bit;
|
||||
s->user_data = user_data;
|
||||
s->put_bit_user_data = put_bit_user_data;
|
||||
|
||||
if (s->caller)
|
||||
{
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: v27ter_rx.c,v 1.125 2009/04/20 16:36:36 steveu Exp $
|
||||
* $Id: v27ter_rx.c,v 1.126 2009/04/21 13:59:07 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -1145,6 +1145,14 @@ SPAN_DECLARE(int) v27ter_rx_restart(v27ter_rx_state_t *s, int bit_rate, int old_
|
|||
|
||||
SPAN_DECLARE(v27ter_rx_state_t *) v27ter_rx_init(v27ter_rx_state_t *s, int bit_rate, put_bit_func_t put_bit, void *user_data)
|
||||
{
|
||||
switch (bit_rate)
|
||||
{
|
||||
case 4800:
|
||||
case 2400:
|
||||
break;
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
if (s == NULL)
|
||||
{
|
||||
if ((s = (v27ter_rx_state_t *) malloc(sizeof(*s))) == NULL)
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: v27ter_tx.c,v 1.74 2009/04/12 04:20:01 steveu Exp $
|
||||
* $Id: v27ter_tx.c,v 1.75 2009/04/21 13:59:07 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -412,6 +412,14 @@ SPAN_DECLARE(int) v27ter_tx_restart(v27ter_tx_state_t *s, int bit_rate, int tep)
|
|||
|
||||
SPAN_DECLARE(v27ter_tx_state_t *) v27ter_tx_init(v27ter_tx_state_t *s, int bit_rate, int tep, get_bit_func_t get_bit, void *user_data)
|
||||
{
|
||||
switch (bit_rate)
|
||||
{
|
||||
case 4800:
|
||||
case 2400:
|
||||
break;
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
if (s == NULL)
|
||||
{
|
||||
if ((s = (v27ter_tx_state_t *) malloc(sizeof(*s))) == NULL)
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: v29rx.c,v 1.163 2009/04/20 16:36:36 steveu Exp $
|
||||
* $Id: v29rx.c,v 1.164 2009/04/21 13:59:07 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -1156,14 +1156,22 @@ SPAN_DECLARE(int) v29_rx_restart(v29_rx_state_t *s, int bit_rate, int old_train)
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(v29_rx_state_t *) v29_rx_init(v29_rx_state_t *s, int rate, put_bit_func_t put_bit, void *user_data)
|
||||
SPAN_DECLARE(v29_rx_state_t *) v29_rx_init(v29_rx_state_t *s, int bit_rate, put_bit_func_t put_bit, void *user_data)
|
||||
{
|
||||
switch (bit_rate)
|
||||
{
|
||||
case 9600:
|
||||
case 7200:
|
||||
case 4800:
|
||||
break;
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
if (s == NULL)
|
||||
{
|
||||
if ((s = (v29_rx_state_t *) malloc(sizeof(*s))) == NULL)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
memset(s, 0, sizeof(*s));
|
||||
span_log_init(&s->logging, SPAN_LOG_NONE, NULL);
|
||||
span_log_set_protocol(&s->logging, "V.29 RX");
|
||||
|
@ -1176,7 +1184,7 @@ SPAN_DECLARE(v29_rx_state_t *) v29_rx_init(v29_rx_state_t *s, int rate, put_bit_
|
|||
/* The thresholds should be on at -26dBm0 and off at -31dBm0 */
|
||||
v29_rx_signal_cutoff(s, -28.5f);
|
||||
|
||||
v29_rx_restart(s, rate, FALSE);
|
||||
v29_rx_restart(s, bit_rate, FALSE);
|
||||
return s;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: v29tx.c,v 1.87 2009/04/12 04:20:01 steveu Exp $
|
||||
* $Id: v29tx.c,v 1.88 2009/04/21 13:59:07 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -368,6 +368,15 @@ SPAN_DECLARE(int) v29_tx_restart(v29_tx_state_t *s, int bit_rate, int tep)
|
|||
|
||||
SPAN_DECLARE(v29_tx_state_t *) v29_tx_init(v29_tx_state_t *s, int bit_rate, int tep, get_bit_func_t get_bit, void *user_data)
|
||||
{
|
||||
switch (bit_rate)
|
||||
{
|
||||
case 9600:
|
||||
case 7200:
|
||||
case 4800:
|
||||
break;
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
if (s == NULL)
|
||||
{
|
||||
if ((s = (v29_tx_state_t *) malloc(sizeof(*s))) == NULL)
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
## along with this program; if not, write to the Free Software
|
||||
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
##
|
||||
## $Id: Makefile.am,v 1.112 2009/04/01 13:22:40 steveu Exp $
|
||||
## $Id: Makefile.am,v 1.114 2009/04/26 08:25:37 steveu Exp $
|
||||
|
||||
AM_CFLAGS = $(COMP_VENDOR_CFLAGS)
|
||||
AM_LDFLAGS = $(COMP_VENDOR_LDFLAGS)
|
||||
|
@ -25,7 +25,26 @@ LIBS += $(TESTLIBS)
|
|||
|
||||
noinst_DATA = sound_c1_8k.wav sound_c3_8k.wav
|
||||
|
||||
EXTRA_DIST = regression_tests.sh v42bis_tests.sh fax_tests.sh tsb85_tests.sh
|
||||
EXTRA_DIST = regression_tests.sh \
|
||||
v42bis_tests.sh \
|
||||
fax_tests.sh \
|
||||
tsb85_tests.sh \
|
||||
msvc/adsi_tests.vcproj \
|
||||
msvc/complex_tests.vcproj \
|
||||
msvc/complex_vector_float_tests.vcproj \
|
||||
msvc/complex_vector_int_tests.vcproj \
|
||||
msvc/dtmf_rx_tests.vcproj \
|
||||
msvc/dtmf_tx_tests.vcproj \
|
||||
msvc/queue_tests.vcproj \
|
||||
msvc/t38_core_tests.vcproj \
|
||||
msvc/t38_non_ecm_buffer_tests.vcproj \
|
||||
msvc/t38_terminal_tests.vcproj \
|
||||
msvc/v22bis_tests.vcproj \
|
||||
msvc/v29_tests.vcproj \
|
||||
msvc/v8_tests.vcproj \
|
||||
msvc/v80_tests.vcproj \
|
||||
msvc/vector_float_tests.vcproj \
|
||||
msvc/vector_int_tests.vcproj
|
||||
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: adsi_tests.c,v 1.55 2009/04/11 15:16:14 steveu Exp $
|
||||
* $Id: adsi_tests.c,v 1.56 2009/04/26 07:24:35 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \page adsi_tests_page ADSI tests
|
||||
|
@ -47,7 +47,6 @@ tests, these tests do not include line modelling.
|
|||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <strings.h>
|
||||
#include <assert.h>
|
||||
#include <audiofile.h>
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: at_interpreter_tests.c,v 1.20 2008/11/30 05:43:37 steveu Exp $
|
||||
* $Id: at_interpreter_tests.c,v 1.22 2009/04/24 22:35:25 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -221,9 +221,14 @@ static const struct command_response_s general_test_seq[] =
|
|||
{"AT+EB=?\r", "\r\n+EB:\r\n\r\nOK\r\n"}, /* V.250 6.5.2 - Break handling in error control operation */
|
||||
{"AT+EFCS=?\r", "\r\n+EFCS:(0-2)\r\n\r\nOK\r\n"}, /* V.250 6.5.4 - 32-bit frame check sequence */
|
||||
{"AT+EFCS?\r", "\r\n+EFCS:0\r\n\r\nOK\r\n"},
|
||||
{"AT+EFRAM=?\r", "\r\n+EFRAM:(1-65535),(1-65535)\r\n\r\nOK\r\n"}, /* V.250 6.5.8 - Frame length */
|
||||
{"AT+EFRAM=?\r", "\r\n+EFRAM:(1-65535),(1-65535)\r\n\r\nOK\r\n"},
|
||||
/* V.250 6.5.8 - Frame length */
|
||||
{"AT+ER=?\r", "\r\n+ER:(0,1)\r\n\r\nOK\r\n"}, /* V.250 6.5.5 - Error control reporting */
|
||||
{"AT+ES\r", "\r\nOK\r\n"}, /* V.250 6.5.1 - Error control selection */
|
||||
{"AT+ES=?\r", "\r\n+ES:(0-7),(0-4),(0-9)\r\n\r\nOK\r\n"}, /* V.250 6.5.1 - Error control selection */
|
||||
{"AT+ES?\r", "\r\n+ES:0,0,0\r\n\r\nOK\r\n"},
|
||||
{"AT+ESA=?\r", "\r\n+ESA:(0-2),(0-1),(0-1),(0-1),(0-2),(0-1),(0-255),(0-255)\r\n\r\nOK\r\n"},
|
||||
/* V.80 8.2 - Synchronous access mode configuration */
|
||||
{"AT+ESA?\r", "\r\n+ESA:0,0,0,0,0,0,0,0\r\n\r\nOK\r\n"},
|
||||
{"AT+ESR\r", "\r\nOK\r\n"}, /* V.250 6.5.3 - Selective repeat */
|
||||
{"AT+ETBM=?\r", "\r\n+ETBM:(0-2),(0-2),(0-30)\r\n\r\nOK\r\n"}, /* T.31 8.5.1 - Adaptive reception control */
|
||||
{"AT+ETBM?\r", "\r\n+ETBM:0,0\r\n\r\nOK\r\n"},
|
||||
|
@ -264,6 +269,11 @@ static const struct command_response_s general_test_seq[] =
|
|||
{"AT+GMR?\r", "\r\n" VERSION "\r\n\r\nOK\r\n"}, /* V.250 6.1.6 - Request revision identification */
|
||||
{"AT+GOI\r", "\r\nOK\r\n"}, /* V.250 6.1.8 - Request global object identification */
|
||||
{"AT+GSN?\r", "\r\n42\r\n\r\nOK\r\n"}, /* V.250 6.1.7 - Request product serial number identification */
|
||||
{"AT+IBC=?\r", "\r\n+IBC:(0-2),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0.1),(0,1)\r\n\r\nOK\r\n"},
|
||||
/* V.80 7.9 - Control of in-band control */
|
||||
{"AT+IBC?\r", "\r\n+IBC:0,0,0,0,0,0,0,0,0,0,0,0,0\r\n\r\nOK\r\n"},
|
||||
{"AT+IBM=?\r", "\r\n+IBM:(0-7),(0-255),(0-255)\r\n\r\nOK\r\n"}, /* V.80 7.10 - In-band MARK idle reporting control */
|
||||
{"AT+IBM?\r", "\r\n+IBM:0,0,0\r\n\r\nOK\r\n"},
|
||||
{"AT+ICF?\r", "\r\n+ICF:0,0\r\n\r\nOK\r\n"}, /* V.250 6.2.11 - DTE-DCE character framing */
|
||||
{"AT+ICLOK?\r", "\r\n+ICLOK:0\r\n\r\nOK\r\n"}, /* V.250 6.2.14 - Select sync transmit clock source */
|
||||
{"AT+IDSR?\r", "\r\n+IDSR:0\r\n\r\nOK\r\n"}, /* V.250 6.2.16 - Select data set ready option */
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: complex_vector_float_tests.c,v 1.2 2008/10/09 13:25:19 steveu Exp $
|
||||
* $Id: complex_vector_float_tests.c,v 1.3 2009/04/26 07:00:39 steveu Exp $
|
||||
*/
|
||||
|
||||
#if defined(HAVE_CONFIG_H)
|
||||
|
@ -33,7 +33,6 @@
|
|||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <string.h>
|
||||
#include <audiofile.h>
|
||||
|
||||
#include "spandsp.h"
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: complex_vector_int_tests.c,v 1.1 2008/09/18 12:05:35 steveu Exp $
|
||||
* $Id: complex_vector_int_tests.c,v 1.2 2009/04/26 07:00:39 steveu Exp $
|
||||
*/
|
||||
|
||||
#if defined(HAVE_CONFIG_H)
|
||||
|
@ -33,7 +33,6 @@
|
|||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <string.h>
|
||||
#include <audiofile.h>
|
||||
|
||||
#include "spandsp.h"
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: fax_utils.c,v 1.1 2009/02/20 12:34:20 steveu Exp $
|
||||
* $Id: fax_utils.c,v 1.2 2009/04/25 14:17:47 steveu Exp $
|
||||
*/
|
||||
|
||||
#if defined(HAVE_CONFIG_H)
|
||||
|
@ -31,10 +31,8 @@
|
|||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
#include <audiofile.h>
|
||||
|
||||
//#if defined(WITH_SPANDSP_INTERNALS)
|
||||
#define SPANDSP_EXPOSE_INTERNAL_STRUCTURES
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: g711_tests.c,v 1.15 2008/11/30 10:17:31 steveu Exp $
|
||||
* $Id: g711_tests.c,v 1.16 2009/04/22 12:57:40 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \page g711_tests_page A-law and u-law conversion tests
|
||||
|
@ -38,6 +38,7 @@
|
|||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <audiofile.h>
|
||||
|
||||
|
@ -48,7 +49,11 @@
|
|||
#include "spandsp.h"
|
||||
#include "spandsp-sim.h"
|
||||
|
||||
#define OUT_FILE_NAME "g711.wav"
|
||||
#define BLOCK_LEN 160
|
||||
|
||||
#define IN_FILE_NAME "../test-data/local/short_nb_voice.wav"
|
||||
#define ENCODED_FILE_NAME "g711.g711"
|
||||
#define OUT_FILE_NAME "post_g711.wav"
|
||||
|
||||
int16_t amp[65536];
|
||||
uint8_t ulaw_data[65536];
|
||||
|
@ -57,7 +62,7 @@ uint8_t alaw_data[65536];
|
|||
const uint8_t alaw_1khz_sine[] = {0x34, 0x21, 0x21, 0x34, 0xB4, 0xA1, 0xA1, 0xB4};
|
||||
const uint8_t ulaw_1khz_sine[] = {0x1E, 0x0B, 0x0B, 0x1E, 0x9E, 0x8B, 0x8B, 0x9E};
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
static void compliance_tests(int log_audio)
|
||||
{
|
||||
AFfilehandle outhandle;
|
||||
power_meter_t power_meter;
|
||||
|
@ -73,14 +78,18 @@ int main(int argc, char *argv[])
|
|||
float worst_ulaw;
|
||||
float tmp;
|
||||
int len;
|
||||
g711_state_t *encode;
|
||||
g711_state_t *enc_state;
|
||||
g711_state_t *transcode;
|
||||
g711_state_t *decode;
|
||||
|
||||
if ((outhandle = afOpenFile_telephony_write(OUT_FILE_NAME, 1)) == AF_NULL_FILEHANDLE)
|
||||
g711_state_t *dec_state;
|
||||
|
||||
outhandle = AF_NULL_FILEHANDLE;
|
||||
if (log_audio)
|
||||
{
|
||||
fprintf(stderr, " Cannot create wave file '%s'\n", OUT_FILE_NAME);
|
||||
exit(2);
|
||||
if ((outhandle = afOpenFile_telephony_write(OUT_FILE_NAME, 1)) == AF_NULL_FILEHANDLE)
|
||||
{
|
||||
fprintf(stderr, " Cannot create wave file '%s'\n", OUT_FILE_NAME);
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
|
||||
printf("Conversion accuracy tests.\n");
|
||||
|
@ -116,14 +125,17 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
amp[i] = post;
|
||||
}
|
||||
outframes = afWriteFrames(outhandle,
|
||||
AF_DEFAULT_TRACK,
|
||||
amp,
|
||||
65536);
|
||||
if (outframes != 65536)
|
||||
if (log_audio)
|
||||
{
|
||||
fprintf(stderr, " Error writing wave file\n");
|
||||
exit(2);
|
||||
outframes = afWriteFrames(outhandle,
|
||||
AF_DEFAULT_TRACK,
|
||||
amp,
|
||||
65536);
|
||||
if (outframes != 65536)
|
||||
{
|
||||
fprintf(stderr, " Error writing wave file\n");
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
for (i = 0; i < 65536; i++)
|
||||
{
|
||||
|
@ -151,14 +163,17 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
amp[i] = post;
|
||||
}
|
||||
outframes = afWriteFrames(outhandle,
|
||||
AF_DEFAULT_TRACK,
|
||||
amp,
|
||||
65536);
|
||||
if (outframes != 65536)
|
||||
if (log_audio)
|
||||
{
|
||||
fprintf(stderr, " Error writing wave file\n");
|
||||
exit(2);
|
||||
outframes = afWriteFrames(outhandle,
|
||||
AF_DEFAULT_TRACK,
|
||||
amp,
|
||||
65536);
|
||||
if (outframes != 65536)
|
||||
{
|
||||
fprintf(stderr, " Error writing wave file\n");
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
}
|
||||
printf("Worst A-law error (ignoring small values) %f%%\n", worst_alaw*100.0);
|
||||
|
@ -207,14 +222,17 @@ int main(int argc, char *argv[])
|
|||
power_meter_update(&power_meter, amp[i]);
|
||||
}
|
||||
printf("Reference u-law 1kHz tone is %fdBm0\n", power_meter_current_dbm0(&power_meter));
|
||||
outframes = afWriteFrames(outhandle,
|
||||
AF_DEFAULT_TRACK,
|
||||
amp,
|
||||
8000);
|
||||
if (outframes != 8000)
|
||||
if (log_audio)
|
||||
{
|
||||
fprintf(stderr, " Error writing wave file\n");
|
||||
exit(2);
|
||||
outframes = afWriteFrames(outhandle,
|
||||
AF_DEFAULT_TRACK,
|
||||
amp,
|
||||
8000);
|
||||
if (outframes != 8000)
|
||||
{
|
||||
fprintf(stderr, " Error writing wave file\n");
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
if (0.1f < fabs(power_meter_current_dbm0(&power_meter)))
|
||||
{
|
||||
|
@ -228,14 +246,17 @@ int main(int argc, char *argv[])
|
|||
power_meter_update(&power_meter, amp[i]);
|
||||
}
|
||||
printf("Reference A-law 1kHz tone is %fdBm0\n", power_meter_current_dbm0(&power_meter));
|
||||
outframes = afWriteFrames(outhandle,
|
||||
AF_DEFAULT_TRACK,
|
||||
amp,
|
||||
8000);
|
||||
if (outframes != 8000)
|
||||
if (log_audio)
|
||||
{
|
||||
fprintf(stderr, " Error writing wave file\n");
|
||||
exit(2);
|
||||
outframes = afWriteFrames(outhandle,
|
||||
AF_DEFAULT_TRACK,
|
||||
amp,
|
||||
8000);
|
||||
if (outframes != 8000)
|
||||
{
|
||||
fprintf(stderr, " Error writing wave file\n");
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
if (0.1f < fabs(power_meter_current_dbm0(&power_meter)))
|
||||
{
|
||||
|
@ -272,16 +293,16 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
}
|
||||
|
||||
encode = g711_init(NULL, G711_ALAW);
|
||||
enc_state = g711_init(NULL, G711_ALAW);
|
||||
transcode = g711_init(NULL, G711_ALAW);
|
||||
decode = g711_init(NULL, G711_ULAW);
|
||||
dec_state = g711_init(NULL, G711_ULAW);
|
||||
|
||||
len = 65536;
|
||||
for (i = 0; i < len; i++)
|
||||
amp[i] = i - 32768;
|
||||
len = g711_encode(encode, alaw_data, amp, len);
|
||||
len = g711_encode(enc_state, alaw_data, amp, len);
|
||||
len = g711_transcode(transcode, ulaw_data, alaw_data, len);
|
||||
len = g711_decode(decode, amp, ulaw_data, len);
|
||||
len = g711_decode(dec_state, amp, ulaw_data, len);
|
||||
if (len != 65536)
|
||||
{
|
||||
printf("Block coding gave the wrong length - %d instead of %d\n", len, 65536);
|
||||
|
@ -311,17 +332,204 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
}
|
||||
}
|
||||
g711_release(encode);
|
||||
g711_release(enc_state);
|
||||
g711_release(transcode);
|
||||
g711_release(decode);
|
||||
g711_release(dec_state);
|
||||
|
||||
if (afCloseFile(outhandle))
|
||||
if (log_audio)
|
||||
{
|
||||
fprintf(stderr, " Cannot close wave file '%s'\n", OUT_FILE_NAME);
|
||||
exit(2);
|
||||
if (afCloseFile(outhandle))
|
||||
{
|
||||
fprintf(stderr, " Cannot close wave file '%s'\n", OUT_FILE_NAME);
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
|
||||
printf("Tests passed.\n");
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
AFfilehandle inhandle;
|
||||
AFfilehandle outhandle;
|
||||
int outframes;
|
||||
int opt;
|
||||
int samples;
|
||||
int len2;
|
||||
int len3;
|
||||
int basic_tests;
|
||||
int law;
|
||||
int encode;
|
||||
int decode;
|
||||
int file;
|
||||
const char *in_file;
|
||||
const char *out_file;
|
||||
g711_state_t *enc_state;
|
||||
g711_state_t *dec_state;
|
||||
int16_t indata[BLOCK_LEN];
|
||||
int16_t outdata[BLOCK_LEN];
|
||||
uint8_t g711data[BLOCK_LEN];
|
||||
|
||||
basic_tests = TRUE;
|
||||
law = G711_ALAW;
|
||||
encode = FALSE;
|
||||
decode = FALSE;
|
||||
in_file = NULL;
|
||||
out_file = NULL;
|
||||
while ((opt = getopt(argc, argv, "ad:e:l:u")) != -1)
|
||||
{
|
||||
switch (opt)
|
||||
{
|
||||
case 'a':
|
||||
law = G711_ALAW;
|
||||
basic_tests = FALSE;
|
||||
break;
|
||||
case 'd':
|
||||
in_file = optarg;
|
||||
basic_tests = FALSE;
|
||||
decode = TRUE;
|
||||
break;
|
||||
case 'e':
|
||||
in_file = optarg;
|
||||
basic_tests = FALSE;
|
||||
encode = TRUE;
|
||||
break;
|
||||
case 'l':
|
||||
out_file = optarg;
|
||||
break;
|
||||
case 'u':
|
||||
law = G711_ULAW;
|
||||
basic_tests = FALSE;
|
||||
break;
|
||||
default:
|
||||
//usage();
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
|
||||
if (basic_tests)
|
||||
{
|
||||
compliance_tests(TRUE);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!decode && !encode)
|
||||
{
|
||||
decode =
|
||||
encode = TRUE;
|
||||
}
|
||||
if (in_file == NULL)
|
||||
{
|
||||
in_file = (encode) ? IN_FILE_NAME : ENCODED_FILE_NAME;
|
||||
}
|
||||
if (out_file == NULL)
|
||||
{
|
||||
out_file = (decode) ? OUT_FILE_NAME : ENCODED_FILE_NAME;
|
||||
}
|
||||
inhandle = AF_NULL_FILEHANDLE;
|
||||
outhandle = AF_NULL_FILEHANDLE;
|
||||
file = -1;
|
||||
enc_state = NULL;
|
||||
dec_state = NULL;
|
||||
if (encode)
|
||||
{
|
||||
if ((inhandle = afOpenFile_telephony_read(in_file, 1)) == AF_NULL_FILEHANDLE)
|
||||
{
|
||||
fprintf(stderr, " Cannot open wave file '%s'\n", in_file);
|
||||
exit(2);
|
||||
}
|
||||
enc_state = g711_init(NULL, law);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((file = open(in_file, O_RDONLY)) < 0)
|
||||
{
|
||||
fprintf(stderr, " Failed to open '%s'\n", in_file);
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
if (decode)
|
||||
{
|
||||
if ((outhandle = afOpenFile_telephony_write(out_file, 1)) == AF_NULL_FILEHANDLE)
|
||||
{
|
||||
fprintf(stderr, " Cannot create wave file '%s'\n", out_file);
|
||||
exit(2);
|
||||
}
|
||||
dec_state = g711_init(NULL, law);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((file = open(out_file, O_WRONLY | O_CREAT | O_TRUNC, 0666)) < 0)
|
||||
{
|
||||
fprintf(stderr, " Failed to open '%s'\n", out_file);
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
for (;;)
|
||||
{
|
||||
if (encode)
|
||||
{
|
||||
samples = afReadFrames(inhandle,
|
||||
AF_DEFAULT_TRACK,
|
||||
indata,
|
||||
BLOCK_LEN);
|
||||
if (samples <= 0)
|
||||
break;
|
||||
len2 = g711_encode(enc_state, g711data, indata, samples);
|
||||
}
|
||||
else
|
||||
{
|
||||
len2 = read(file, g711data, BLOCK_LEN);
|
||||
if (len2 <= 0)
|
||||
break;
|
||||
}
|
||||
if (decode)
|
||||
{
|
||||
len3 = g711_decode(dec_state, outdata, g711data, len2);
|
||||
outframes = afWriteFrames(outhandle,
|
||||
AF_DEFAULT_TRACK,
|
||||
outdata,
|
||||
len3);
|
||||
if (outframes != len3)
|
||||
{
|
||||
fprintf(stderr, " Error writing wave file\n");
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
len3 = write(file, g711data, len2);
|
||||
if (len3 <= 0)
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (encode)
|
||||
{
|
||||
if (afCloseFile(inhandle))
|
||||
{
|
||||
fprintf(stderr, " Cannot close wave file '%s'\n", IN_FILE_NAME);
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
close(file);
|
||||
}
|
||||
if (decode)
|
||||
{
|
||||
if (afCloseFile(outhandle))
|
||||
{
|
||||
fprintf(stderr, " Cannot close wave file '%s'\n", OUT_FILE_NAME);
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
close(file);
|
||||
}
|
||||
printf("'%s' translated to '%s' using %s.\n", in_file, out_file, (law == G711_ALAW) ? "A-law" : "u-law");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: g722_tests.c,v 1.29 2009/01/12 17:20:59 steveu Exp $
|
||||
* $Id: g722_tests.c,v 1.30 2009/04/22 12:57:40 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -87,6 +87,7 @@ and the resulting audio stored in post_g722.wav.
|
|||
|
||||
#define EIGHTK_IN_FILE_NAME "../test-data/local/short_nb_voice.wav"
|
||||
#define IN_FILE_NAME "../test-data/local/short_wb_voice.wav"
|
||||
#define ENCODED_FILE_NAME "g722.g722"
|
||||
#define OUT_FILE_NAME "post_g722.wav"
|
||||
|
||||
#if 0
|
||||
|
@ -217,91 +218,91 @@ static int get_test_vector(const char *file, uint16_t buf[], int max_len)
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
static void itu_compliance_tests(void)
|
||||
{
|
||||
g722_encode_state_t enc_state;
|
||||
g722_decode_state_t dec_state;
|
||||
int len;
|
||||
int len_comp;
|
||||
int len_comp_upper;
|
||||
int len_data;
|
||||
int len2;
|
||||
int len3;
|
||||
int i;
|
||||
int j;
|
||||
int k;
|
||||
int file;
|
||||
AFfilehandle inhandle;
|
||||
AFfilehandle outhandle;
|
||||
AFfilesetup filesetup;
|
||||
int outframes;
|
||||
int samples;
|
||||
int len_comp;
|
||||
int len_comp_upper;
|
||||
int len_data;
|
||||
int len;
|
||||
int len2;
|
||||
int mode;
|
||||
int opt;
|
||||
int itutests;
|
||||
int bit_rate;
|
||||
int eight_k_in;
|
||||
int eight_k_out;
|
||||
float x;
|
||||
int16_t indata[BLOCK_LEN];
|
||||
int16_t outdata[BLOCK_LEN];
|
||||
uint8_t adpcmdata[BLOCK_LEN];
|
||||
int file;
|
||||
|
||||
bit_rate = 64000;
|
||||
eight_k_in = FALSE;
|
||||
eight_k_out = FALSE;
|
||||
itutests = TRUE;
|
||||
while ((opt = getopt(argc, argv, "b:i:o:")) != -1)
|
||||
#if 1
|
||||
/* ITU G.722 encode tests, using configuration 1. The QMF is bypassed */
|
||||
for (file = 0; encode_test_files[file]; file += 2)
|
||||
{
|
||||
switch (opt)
|
||||
printf("Testing %s -> %s\n", encode_test_files[file], encode_test_files[file + 1]);
|
||||
|
||||
/* Get the input data */
|
||||
len_data = get_test_vector(encode_test_files[file], (uint16_t *) itu_data, MAX_TEST_VECTOR_LEN);
|
||||
|
||||
/* Get the reference output data */
|
||||
len_comp = get_test_vector(encode_test_files[file + 1], itu_ref, MAX_TEST_VECTOR_LEN);
|
||||
|
||||
/* Process the input data */
|
||||
/* Skip the reset stuff at each end of the data */
|
||||
for (i = 0; i < len_data; i++)
|
||||
{
|
||||
case 'b':
|
||||
bit_rate = atoi(optarg);
|
||||
if (bit_rate != 48000 && bit_rate != 56000 && bit_rate != 64000)
|
||||
if ((itu_data[i] & 1) == 0)
|
||||
break;
|
||||
}
|
||||
for (j = i; j < len_data; j++)
|
||||
{
|
||||
if ((itu_data[j] & 1))
|
||||
break;
|
||||
}
|
||||
len = j - i;
|
||||
g722_encode_init(&enc_state, 64000, 0);
|
||||
enc_state.itu_test_mode = TRUE;
|
||||
len2 = g722_encode(&enc_state, compressed, itu_data + i, len);
|
||||
|
||||
/* Check the result against the ITU's reference output data */
|
||||
j = 0;
|
||||
for (k = 0; k < len2; k++)
|
||||
{
|
||||
if ((compressed[k] & 0xFF) != ((itu_ref[k + i] >> 8) & 0xFF))
|
||||
{
|
||||
fprintf(stderr, "Invalid bit rate selected. Only 48000, 56000 and 64000 are valid.\n");
|
||||
exit(2);
|
||||
printf(">>> %6d %4x %4x\n", k, compressed[k] & 0xFF, itu_ref[k + i] & 0xFFFF);
|
||||
j++;
|
||||
}
|
||||
itutests = FALSE;
|
||||
break;
|
||||
case 'i':
|
||||
i = atoi(optarg);
|
||||
if (i != 8000 && i != 16000)
|
||||
{
|
||||
fprintf(stderr, "Invalid incoming sample rate. Only 8000 and 16000 are valid.\n");
|
||||
exit(2);
|
||||
}
|
||||
eight_k_in = (i == 8000);
|
||||
break;
|
||||
case 'o':
|
||||
i = atoi(optarg);
|
||||
if (i != 8000 && i != 16000)
|
||||
{
|
||||
fprintf(stderr, "Invalid incoming sample rate. Only 8000 and 16000 are valid.\n");
|
||||
exit(2);
|
||||
}
|
||||
eight_k_out = (i == 8000);
|
||||
break;
|
||||
default:
|
||||
//usage();
|
||||
}
|
||||
printf("%d bad samples, out of %d/%d samples\n", j, len, len_data);
|
||||
if (j)
|
||||
{
|
||||
printf("Test failed\n");
|
||||
exit(2);
|
||||
}
|
||||
printf("Test passed\n");
|
||||
}
|
||||
|
||||
if (itutests)
|
||||
{
|
||||
#endif
|
||||
#if 1
|
||||
/* ITU G.722 encode tests, using configuration 1. The QMF is bypassed */
|
||||
for (file = 0; encode_test_files[file]; file += 2)
|
||||
/* ITU G.722 decode tests, using configuration 2. The QMF is bypassed */
|
||||
/* Run each of the tests for each of the modes - 48kbps, 56kbps and 64kbps. */
|
||||
for (mode = 1; mode <= 3; mode++)
|
||||
{
|
||||
for (file = 0; decode_test_files[file]; file += 5)
|
||||
{
|
||||
printf("Testing %s -> %s\n", encode_test_files[file], encode_test_files[file + 1]);
|
||||
|
||||
printf("Testing mode %d, %s -> %s + %s\n",
|
||||
mode,
|
||||
decode_test_files[file],
|
||||
decode_test_files[file + mode],
|
||||
decode_test_files[file + 4]);
|
||||
|
||||
/* Get the input data */
|
||||
len_data = get_test_vector(encode_test_files[file], (uint16_t *) itu_data, MAX_TEST_VECTOR_LEN);
|
||||
|
||||
/* Get the reference output data */
|
||||
len_comp = get_test_vector(encode_test_files[file + 1], itu_ref, MAX_TEST_VECTOR_LEN);
|
||||
|
||||
len_data = get_test_vector(decode_test_files[file], (uint16_t *) itu_data, MAX_TEST_VECTOR_LEN);
|
||||
|
||||
/* Get the lower reference output data */
|
||||
len_comp = get_test_vector(decode_test_files[file + mode], itu_ref, MAX_TEST_VECTOR_LEN);
|
||||
|
||||
/* Get the upper reference output data */
|
||||
len_comp_upper = get_test_vector(decode_test_files[file + 4], itu_ref_upper, MAX_TEST_VECTOR_LEN);
|
||||
|
||||
/* Process the input data */
|
||||
/* Skip the reset stuff at each end of the data */
|
||||
for (i = 0; i < len_data; i++)
|
||||
|
@ -315,17 +316,22 @@ int main(int argc, char *argv[])
|
|||
break;
|
||||
}
|
||||
len = j - i;
|
||||
g722_encode_init(&enc_state, 64000, 0);
|
||||
enc_state.itu_test_mode = TRUE;
|
||||
len2 = g722_encode(&enc_state, compressed, itu_data + i, len);
|
||||
for (k = 0; k < len; k++)
|
||||
compressed[k] = itu_data[k + i] >> ((mode == 3) ? 10 : (mode == 2) ? 9 : 8);
|
||||
|
||||
g722_decode_init(&dec_state, (mode == 3) ? 48000 : (mode == 2) ? 56000 : 64000, 0);
|
||||
dec_state.itu_test_mode = TRUE;
|
||||
len2 = g722_decode(&dec_state, decompressed, compressed, len);
|
||||
|
||||
/* Check the result against the ITU's reference output data */
|
||||
j = 0;
|
||||
for (k = 0; k < len2; k++)
|
||||
for (k = 0; k < len2; k += 2)
|
||||
{
|
||||
if ((compressed[k] & 0xFF) != ((itu_ref[k + i] >> 8) & 0xFF))
|
||||
if ((decompressed[k] & 0xFFFF) != (itu_ref[(k >> 1) + i] & 0xFFFF)
|
||||
||
|
||||
(decompressed[k + 1] & 0xFFFF) != (itu_ref_upper[(k >> 1) + i] & 0xFFFF))
|
||||
{
|
||||
printf(">>> %6d %4x %4x\n", k, compressed[k] & 0xFF, itu_ref[k + i] & 0xFFFF);
|
||||
printf(">>> %6d %4x %4x %4x %4x\n", k >> 1, decompressed[k] & 0xFFFF, decompressed[k + 1] & 0xFFFF, itu_ref[(k >> 1) + i] & 0xFFFF, itu_ref_upper[(k >> 1) + i] & 0xFFFF);
|
||||
j++;
|
||||
}
|
||||
}
|
||||
|
@ -337,180 +343,305 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
printf("Test passed\n");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#if 1
|
||||
/* ITU G.722 decode tests, using configuration 2. The QMF is bypassed */
|
||||
/* Run each of the tests for each of the modes - 48kbps, 56kbps and 64kbps. */
|
||||
for (mode = 1; mode <= 3; mode++)
|
||||
{
|
||||
for (file = 0; decode_test_files[file]; file += 5)
|
||||
{
|
||||
printf("Testing mode %d, %s -> %s + %s\n",
|
||||
mode,
|
||||
decode_test_files[file],
|
||||
decode_test_files[file + mode],
|
||||
decode_test_files[file + 4]);
|
||||
printf("Tests passed.\n");
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
/* Get the input data */
|
||||
len_data = get_test_vector(decode_test_files[file], (uint16_t *) itu_data, MAX_TEST_VECTOR_LEN);
|
||||
|
||||
/* Get the lower reference output data */
|
||||
len_comp = get_test_vector(decode_test_files[file + mode], itu_ref, MAX_TEST_VECTOR_LEN);
|
||||
|
||||
/* Get the upper reference output data */
|
||||
len_comp_upper = get_test_vector(decode_test_files[file + 4], itu_ref_upper, MAX_TEST_VECTOR_LEN);
|
||||
|
||||
/* Process the input data */
|
||||
/* Skip the reset stuff at each end of the data */
|
||||
for (i = 0; i < len_data; i++)
|
||||
{
|
||||
if ((itu_data[i] & 1) == 0)
|
||||
break;
|
||||
}
|
||||
for (j = i; j < len_data; j++)
|
||||
{
|
||||
if ((itu_data[j] & 1))
|
||||
break;
|
||||
}
|
||||
len = j - i;
|
||||
for (k = 0; k < len; k++)
|
||||
compressed[k] = itu_data[k + i] >> ((mode == 3) ? 10 : (mode == 2) ? 9 : 8);
|
||||
|
||||
g722_decode_init(&dec_state, (mode == 3) ? 48000 : (mode == 2) ? 56000 : 64000, 0);
|
||||
dec_state.itu_test_mode = TRUE;
|
||||
len2 = g722_decode(&dec_state, decompressed, compressed, len);
|
||||
|
||||
/* Check the result against the ITU's reference output data */
|
||||
j = 0;
|
||||
for (k = 0; k < len2; k += 2)
|
||||
{
|
||||
if ((decompressed[k] & 0xFFFF) != (itu_ref[(k >> 1) + i] & 0xFFFF)
|
||||
||
|
||||
(decompressed[k + 1] & 0xFFFF) != (itu_ref_upper[(k >> 1) + i] & 0xFFFF))
|
||||
{
|
||||
printf(">>> %6d %4x %4x %4x %4x\n", k >> 1, decompressed[k] & 0xFFFF, decompressed[k + 1] & 0xFFFF, itu_ref[(k >> 1) + i] & 0xFFFF, itu_ref_upper[(k >> 1) + i] & 0xFFFF);
|
||||
j++;
|
||||
}
|
||||
}
|
||||
printf("%d bad samples, out of %d/%d samples\n", j, len, len_data);
|
||||
if (j)
|
||||
{
|
||||
printf("Test failed\n");
|
||||
exit(2);
|
||||
}
|
||||
printf("Test passed\n");
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
g722_encode_state_t enc_state;
|
||||
g722_decode_state_t dec_state;
|
||||
int len2;
|
||||
int len3;
|
||||
int i;
|
||||
int file;
|
||||
AFfilehandle inhandle;
|
||||
AFfilehandle outhandle;
|
||||
AFfilesetup filesetup;
|
||||
int outframes;
|
||||
int samples;
|
||||
int opt;
|
||||
int itutests;
|
||||
int bit_rate;
|
||||
int eight_k_in;
|
||||
int eight_k_out;
|
||||
int encode;
|
||||
int decode;
|
||||
int tone_test;
|
||||
float x;
|
||||
const char *in_file;
|
||||
const char *out_file;
|
||||
int16_t indata[BLOCK_LEN];
|
||||
int16_t outdata[BLOCK_LEN];
|
||||
uint8_t adpcmdata[BLOCK_LEN];
|
||||
float tone_level;
|
||||
uint32_t tone_phase;
|
||||
int32_t tone_phase_rate;
|
||||
|
||||
bit_rate = 64000;
|
||||
eight_k_in = FALSE;
|
||||
eight_k_out = FALSE;
|
||||
itutests = TRUE;
|
||||
encode = FALSE;
|
||||
decode = FALSE;
|
||||
tone_test = FALSE;
|
||||
in_file = NULL;
|
||||
out_file = NULL;
|
||||
while ((opt = getopt(argc, argv, "b:d:e:i:l:o:t")) != -1)
|
||||
{
|
||||
switch (opt)
|
||||
{
|
||||
case 'b':
|
||||
bit_rate = atoi(optarg);
|
||||
if (bit_rate != 48000 && bit_rate != 56000 && bit_rate != 64000)
|
||||
{
|
||||
fprintf(stderr, "Invalid bit rate selected. Only 48000, 56000 and 64000 are valid.\n");
|
||||
exit(2);
|
||||
}
|
||||
itutests = FALSE;
|
||||
break;
|
||||
case 'd':
|
||||
in_file = optarg;
|
||||
decode = TRUE;
|
||||
itutests = FALSE;
|
||||
break;
|
||||
case 'e':
|
||||
in_file = optarg;
|
||||
encode = TRUE;
|
||||
itutests = FALSE;
|
||||
break;
|
||||
case 'i':
|
||||
i = atoi(optarg);
|
||||
if (i != 8000 && i != 16000)
|
||||
{
|
||||
fprintf(stderr, "Invalid incoming sample rate. Only 8000 and 16000 are valid.\n");
|
||||
exit(2);
|
||||
}
|
||||
eight_k_in = (i == 8000);
|
||||
if (eight_k_in)
|
||||
in_file = EIGHTK_IN_FILE_NAME;
|
||||
break;
|
||||
case 'l':
|
||||
out_file = optarg;
|
||||
break;
|
||||
case 'o':
|
||||
i = atoi(optarg);
|
||||
if (i != 8000 && i != 16000)
|
||||
{
|
||||
fprintf(stderr, "Invalid outgoing sample rate. Only 8000 and 16000 are valid.\n");
|
||||
exit(2);
|
||||
}
|
||||
eight_k_out = (i == 8000);
|
||||
break;
|
||||
case 't':
|
||||
tone_test = TRUE;
|
||||
itutests = FALSE;
|
||||
break;
|
||||
default:
|
||||
//usage();
|
||||
exit(2);
|
||||
}
|
||||
#endif
|
||||
printf("Tests passed.\n");
|
||||
}
|
||||
|
||||
if (itutests)
|
||||
{
|
||||
itu_compliance_tests();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (eight_k_in)
|
||||
tone_level = dds_scaling_dbm0f(2.5f);
|
||||
tone_phase = 0;
|
||||
tone_phase_rate = dds_phase_ratef(1500.0f/2.0f);
|
||||
if (!decode && !encode)
|
||||
{
|
||||
if ((inhandle = afOpenFile(EIGHTK_IN_FILE_NAME, "r", NULL)) == AF_NULL_FILEHANDLE)
|
||||
decode =
|
||||
encode = TRUE;
|
||||
}
|
||||
if (in_file == NULL)
|
||||
{
|
||||
if (encode)
|
||||
{
|
||||
fprintf(stderr, " Cannot open wave file '%s'\n", EIGHTK_IN_FILE_NAME);
|
||||
exit(2);
|
||||
if (eight_k_in)
|
||||
in_file = EIGHTK_IN_FILE_NAME;
|
||||
else
|
||||
in_file = IN_FILE_NAME;
|
||||
}
|
||||
if ((x = afGetFrameSize(inhandle, AF_DEFAULT_TRACK, 1)) != 2.0)
|
||||
else
|
||||
{
|
||||
fprintf(stderr, " Unexpected frame size in wave file '%s'\n", EIGHTK_IN_FILE_NAME);
|
||||
exit(2);
|
||||
in_file = ENCODED_FILE_NAME;
|
||||
}
|
||||
if ((x = afGetRate(inhandle, AF_DEFAULT_TRACK)) != (float) SAMPLE_RATE)
|
||||
}
|
||||
if (out_file == NULL)
|
||||
{
|
||||
out_file = (decode) ? OUT_FILE_NAME : ENCODED_FILE_NAME;
|
||||
}
|
||||
inhandle = AF_NULL_FILEHANDLE;
|
||||
outhandle = AF_NULL_FILEHANDLE;
|
||||
file = -1;
|
||||
if (encode)
|
||||
{
|
||||
if (eight_k_in)
|
||||
{
|
||||
fprintf(stderr, " Unexpected sample rate %f in wave file '%s'\n", x, EIGHTK_IN_FILE_NAME);
|
||||
exit(2);
|
||||
if ((inhandle = afOpenFile(in_file, "r", NULL)) == AF_NULL_FILEHANDLE)
|
||||
{
|
||||
fprintf(stderr, " Cannot open wave file '%s'\n", in_file);
|
||||
exit(2);
|
||||
}
|
||||
if ((x = afGetFrameSize(inhandle, AF_DEFAULT_TRACK, 1)) != 2.0)
|
||||
{
|
||||
fprintf(stderr, " Unexpected frame size in wave file '%s'\n", in_file);
|
||||
exit(2);
|
||||
}
|
||||
if ((x = afGetRate(inhandle, AF_DEFAULT_TRACK)) != (float) SAMPLE_RATE)
|
||||
{
|
||||
fprintf(stderr, " Unexpected sample rate %f in wave file '%s'\n", x, in_file);
|
||||
exit(2);
|
||||
}
|
||||
if ((x = afGetChannels(inhandle, AF_DEFAULT_TRACK)) != 1.0)
|
||||
{
|
||||
fprintf(stderr, " Unexpected number of channels in wave file '%s'\n", in_file);
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
if ((x = afGetChannels(inhandle, AF_DEFAULT_TRACK)) != 1.0)
|
||||
else
|
||||
{
|
||||
fprintf(stderr, " Unexpected number of channels in wave file '%s'\n", EIGHTK_IN_FILE_NAME);
|
||||
exit(2);
|
||||
if ((inhandle = afOpenFile(in_file, "r", NULL)) == AF_NULL_FILEHANDLE)
|
||||
{
|
||||
fprintf(stderr, " Cannot open wave file '%s'\n", in_file);
|
||||
exit(2);
|
||||
}
|
||||
if ((x = afGetFrameSize(inhandle, AF_DEFAULT_TRACK, 1)) != 2.0)
|
||||
{
|
||||
fprintf(stderr, " Unexpected frame size in wave file '%s'\n", in_file);
|
||||
exit(2);
|
||||
}
|
||||
if ((x = afGetRate(inhandle, AF_DEFAULT_TRACK)) != (float) G722_SAMPLE_RATE)
|
||||
{
|
||||
fprintf(stderr, " Unexpected sample rate %f in wave file '%s'\n", x, in_file);
|
||||
exit(2);
|
||||
}
|
||||
if ((x = afGetChannels(inhandle, AF_DEFAULT_TRACK)) != 1.0)
|
||||
{
|
||||
fprintf(stderr, " Unexpected number of channels in wave file '%s'\n", in_file);
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
if (eight_k_in)
|
||||
g722_encode_init(&enc_state, bit_rate, G722_PACKED | G722_SAMPLE_RATE_8000);
|
||||
else
|
||||
g722_encode_init(&enc_state, bit_rate, G722_PACKED);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((inhandle = afOpenFile(IN_FILE_NAME, "r", NULL)) == AF_NULL_FILEHANDLE)
|
||||
if ((file = open(in_file, O_RDONLY)) < 0)
|
||||
{
|
||||
fprintf(stderr, " Cannot open wave file '%s'\n", IN_FILE_NAME);
|
||||
exit(2);
|
||||
}
|
||||
if ((x = afGetFrameSize(inhandle, AF_DEFAULT_TRACK, 1)) != 2.0)
|
||||
{
|
||||
fprintf(stderr, " Unexpected frame size in wave file '%s'\n", IN_FILE_NAME);
|
||||
exit(2);
|
||||
}
|
||||
if ((x = afGetRate(inhandle, AF_DEFAULT_TRACK)) != (float) G722_SAMPLE_RATE)
|
||||
{
|
||||
fprintf(stderr, " Unexpected sample rate %f in wave file '%s'\n", x, IN_FILE_NAME);
|
||||
exit(2);
|
||||
}
|
||||
if ((x = afGetChannels(inhandle, AF_DEFAULT_TRACK)) != 1.0)
|
||||
{
|
||||
fprintf(stderr, " Unexpected number of channels in wave file '%s'\n", IN_FILE_NAME);
|
||||
fprintf(stderr, " Failed to open '%s'\n", in_file);
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
|
||||
if ((filesetup = afNewFileSetup()) == AF_NULL_FILESETUP)
|
||||
if (decode)
|
||||
{
|
||||
fprintf(stderr, " Failed to create file setup\n");
|
||||
exit(2);
|
||||
if ((filesetup = afNewFileSetup()) == AF_NULL_FILESETUP)
|
||||
{
|
||||
fprintf(stderr, " Failed to create file setup\n");
|
||||
exit(2);
|
||||
}
|
||||
afInitSampleFormat(filesetup, AF_DEFAULT_TRACK, AF_SAMPFMT_TWOSCOMP, 16);
|
||||
if (eight_k_out)
|
||||
afInitRate(filesetup, AF_DEFAULT_TRACK, (float) SAMPLE_RATE);
|
||||
else
|
||||
afInitRate(filesetup, AF_DEFAULT_TRACK, (float) G722_SAMPLE_RATE);
|
||||
afInitFileFormat(filesetup, AF_FILE_WAVE);
|
||||
afInitChannels(filesetup, AF_DEFAULT_TRACK, 1);
|
||||
if ((outhandle = afOpenFile(out_file, "w", filesetup)) == AF_NULL_FILEHANDLE)
|
||||
{
|
||||
fprintf(stderr, " Cannot create wave file '%s'\n", out_file);
|
||||
exit(2);
|
||||
}
|
||||
afFreeFileSetup(filesetup);
|
||||
if (eight_k_out)
|
||||
g722_decode_init(&dec_state, bit_rate, G722_PACKED | G722_SAMPLE_RATE_8000);
|
||||
else
|
||||
g722_decode_init(&dec_state, bit_rate, G722_PACKED);
|
||||
}
|
||||
afInitSampleFormat(filesetup, AF_DEFAULT_TRACK, AF_SAMPFMT_TWOSCOMP, 16);
|
||||
if (eight_k_out)
|
||||
afInitRate(filesetup, AF_DEFAULT_TRACK, (float) SAMPLE_RATE);
|
||||
else
|
||||
afInitRate(filesetup, AF_DEFAULT_TRACK, (float) G722_SAMPLE_RATE);
|
||||
afInitFileFormat(filesetup, AF_FILE_WAVE);
|
||||
afInitChannels(filesetup, AF_DEFAULT_TRACK, 1);
|
||||
if ((outhandle = afOpenFile(OUT_FILE_NAME, "w", filesetup)) == AF_NULL_FILEHANDLE)
|
||||
{
|
||||
fprintf(stderr, " Cannot create wave file '%s'\n", OUT_FILE_NAME);
|
||||
exit(2);
|
||||
if ((file = open(out_file, O_WRONLY | O_CREAT | O_TRUNC, 0666)) < 0)
|
||||
{
|
||||
fprintf(stderr, " Failed to open '%s'\n", out_file);
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
if (eight_k_in)
|
||||
g722_encode_init(&enc_state, bit_rate, G722_PACKED | G722_SAMPLE_RATE_8000);
|
||||
else
|
||||
g722_encode_init(&enc_state, bit_rate, G722_PACKED);
|
||||
if (eight_k_out)
|
||||
g722_decode_init(&dec_state, bit_rate, G722_PACKED | G722_SAMPLE_RATE_8000);
|
||||
else
|
||||
g722_decode_init(&dec_state, bit_rate, G722_PACKED);
|
||||
for (;;)
|
||||
{
|
||||
samples = afReadFrames(inhandle,
|
||||
AF_DEFAULT_TRACK,
|
||||
indata,
|
||||
BLOCK_LEN);
|
||||
if (samples <= 0)
|
||||
break;
|
||||
len2 = g722_encode(&enc_state, adpcmdata, indata, samples);
|
||||
len3 = g722_decode(&dec_state, outdata, adpcmdata, len2);
|
||||
outframes = afWriteFrames(outhandle,
|
||||
AF_DEFAULT_TRACK,
|
||||
outdata,
|
||||
len3);
|
||||
if (outframes != len3)
|
||||
if (encode)
|
||||
{
|
||||
fprintf(stderr, " Error writing wave file\n");
|
||||
samples = afReadFrames(inhandle,
|
||||
AF_DEFAULT_TRACK,
|
||||
indata,
|
||||
BLOCK_LEN);
|
||||
if (samples <= 0)
|
||||
break;
|
||||
if (tone_test)
|
||||
{
|
||||
for (i = 0; i < samples; i++)
|
||||
indata[i] = dds_modf(&tone_phase, tone_phase_rate, tone_level, 0);
|
||||
}
|
||||
len2 = g722_encode(&enc_state, adpcmdata, indata, samples);
|
||||
}
|
||||
else
|
||||
{
|
||||
len2 = read(file, adpcmdata, BLOCK_LEN);
|
||||
if (len2 <= 0)
|
||||
break;
|
||||
}
|
||||
if (decode)
|
||||
{
|
||||
len3 = g722_decode(&dec_state, outdata, adpcmdata, len2);
|
||||
outframes = afWriteFrames(outhandle,
|
||||
AF_DEFAULT_TRACK,
|
||||
outdata,
|
||||
len3);
|
||||
if (outframes != len3)
|
||||
{
|
||||
fprintf(stderr, " Error writing wave file\n");
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
len3 = write(file, adpcmdata, len2);
|
||||
if (len3 <= 0)
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (encode)
|
||||
{
|
||||
if (afCloseFile(inhandle))
|
||||
{
|
||||
fprintf(stderr, " Cannot close wave file '%s'\n", IN_FILE_NAME);
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
if (afCloseFile(inhandle))
|
||||
else
|
||||
{
|
||||
fprintf(stderr, " Cannot close wave file '%s'\n", IN_FILE_NAME);
|
||||
exit(2);
|
||||
close(file);
|
||||
}
|
||||
if (afCloseFile(outhandle))
|
||||
if (decode)
|
||||
{
|
||||
fprintf(stderr, " Cannot close wave file '%s'\n", OUT_FILE_NAME);
|
||||
exit(2);
|
||||
if (afCloseFile(outhandle))
|
||||
{
|
||||
fprintf(stderr, " Cannot close wave file '%s'\n", OUT_FILE_NAME);
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
afFreeFileSetup(filesetup);
|
||||
|
||||
printf("'%s' transcoded to '%s' at %dbps.\n", IN_FILE_NAME, OUT_FILE_NAME, bit_rate);
|
||||
else
|
||||
{
|
||||
close(file);
|
||||
}
|
||||
printf("'%s' translated to '%s' at %dbps.\n", in_file, out_file, bit_rate);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: g726_tests.c,v 1.31 2009/01/12 17:20:59 steveu Exp $
|
||||
* $Id: g726_tests.c,v 1.32 2009/04/22 12:57:40 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -1077,7 +1077,7 @@ static int get_test_vector(const char *file, uint8_t buf[], int max_len)
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
static void itu_compliance_tests(void)
|
||||
{
|
||||
g726_state_t enc_state;
|
||||
g726_state_t dec_state;
|
||||
|
@ -1085,27 +1085,157 @@ int main(int argc, char *argv[])
|
|||
int len3;
|
||||
int i;
|
||||
int test;
|
||||
int opt;
|
||||
int bits_per_code;
|
||||
int bad_samples;
|
||||
int conditioning_samples;
|
||||
int samples;
|
||||
int conditioning_adpcm;
|
||||
int adpcm;
|
||||
|
||||
len2 = 0;
|
||||
conditioning_samples = 0;
|
||||
for (test = 0; itu_test_sets[test].rate; test++)
|
||||
{
|
||||
printf("Test %2d: '%s' + '%s'\n"
|
||||
" -> '%s' + '%s'\n"
|
||||
" -> '%s' [%d, %d, %d]\n",
|
||||
test,
|
||||
itu_test_sets[test].conditioning_pcm_file,
|
||||
itu_test_sets[test].pcm_file,
|
||||
itu_test_sets[test].conditioning_adpcm_file,
|
||||
itu_test_sets[test].adpcm_file,
|
||||
itu_test_sets[test].output_file,
|
||||
itu_test_sets[test].rate,
|
||||
itu_test_sets[test].compression_law,
|
||||
itu_test_sets[test].decompression_law);
|
||||
switch (itu_test_sets[test].rate)
|
||||
{
|
||||
case 16000:
|
||||
bits_per_code = 2;
|
||||
break;
|
||||
case 24000:
|
||||
bits_per_code = 3;
|
||||
break;
|
||||
case 32000:
|
||||
default:
|
||||
bits_per_code = 4;
|
||||
break;
|
||||
case 40000:
|
||||
bits_per_code = 5;
|
||||
break;
|
||||
}
|
||||
if (itu_test_sets[test].compression_law != G726_ENCODING_NONE)
|
||||
{
|
||||
/* Test the encode side */
|
||||
g726_init(&enc_state, itu_test_sets[test].rate, itu_test_sets[test].compression_law, G726_PACKING_NONE);
|
||||
if (itu_test_sets[test].conditioning_pcm_file[0])
|
||||
{
|
||||
conditioning_samples = get_test_vector(itu_test_sets[test].conditioning_pcm_file, xlaw, MAX_TEST_VECTOR_LEN);
|
||||
printf("Test %d: Homing %d samples at %dbps\n", test, conditioning_samples, itu_test_sets[test].rate);
|
||||
}
|
||||
else
|
||||
{
|
||||
conditioning_samples = 0;
|
||||
}
|
||||
samples = get_test_vector(itu_test_sets[test].pcm_file, xlaw + conditioning_samples, MAX_TEST_VECTOR_LEN);
|
||||
memcpy(itudata, xlaw, samples + conditioning_samples);
|
||||
printf("Test %d: Compressing %d samples at %dbps\n", test, samples, itu_test_sets[test].rate);
|
||||
len2 = g726_encode(&enc_state, adpcmdata, itudata, conditioning_samples + samples);
|
||||
}
|
||||
/* Test the decode side */
|
||||
g726_init(&dec_state, itu_test_sets[test].rate, itu_test_sets[test].decompression_law, G726_PACKING_NONE);
|
||||
if (itu_test_sets[test].conditioning_adpcm_file[0])
|
||||
{
|
||||
conditioning_adpcm = get_test_vector(itu_test_sets[test].conditioning_adpcm_file, unpacked, MAX_TEST_VECTOR_LEN);
|
||||
printf("Test %d: Homing %d octets at %dbps\n", test, conditioning_adpcm, itu_test_sets[test].rate);
|
||||
}
|
||||
else
|
||||
{
|
||||
conditioning_adpcm = 0;
|
||||
}
|
||||
adpcm = get_test_vector(itu_test_sets[test].adpcm_file, unpacked + conditioning_adpcm, MAX_TEST_VECTOR_LEN);
|
||||
if (itu_test_sets[test].compression_law != G726_ENCODING_NONE)
|
||||
{
|
||||
/* Test our compressed version against the reference compressed version */
|
||||
printf("Test %d: Compressed data check - %d/%d octets\n", test, conditioning_adpcm + adpcm, len2);
|
||||
if (conditioning_adpcm + adpcm == len2)
|
||||
{
|
||||
for (bad_samples = 0, i = conditioning_samples; i < len2; i++)
|
||||
{
|
||||
if (adpcmdata[i] != unpacked[i])
|
||||
{
|
||||
bad_samples++;
|
||||
printf("Test %d: Compressed mismatch %d %x %x\n", test, i, adpcmdata[i], unpacked[i]);
|
||||
}
|
||||
}
|
||||
if (bad_samples > 0)
|
||||
{
|
||||
printf("Test failed\n");
|
||||
exit(2);
|
||||
}
|
||||
printf("Test passed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Test %d: Length mismatch - ref = %d, processed = %d\n", test, conditioning_adpcm + adpcm, len2);
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
|
||||
len3 = g726_decode(&dec_state, outdata, unpacked, conditioning_adpcm + adpcm);
|
||||
|
||||
/* Get the output reference data */
|
||||
samples = get_test_vector(itu_test_sets[test].output_file, xlaw, MAX_TEST_VECTOR_LEN);
|
||||
memcpy(itu_ref, xlaw, samples);
|
||||
/* Test our decompressed version against the reference decompressed version */
|
||||
printf("Test %d: Decompressed data check - %d/%d samples\n", test, samples, len3 - conditioning_adpcm);
|
||||
if (samples == len3 - conditioning_adpcm)
|
||||
{
|
||||
for (bad_samples = 0, i = 0; i < len3; i++)
|
||||
{
|
||||
if (itu_ref[i] != ((uint8_t *) outdata)[i + conditioning_adpcm])
|
||||
{
|
||||
bad_samples++;
|
||||
printf("Test %d: Decompressed mismatch %d %x %x\n", test, i, itu_ref[i], ((uint8_t *) outdata)[i + conditioning_adpcm]);
|
||||
}
|
||||
}
|
||||
if (bad_samples > 0)
|
||||
{
|
||||
printf("Test failed\n");
|
||||
exit(2);
|
||||
}
|
||||
printf("Test passed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Test %d: Length mismatch - ref = %d, processed = %d\n", test, samples, len3 - conditioning_adpcm);
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
|
||||
printf("Tests passed.\n");
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
g726_state_t enc_state;
|
||||
g726_state_t dec_state;
|
||||
int opt;
|
||||
int itutests;
|
||||
int bit_rate;
|
||||
int bad_samples;
|
||||
AFfilehandle inhandle;
|
||||
AFfilehandle outhandle;
|
||||
int16_t amp[1024];
|
||||
int frames;
|
||||
int outframes;
|
||||
int conditioning_samples;
|
||||
int samples;
|
||||
int conditioning_adpcm;
|
||||
int adpcm;
|
||||
int packing;
|
||||
|
||||
i = 1;
|
||||
bit_rate = 32000;
|
||||
itutests = TRUE;
|
||||
packing = G726_PACKING_NONE;
|
||||
while ((opt = getopt(argc, argv, "b:lr")) != -1)
|
||||
while ((opt = getopt(argc, argv, "b:LR")) != -1)
|
||||
{
|
||||
switch (opt)
|
||||
{
|
||||
|
@ -1118,10 +1248,10 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
itutests = FALSE;
|
||||
break;
|
||||
case 'l':
|
||||
case 'L':
|
||||
packing = G726_PACKING_LEFT;
|
||||
break;
|
||||
case 'r':
|
||||
case 'R':
|
||||
packing = G726_PACKING_RIGHT;
|
||||
break;
|
||||
default:
|
||||
|
@ -1130,130 +1260,9 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
}
|
||||
|
||||
len2 = 0;
|
||||
conditioning_samples = 0;
|
||||
if (itutests)
|
||||
{
|
||||
for (test = 0; itu_test_sets[test].rate; test++)
|
||||
{
|
||||
printf("Test %2d: '%s' + '%s'\n"
|
||||
" -> '%s' + '%s'\n"
|
||||
" -> '%s' [%d, %d, %d]\n",
|
||||
test,
|
||||
itu_test_sets[test].conditioning_pcm_file,
|
||||
itu_test_sets[test].pcm_file,
|
||||
itu_test_sets[test].conditioning_adpcm_file,
|
||||
itu_test_sets[test].adpcm_file,
|
||||
itu_test_sets[test].output_file,
|
||||
itu_test_sets[test].rate,
|
||||
itu_test_sets[test].compression_law,
|
||||
itu_test_sets[test].decompression_law);
|
||||
switch (itu_test_sets[test].rate)
|
||||
{
|
||||
case 16000:
|
||||
bits_per_code = 2;
|
||||
break;
|
||||
case 24000:
|
||||
bits_per_code = 3;
|
||||
break;
|
||||
case 32000:
|
||||
default:
|
||||
bits_per_code = 4;
|
||||
break;
|
||||
case 40000:
|
||||
bits_per_code = 5;
|
||||
break;
|
||||
}
|
||||
if (itu_test_sets[test].compression_law != G726_ENCODING_NONE)
|
||||
{
|
||||
/* Test the encode side */
|
||||
g726_init(&enc_state, itu_test_sets[test].rate, itu_test_sets[test].compression_law, G726_PACKING_NONE);
|
||||
if (itu_test_sets[test].conditioning_pcm_file[0])
|
||||
{
|
||||
conditioning_samples = get_test_vector(itu_test_sets[test].conditioning_pcm_file, xlaw, MAX_TEST_VECTOR_LEN);
|
||||
printf("Test %d: Homing %d samples at %dbps\n", test, conditioning_samples, itu_test_sets[test].rate);
|
||||
}
|
||||
else
|
||||
{
|
||||
conditioning_samples = 0;
|
||||
}
|
||||
samples = get_test_vector(itu_test_sets[test].pcm_file, xlaw + conditioning_samples, MAX_TEST_VECTOR_LEN);
|
||||
memcpy(itudata, xlaw, samples + conditioning_samples);
|
||||
printf("Test %d: Compressing %d samples at %dbps\n", test, samples, itu_test_sets[test].rate);
|
||||
len2 = g726_encode(&enc_state, adpcmdata, itudata, conditioning_samples + samples);
|
||||
}
|
||||
/* Test the decode side */
|
||||
g726_init(&dec_state, itu_test_sets[test].rate, itu_test_sets[test].decompression_law, G726_PACKING_NONE);
|
||||
if (itu_test_sets[test].conditioning_adpcm_file[0])
|
||||
{
|
||||
conditioning_adpcm = get_test_vector(itu_test_sets[test].conditioning_adpcm_file, unpacked, MAX_TEST_VECTOR_LEN);
|
||||
printf("Test %d: Homing %d octets at %dbps\n", test, conditioning_adpcm, itu_test_sets[test].rate);
|
||||
}
|
||||
else
|
||||
{
|
||||
conditioning_adpcm = 0;
|
||||
}
|
||||
adpcm = get_test_vector(itu_test_sets[test].adpcm_file, unpacked + conditioning_adpcm, MAX_TEST_VECTOR_LEN);
|
||||
if (itu_test_sets[test].compression_law != G726_ENCODING_NONE)
|
||||
{
|
||||
/* Test our compressed version against the reference compressed version */
|
||||
printf("Test %d: Compressed data check - %d/%d octets\n", test, conditioning_adpcm + adpcm, len2);
|
||||
if (conditioning_adpcm + adpcm == len2)
|
||||
{
|
||||
for (bad_samples = 0, i = conditioning_samples; i < len2; i++)
|
||||
{
|
||||
if (adpcmdata[i] != unpacked[i])
|
||||
{
|
||||
bad_samples++;
|
||||
printf("Test %d: Compressed mismatch %d %x %x\n", test, i, adpcmdata[i], unpacked[i]);
|
||||
}
|
||||
}
|
||||
if (bad_samples > 0)
|
||||
{
|
||||
printf("Test failed\n");
|
||||
exit(2);
|
||||
}
|
||||
printf("Test passed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Test %d: Length mismatch - ref = %d, processed = %d\n", test, conditioning_adpcm + adpcm, len2);
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
|
||||
len3 = g726_decode(&dec_state, outdata, unpacked, conditioning_adpcm + adpcm);
|
||||
|
||||
/* Get the output reference data */
|
||||
samples = get_test_vector(itu_test_sets[test].output_file, xlaw, MAX_TEST_VECTOR_LEN);
|
||||
memcpy(itu_ref, xlaw, samples);
|
||||
/* Test our decompressed version against the reference decompressed version */
|
||||
printf("Test %d: Decompressed data check - %d/%d samples\n", test, samples, len3 - conditioning_adpcm);
|
||||
if (samples == len3 - conditioning_adpcm)
|
||||
{
|
||||
for (bad_samples = 0, i = 0; i < len3; i++)
|
||||
{
|
||||
if (itu_ref[i] != ((uint8_t *) outdata)[i + conditioning_adpcm])
|
||||
{
|
||||
bad_samples++;
|
||||
printf("Test %d: Decompressed mismatch %d %x %x\n", test, i, itu_ref[i], ((uint8_t *) outdata)[i + conditioning_adpcm]);
|
||||
}
|
||||
}
|
||||
if (bad_samples > 0)
|
||||
{
|
||||
printf("Test failed\n");
|
||||
exit(2);
|
||||
}
|
||||
printf("Test passed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Test %d: Length mismatch - ref = %d, processed = %d\n", test, samples, len3 - conditioning_adpcm);
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
|
||||
printf("Tests passed.\n");
|
||||
itu_compliance_tests();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1269,8 +1278,6 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
|
||||
printf("ADPCM packing is %d\n", packing);
|
||||
//g726_init(&enc_state, bit_rate, G726_ENCODING_LINEAR, G726_PACKING_LEFT);
|
||||
//g726_init(&dec_state, bit_rate, G726_ENCODING_LINEAR, G726_PACKING_RIGHT);
|
||||
g726_init(&enc_state, bit_rate, G726_ENCODING_LINEAR, packing);
|
||||
g726_init(&dec_state, bit_rate, G726_ENCODING_LINEAR, packing);
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: gsm0610_tests.c,v 1.23 2009/01/12 17:20:59 steveu Exp $
|
||||
* $Id: gsm0610_tests.c,v 1.24 2009/04/22 12:57:40 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -516,6 +516,30 @@ static int perform_pack_unpack_test(void)
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
static void etsi_compliance_tests(void)
|
||||
{
|
||||
perform_linear_test(TRUE, 1, "Seq01");
|
||||
perform_linear_test(TRUE, 1, "Seq02");
|
||||
perform_linear_test(TRUE, 1, "Seq03");
|
||||
perform_linear_test(TRUE, 1, "Seq04");
|
||||
perform_linear_test(FALSE, 1, "Seq05");
|
||||
perform_law_test(TRUE, 'a', "Seq01");
|
||||
perform_law_test(TRUE, 'a', "Seq02");
|
||||
perform_law_test(TRUE, 'a', "Seq03");
|
||||
perform_law_test(TRUE, 'a', "Seq04");
|
||||
perform_law_test(FALSE, 'a', "Seq05");
|
||||
perform_law_test(TRUE, 'u', "Seq01");
|
||||
perform_law_test(TRUE, 'u', "Seq02");
|
||||
perform_law_test(TRUE, 'u', "Seq03");
|
||||
perform_law_test(TRUE, 'u', "Seq04");
|
||||
perform_law_test(FALSE, 'u', "Seq05");
|
||||
/* This is not actually an ETSI test */
|
||||
perform_pack_unpack_test();
|
||||
|
||||
printf("Tests passed.\n");
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
AFfilehandle inhandle;
|
||||
|
@ -552,25 +576,7 @@ int main(int argc, char *argv[])
|
|||
|
||||
if (etsitests)
|
||||
{
|
||||
perform_linear_test(TRUE, 1, "Seq01");
|
||||
perform_linear_test(TRUE, 1, "Seq02");
|
||||
perform_linear_test(TRUE, 1, "Seq03");
|
||||
perform_linear_test(TRUE, 1, "Seq04");
|
||||
perform_linear_test(FALSE, 1, "Seq05");
|
||||
perform_law_test(TRUE, 'a', "Seq01");
|
||||
perform_law_test(TRUE, 'a', "Seq02");
|
||||
perform_law_test(TRUE, 'a', "Seq03");
|
||||
perform_law_test(TRUE, 'a', "Seq04");
|
||||
perform_law_test(FALSE, 'a', "Seq05");
|
||||
perform_law_test(TRUE, 'u', "Seq01");
|
||||
perform_law_test(TRUE, 'u', "Seq02");
|
||||
perform_law_test(TRUE, 'u', "Seq03");
|
||||
perform_law_test(TRUE, 'u', "Seq04");
|
||||
perform_law_test(FALSE, 'u', "Seq05");
|
||||
/* This is not actually an ETSI test */
|
||||
perform_pack_unpack_test();
|
||||
|
||||
printf("Tests passed.\n");
|
||||
etsi_compliance_tests();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -0,0 +1,208 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="adsi_tests"
|
||||
ProjectGUID="{4B3877F1-B3E4-463C-8F39-12231480CC30}"
|
||||
RootNamespace="adsi_tests"
|
||||
Keyword="Win32Proj"
|
||||
TargetFrameworkVersion="196613"
|
||||
>
|
||||
<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=".;..\..\src\spandsp;..\..\src;..\..\src\msvc;..;..\..\..\tiff-3.8.2\libtiff"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
LinkIncremental="2"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"
|
||||
AdditionalDependencies="..\src\Debug\spandsp.lib ..\spandsp-sim\Debug\spandsp.lib"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<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"
|
||||
Optimization="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
LinkIncremental="1"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"
|
||||
AdditionalDependencies="..\src\Debug\spandsp.lib ..\spandsp-sim\Debug\spandsp.lib"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<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="..\adsi_tests.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msvc\getopt.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\targetver.h"
|
||||
>
|
||||
</File>
|
||||
</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>
|
|
@ -0,0 +1,208 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="complex_tests"
|
||||
ProjectGUID="{A349379F-0FEA-49C8-9535-05F39663337B}"
|
||||
RootNamespace="complex_tests"
|
||||
Keyword="Win32Proj"
|
||||
TargetFrameworkVersion="196613"
|
||||
>
|
||||
<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=".;..\..\src\spandsp;..\..\src;..\..\src\msvc;..;..\..\..\tiff-3.8.2\libtiff"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="2"
|
||||
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="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"
|
||||
Optimization="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="1"
|
||||
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="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="..\complex_tests.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msvc\getopt.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\targetver.h"
|
||||
>
|
||||
</File>
|
||||
</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>
|
|
@ -0,0 +1,208 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="complex_vector_float_tests"
|
||||
ProjectGUID="{2B0D705C-1CF2-401C-BFBC-A43FB806908C}"
|
||||
RootNamespace="complex_vector_float_tests"
|
||||
Keyword="Win32Proj"
|
||||
TargetFrameworkVersion="196613"
|
||||
>
|
||||
<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=".;..\..\src\spandsp;..\..\src;..\..\src\msvc;..;..\..\..\tiff-3.8.2\libtiff"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="2"
|
||||
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="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"
|
||||
Optimization="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="1"
|
||||
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="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="..\complex_vector_float_tests.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msvc\getopt.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\targetver.h"
|
||||
>
|
||||
</File>
|
||||
</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>
|
|
@ -0,0 +1,208 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="complex_vector_int_tests"
|
||||
ProjectGUID="{C2E8B4D1-A398-4D57-94F8-B61F20C7D514}"
|
||||
RootNamespace="complex_vector_int_tests"
|
||||
Keyword="Win32Proj"
|
||||
TargetFrameworkVersion="196613"
|
||||
>
|
||||
<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=".;..\..\src\spandsp;..\..\src;..\..\src\msvc;..;..\..\..\tiff-3.8.2\libtiff"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="2"
|
||||
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="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"
|
||||
Optimization="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="1"
|
||||
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="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="..\complex_vector_int_tests.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msvc\getopt.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\targetver.h"
|
||||
>
|
||||
</File>
|
||||
</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>
|
|
@ -0,0 +1,208 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="dtmf_rx_tests"
|
||||
ProjectGUID="{A34A9D0E-A7E2-4A04-B044-7BB2FE709EF3}"
|
||||
RootNamespace="dtmf_rx_tests"
|
||||
Keyword="Win32Proj"
|
||||
TargetFrameworkVersion="196613"
|
||||
>
|
||||
<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=".;..\..\src\spandsp;..\..\src;..\..\src\msvc;..;..\..\..\tiff-3.8.2\libtiff"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="2"
|
||||
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="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"
|
||||
Optimization="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="1"
|
||||
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="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="..\..\src\msvc\getopt.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\dtmf_rx_tests.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\targetver.h"
|
||||
>
|
||||
</File>
|
||||
</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>
|
|
@ -0,0 +1,208 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="dtmf_tx_tests"
|
||||
ProjectGUID="{A34A9D0E-A7E2-4A04-B044-7BB2FE709EF3}"
|
||||
RootNamespace="dtmf_tx_tests"
|
||||
Keyword="Win32Proj"
|
||||
TargetFrameworkVersion="196613"
|
||||
>
|
||||
<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=".;..\..\src\spandsp;..\..\src;..\..\src\msvc;..;..\..\..\tiff-3.8.2\libtiff"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="2"
|
||||
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="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"
|
||||
Optimization="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="1"
|
||||
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="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="..\..\src\msvc\getopt.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\dtmf_tx_tests.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\targetver.h"
|
||||
>
|
||||
</File>
|
||||
</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>
|
|
@ -0,0 +1,208 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="queue_tests"
|
||||
ProjectGUID="{80A3D9D9-3846-4DA5-8676-F940D725EA62}"
|
||||
RootNamespace="queue_tests"
|
||||
Keyword="Win32Proj"
|
||||
TargetFrameworkVersion="196613"
|
||||
>
|
||||
<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=".;..\..\src\spandsp;..\..\src;..\..\src\msvc;..;..\..\..\tiff-3.8.2\libtiff"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="2"
|
||||
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="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"
|
||||
Optimization="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="1"
|
||||
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="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="..\..\src\msvc\getopt.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\queue_tests.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\targetver.h"
|
||||
>
|
||||
</File>
|
||||
</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>
|
|
@ -0,0 +1,208 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="t38_core_tests"
|
||||
ProjectGUID="{A34A9D0E-A7E2-4A04-B044-7BB2FE709EF3}"
|
||||
RootNamespace="t38_core_tests"
|
||||
Keyword="Win32Proj"
|
||||
TargetFrameworkVersion="196613"
|
||||
>
|
||||
<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=".;..\..\src\spandsp;..\..\src;..\..\src\msvc;..;..\..\..\tiff-3.8.2\libtiff"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="2"
|
||||
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="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"
|
||||
Optimization="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="1"
|
||||
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="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="..\..\src\msvc\getopt.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\t38_core_tests.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\targetver.h"
|
||||
>
|
||||
</File>
|
||||
</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>
|
|
@ -0,0 +1,208 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="t38_non_ecm_buffer_tests"
|
||||
ProjectGUID="{80A3D9D9-3846-4DA5-8676-F940D725EA62}"
|
||||
RootNamespace="t38_non_ecm_buffer_tests"
|
||||
Keyword="Win32Proj"
|
||||
TargetFrameworkVersion="196613"
|
||||
>
|
||||
<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=".;..\..\src\spandsp;..\..\src;..\..\src\msvc;..;..\..\..\tiff-3.8.2\libtiff"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="2"
|
||||
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="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"
|
||||
Optimization="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="1"
|
||||
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="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="..\..\src\msvc\getopt.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\t38_non_ecm_buffer_tests.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\targetver.h"
|
||||
>
|
||||
</File>
|
||||
</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>
|
|
@ -0,0 +1,202 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="t38-terminal-tests"
|
||||
ProjectGUID="{B5DECF33-1D06-459A-AE70-A06404909919}"
|
||||
RootNamespace="t38terminaltests"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
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=""..\src";"..\spandsp-sim";..\..\libtiff\include;"..\src\msvc""
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\src\Debug\spandsp.lib ..\spandsp-sim\Debug\spandsp.lib"
|
||||
GenerateDebugInformation="true"
|
||||
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="2"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
RuntimeLibrary="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
GenerateDebugInformation="true"
|
||||
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="fax_utils.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\msvc\getopt.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="media_monitor.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="t38_terminal_tests.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>
|
|
@ -0,0 +1,208 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="v22bis_tests"
|
||||
ProjectGUID="{A34A9D0E-A7E2-4A04-B044-7BB2FE709EF3}"
|
||||
RootNamespace="v22bis_tests"
|
||||
Keyword="Win32Proj"
|
||||
TargetFrameworkVersion="196613"
|
||||
>
|
||||
<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=".;..\..\src\spandsp;..\..\src;..\..\src\msvc;..;..\..\..\tiff-3.8.2\libtiff"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="2"
|
||||
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="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"
|
||||
Optimization="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="1"
|
||||
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="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="..\..\src\msvc\getopt.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\v22bis_tests.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\targetver.h"
|
||||
>
|
||||
</File>
|
||||
</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>
|
|
@ -0,0 +1,208 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="v29_tests"
|
||||
ProjectGUID="{A34A9D0E-A7E2-4A04-B044-7BB2FE709EF3}"
|
||||
RootNamespace="v29_tests"
|
||||
Keyword="Win32Proj"
|
||||
TargetFrameworkVersion="196613"
|
||||
>
|
||||
<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=".;..\..\src\spandsp;..\..\src;..\..\src\msvc;..;..\..\..\tiff-3.8.2\libtiff"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="2"
|
||||
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="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"
|
||||
Optimization="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="1"
|
||||
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="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="..\..\src\msvc\getopt.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\v29_tests.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\targetver.h"
|
||||
>
|
||||
</File>
|
||||
</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>
|
|
@ -0,0 +1,208 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="v80_tests"
|
||||
ProjectGUID="{A34A9D0E-A7E2-4A04-B044-7BB2FE709EF3}"
|
||||
RootNamespace="v80_tests"
|
||||
Keyword="Win32Proj"
|
||||
TargetFrameworkVersion="196613"
|
||||
>
|
||||
<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=".;..\..\src\spandsp;..\..\src;..\..\src\msvc;..;..\..\..\tiff-3.8.2\libtiff"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="2"
|
||||
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="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"
|
||||
Optimization="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="1"
|
||||
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="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="..\..\src\msvc\getopt.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\v80_tests.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\targetver.h"
|
||||
>
|
||||
</File>
|
||||
</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>
|
|
@ -0,0 +1,208 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="v8_tests"
|
||||
ProjectGUID="{A34A9D0E-A7E2-4A04-B044-7BB2FE709EF3}"
|
||||
RootNamespace="v8_tests"
|
||||
Keyword="Win32Proj"
|
||||
TargetFrameworkVersion="196613"
|
||||
>
|
||||
<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=".;..\..\src\spandsp;..\..\src;..\..\src\msvc;..;..\..\..\tiff-3.8.2\libtiff"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="2"
|
||||
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="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"
|
||||
Optimization="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="1"
|
||||
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="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="..\..\src\msvc\getopt.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\v8_tests.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\targetver.h"
|
||||
>
|
||||
</File>
|
||||
</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>
|
|
@ -0,0 +1,208 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="vector_float_tests"
|
||||
ProjectGUID="{EA745FF7-9E4B-4C13-BA19-2EE8165A6245}"
|
||||
RootNamespace="vector_float_tests"
|
||||
Keyword="Win32Proj"
|
||||
TargetFrameworkVersion="196613"
|
||||
>
|
||||
<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=".;..\..\src\spandsp;..\..\src;..\..\src\msvc;..;..\..\..\tiff-3.8.2\libtiff"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="2"
|
||||
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="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"
|
||||
Optimization="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="1"
|
||||
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="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="..\..\src\msvc\getopt.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\vector_float_tests.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\targetver.h"
|
||||
>
|
||||
</File>
|
||||
</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>
|
|
@ -0,0 +1,208 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="vector_int_tests"
|
||||
ProjectGUID="{80A60464-29E8-4EE8-BAFA-8708B7C08CC3}"
|
||||
RootNamespace="vector_int_tests"
|
||||
Keyword="Win32Proj"
|
||||
TargetFrameworkVersion="196613"
|
||||
>
|
||||
<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=".;..\..\src\spandsp;..\..\src;..\..\src\msvc;..;..\..\..\tiff-3.8.2\libtiff"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="2"
|
||||
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="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"
|
||||
Optimization="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="..\src\Debug\spandsp.lib"
|
||||
LinkIncremental="1"
|
||||
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="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="..\..\src\msvc\getopt.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\vector_int_tests.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\targetver.h"
|
||||
>
|
||||
</File>
|
||||
</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>
|
|
@ -22,7 +22,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: t38_core_tests.c,v 1.14 2008/11/30 13:44:35 steveu Exp $
|
||||
* $Id: t38_core_tests.c,v 1.15 2009/04/25 14:17:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -42,16 +42,6 @@ These tests exercise the T.38 core ASN.1 processing code.
|
|||
#include <string.h>
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/tcp.h>
|
||||
#if !defined(__USE_MISC)
|
||||
#define __USE_MISC
|
||||
#endif
|
||||
#include <arpa/inet.h>
|
||||
#include <sys/select.h>
|
||||
#include <sys/time.h>
|
||||
#include <audiofile.h>
|
||||
|
||||
//#if defined(WITH_SPANDSP_INTERNALS)
|
||||
#define SPANDSP_EXPOSE_INTERNAL_STRUCTURES
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: t38_gateway_tests.c,v 1.80 2009/02/20 12:34:20 steveu Exp $
|
||||
* $Id: t38_gateway_tests.c,v 1.81 2009/04/25 14:27:18 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -48,20 +48,13 @@ These tests exercise the path
|
|||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/tcp.h>
|
||||
#if !defined(__USE_MISC)
|
||||
#define __USE_MISC
|
||||
#endif
|
||||
#include <arpa/inet.h>
|
||||
#include <sys/select.h>
|
||||
#include <sys/time.h>
|
||||
#include <audiofile.h>
|
||||
#if !defined(_WIN32)
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
//#if defined(WITH_SPANDSP_INTERNALS)
|
||||
#define SPANDSP_EXPOSE_INTERNAL_STRUCTURES
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: t38_gateway_to_terminal_tests.c,v 1.64 2009/02/20 12:34:20 steveu Exp $
|
||||
* $Id: t38_gateway_to_terminal_tests.c,v 1.65 2009/04/25 14:27:18 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -48,20 +48,13 @@ These tests exercise the path
|
|||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/tcp.h>
|
||||
#if !defined(__USE_MISC)
|
||||
#define __USE_MISC
|
||||
#endif
|
||||
#include <arpa/inet.h>
|
||||
#include <sys/select.h>
|
||||
#include <sys/time.h>
|
||||
#include <audiofile.h>
|
||||
#if !defined(_WIN32)
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
//#if defined(WITH_SPANDSP_INTERNALS)
|
||||
#define SPANDSP_EXPOSE_INTERNAL_STRUCTURES
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: t38_non_ecm_buffer_tests.c,v 1.4 2008/11/30 13:44:35 steveu Exp $
|
||||
* $Id: t38_non_ecm_buffer_tests.c,v 1.5 2009/04/25 14:17:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -40,20 +40,9 @@ module, used for T.38 gateways.
|
|||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/tcp.h>
|
||||
#if !defined(__USE_MISC)
|
||||
#define __USE_MISC
|
||||
#endif
|
||||
#include <arpa/inet.h>
|
||||
#include <sys/select.h>
|
||||
#include <sys/time.h>
|
||||
#include <audiofile.h>
|
||||
|
||||
//#if defined(WITH_SPANDSP_INTERNALS)
|
||||
#define SPANDSP_EXPOSE_INTERNAL_STRUCTURES
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: t38_terminal_tests.c,v 1.65 2009/02/20 12:34:20 steveu Exp $
|
||||
* $Id: t38_terminal_tests.c,v 1.67 2009/04/25 14:34:45 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -34,7 +34,6 @@ These tests exercise the path
|
|||
T.38 termination <-> T.38 termination
|
||||
*/
|
||||
|
||||
/* Enable the following definition to enable direct probing into the FAX structures */
|
||||
//#define WITH_SPANDSP_INTERNALS
|
||||
|
||||
#if defined(HAVE_CONFIG_H)
|
||||
|
@ -48,20 +47,12 @@ These tests exercise the path
|
|||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/tcp.h>
|
||||
#if !defined(__USE_MISC)
|
||||
#define __USE_MISC
|
||||
#if !defined(_WIN32)
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#include <arpa/inet.h>
|
||||
#include <sys/select.h>
|
||||
#include <sys/time.h>
|
||||
#include <audiofile.h>
|
||||
|
||||
//#if defined(WITH_SPANDSP_INTERNALS)
|
||||
#define SPANDSP_EXPOSE_INTERNAL_STRUCTURES
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: t38_terminal_to_gateway_tests.c,v 1.63 2009/02/20 12:34:20 steveu Exp $
|
||||
* $Id: t38_terminal_to_gateway_tests.c,v 1.64 2009/04/25 14:27:19 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -48,20 +48,13 @@ These tests exercise the path
|
|||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/tcp.h>
|
||||
#if !defined(__USE_MISC)
|
||||
#define __USE_MISC
|
||||
#endif
|
||||
#include <arpa/inet.h>
|
||||
#include <sys/select.h>
|
||||
#include <sys/time.h>
|
||||
#include <audiofile.h>
|
||||
#if !defined(_WIN32)
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
//#if defined(WITH_SPANDSP_INTERNALS)
|
||||
#define SPANDSP_EXPOSE_INTERNAL_STRUCTURES
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: v17_tests.c,v 1.101 2009/03/15 09:09:21 steveu Exp $
|
||||
* $Id: v17_tests.c,v 1.102 2009/04/25 16:30:52 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \page v17_tests_page V.17 modem tests
|
||||
|
@ -483,6 +483,14 @@ int main(int argc, char *argv[])
|
|||
if (use_gui)
|
||||
qam_wait_to_end(qam_monitor);
|
||||
#endif
|
||||
if (decode_test_file)
|
||||
{
|
||||
if (afCloseFile(inhandle))
|
||||
{
|
||||
fprintf(stderr, " Cannot close wave file '%s'\n", decode_test_file);
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
if (log_audio)
|
||||
{
|
||||
if (afCloseFile(outhandle))
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: v22bis_tests.c,v 1.58 2009/04/17 14:37:53 steveu Exp $
|
||||
* $Id: v22bis_tests.c,v 1.61 2009/04/25 16:30:52 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \page v22bis_tests_page V.22bis modem tests
|
||||
|
@ -62,13 +62,13 @@ display of modem status is maintained.
|
|||
|
||||
#define BLOCK_LEN 160
|
||||
|
||||
#define IN_FILE_NAME "v22bis_samp.wav"
|
||||
#define OUT_FILE_NAME "v22bis.wav"
|
||||
|
||||
int rx_bits = 0;
|
||||
|
||||
char *decode_test_file = NULL;
|
||||
int use_gui = FALSE;
|
||||
|
||||
int rx_bits = 0;
|
||||
|
||||
both_ways_line_model_state_t *model;
|
||||
|
||||
typedef struct
|
||||
|
@ -115,6 +115,7 @@ static void v22bis_putbit(void *user_data, int bit)
|
|||
endpoint_t *s;
|
||||
int i;
|
||||
int len;
|
||||
int bit_rate;
|
||||
complexf_t *coeffs;
|
||||
|
||||
s = (endpoint_t *) user_data;
|
||||
|
@ -125,7 +126,9 @@ static void v22bis_putbit(void *user_data, int bit)
|
|||
switch (bit)
|
||||
{
|
||||
case SIG_STATUS_TRAINING_SUCCEEDED:
|
||||
len = v22bis_equalizer_state(s->v22bis, &coeffs);
|
||||
bit_rate = v22bis_current_bit_rate(s->v22bis);
|
||||
printf("Negotiated bit rate: %d\n", bit_rate);
|
||||
len = v22bis_rx_equalizer_state(s->v22bis, &coeffs);
|
||||
printf("Equalizer:\n");
|
||||
for (i = 0; i < len; i++)
|
||||
printf("%3d (%15.5f, %15.5f) -> %15.5f\n", i, coeffs[i].re, coeffs[i].im, powerf(&coeffs[i]));
|
||||
|
@ -134,8 +137,10 @@ static void v22bis_putbit(void *user_data, int bit)
|
|||
return;
|
||||
}
|
||||
|
||||
//printf("Rx bit %p - %d\n", user_data, bit);
|
||||
bert_put_bit(&s->bert_rx, bit);
|
||||
if (decode_test_file)
|
||||
printf("Rx bit %p-%d - %d\n", user_data, rx_bits++, bit);
|
||||
else
|
||||
bert_put_bit(&s->bert_rx, bit);
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
|
@ -166,7 +171,7 @@ static void qam_report(void *user_data, const complexf_t *constel, const complex
|
|||
{
|
||||
qam_monitor_update_constel(s->qam_monitor, constel);
|
||||
qam_monitor_update_carrier_tracking(s->qam_monitor, v22bis_rx_carrier_frequency(s->v22bis));
|
||||
qam_monitor_update_symbol_tracking(s->qam_monitor, v22bis_symbol_timing_correction(s->v22bis));
|
||||
qam_monitor_update_symbol_tracking(s->qam_monitor, v22bis_rx_symbol_timing_correction(s->v22bis));
|
||||
}
|
||||
#endif
|
||||
fpower = (constel->re - target->re)*(constel->re - target->re)
|
||||
|
@ -188,7 +193,7 @@ static void qam_report(void *user_data, const complexf_t *constel, const complex
|
|||
else
|
||||
{
|
||||
printf("Gardner step %d\n", symbol);
|
||||
len = v22bis_equalizer_state(s->v22bis, &coeffs);
|
||||
len = v22bis_rx_equalizer_state(s->v22bis, &coeffs);
|
||||
printf("Equalizer A:\n");
|
||||
for (i = 0; i < len; i++)
|
||||
printf("%3d (%15.5f, %15.5f) -> %15.5f\n", i, coeffs[i].re, coeffs[i].im, powerf(&coeffs[i]));
|
||||
|
@ -205,9 +210,11 @@ int main(int argc, char *argv[])
|
|||
int16_t amp[2][BLOCK_LEN];
|
||||
int16_t model_amp[2][BLOCK_LEN];
|
||||
int16_t out_amp[2*BLOCK_LEN];
|
||||
AFfilehandle inhandle;
|
||||
AFfilehandle outhandle;
|
||||
int outframes;
|
||||
int samples;
|
||||
int samples2;
|
||||
int i;
|
||||
int j;
|
||||
int test_bps;
|
||||
|
@ -222,11 +229,12 @@ int main(int argc, char *argv[])
|
|||
channel_codec = MUNGE_CODEC_NONE;
|
||||
test_bps = 2400;
|
||||
line_model_no = 0;
|
||||
decode_test_file = NULL;
|
||||
noise_level = -70;
|
||||
signal_level = -13;
|
||||
bits_per_test = 50000;
|
||||
log_audio = FALSE;
|
||||
while ((opt = getopt(argc, argv, "b:B:c:glm:n:s:")) != -1)
|
||||
while ((opt = getopt(argc, argv, "b:B:c:d:glm:n:s:")) != -1)
|
||||
{
|
||||
switch (opt)
|
||||
{
|
||||
|
@ -244,6 +252,9 @@ int main(int argc, char *argv[])
|
|||
case 'c':
|
||||
channel_codec = atoi(optarg);
|
||||
break;
|
||||
case 'd':
|
||||
decode_test_file = optarg;
|
||||
break;
|
||||
case 'g':
|
||||
#if defined(ENABLE_GUI)
|
||||
use_gui = TRUE;
|
||||
|
@ -270,6 +281,17 @@ int main(int argc, char *argv[])
|
|||
break;
|
||||
}
|
||||
}
|
||||
inhandle = AF_NULL_FILEHANDLE;
|
||||
if (decode_test_file)
|
||||
{
|
||||
/* We will decode the audio from a wave file. */
|
||||
if ((inhandle = afOpenFile_telephony_read(decode_test_file, 1)) == AF_NULL_FILEHANDLE)
|
||||
{
|
||||
fprintf(stderr, " Cannot open wave file '%s'\n", decode_test_file);
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
|
||||
outhandle = AF_NULL_FILEHANDLE;
|
||||
if (log_audio)
|
||||
{
|
||||
|
@ -283,11 +305,11 @@ int main(int argc, char *argv[])
|
|||
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
endpoint[i].v22bis = v22bis_init(NULL, test_bps, V22BIS_GUARD_TONE_1800HZ, (i == 0), v22bis_getbit, v22bis_putbit, &endpoint[i]);
|
||||
endpoint[i].v22bis = v22bis_init(NULL, test_bps, V22BIS_GUARD_TONE_1800HZ, (i == 0), v22bis_getbit, &endpoint[i], v22bis_putbit, &endpoint[i]);
|
||||
v22bis_tx_power(endpoint[i].v22bis, signal_level);
|
||||
/* Move the carrier off a bit */
|
||||
endpoint[i].v22bis->tx.carrier_phase_rate = dds_phase_ratef((i == 0) ? 1207.0f : 2407.0f);
|
||||
v22bis_set_qam_report_handler(endpoint[i].v22bis, qam_report, (void *) &endpoint[i]);
|
||||
v22bis_rx_set_qam_report_handler(endpoint[i].v22bis, qam_report, (void *) &endpoint[i]);
|
||||
span_log_set_level(&endpoint[i].v22bis->logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_SHOW_TAG | SPAN_LOG_SHOW_SAMPLE_TIME | SPAN_LOG_FLOW);
|
||||
span_log_set_tag(&endpoint[i].v22bis->logging, (i == 0) ? "caller" : "answerer");
|
||||
endpoint[i].smooth_power = 0.0f;
|
||||
|
@ -334,7 +356,7 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
}
|
||||
|
||||
#if 0
|
||||
#if 1
|
||||
both_ways_line_model(model,
|
||||
model_amp[0],
|
||||
amp[0],
|
||||
|
@ -345,6 +367,15 @@ int main(int argc, char *argv[])
|
|||
vec_copyi16(model_amp[0], amp[0], samples);
|
||||
vec_copyi16(model_amp[1], amp[1], samples);
|
||||
#endif
|
||||
if (decode_test_file)
|
||||
{
|
||||
samples2 = afReadFrames(inhandle,
|
||||
AF_DEFAULT_TRACK,
|
||||
model_amp[0],
|
||||
samples);
|
||||
if (samples2 != samples)
|
||||
break;
|
||||
}
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
span_log_bump_samples(&endpoint[i].v22bis->logging, samples);
|
||||
|
@ -368,6 +399,18 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
}
|
||||
}
|
||||
#if defined(ENABLE_GUI)
|
||||
if (use_gui)
|
||||
qam_wait_to_end(endpoint[0].qam_monitor);
|
||||
#endif
|
||||
if (decode_test_file)
|
||||
{
|
||||
if (afCloseFile(inhandle))
|
||||
{
|
||||
fprintf(stderr, " Cannot close wave file '%s'\n", decode_test_file);
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
if (log_audio)
|
||||
{
|
||||
if (afCloseFile(outhandle) != 0)
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: v27ter_tests.c,v 1.103 2009/03/15 09:09:21 steveu Exp $
|
||||
* $Id: v27ter_tests.c,v 1.104 2009/04/25 16:30:52 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \page v27ter_tests_page V.27ter modem tests
|
||||
|
@ -471,6 +471,14 @@ int main(int argc, char *argv[])
|
|||
if (use_gui)
|
||||
qam_wait_to_end(qam_monitor);
|
||||
#endif
|
||||
if (decode_test_file)
|
||||
{
|
||||
if (afCloseFile(inhandle))
|
||||
{
|
||||
fprintf(stderr, " Cannot close wave file '%s'\n", decode_test_file);
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
if (log_audio)
|
||||
{
|
||||
if (afCloseFile(outhandle))
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: v29_tests.c,v 1.117 2009/03/15 09:09:21 steveu Exp $
|
||||
* $Id: v29_tests.c,v 1.118 2009/04/25 16:30:52 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \page v29_tests_page V.29 modem tests
|
||||
|
@ -500,6 +500,14 @@ int main(int argc, char *argv[])
|
|||
if (use_gui)
|
||||
qam_wait_to_end(qam_monitor);
|
||||
#endif
|
||||
if (decode_test_file)
|
||||
{
|
||||
if (afCloseFile(inhandle))
|
||||
{
|
||||
fprintf(stderr, " Cannot close wave file '%s'\n", decode_test_file);
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
if (log_audio)
|
||||
{
|
||||
if (afCloseFile(outhandle))
|
||||
|
|
|
@ -22,14 +22,14 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: v8_tests.c,v 1.31 2008/11/30 10:17:31 steveu Exp $
|
||||
* $Id: v8_tests.c,v 1.32 2009/04/24 22:35:25 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \page v8_tests_page V.8 tests
|
||||
\section v8_tests_page_sec_1 What does it do?
|
||||
*/
|
||||
|
||||
/* Enable the following definition to enable direct probing into the FAX structures */
|
||||
/* Enable the following definition to enable direct probing into the internal structures */
|
||||
//#define WITH_SPANDSP_INTERNALS
|
||||
|
||||
#if defined(HAVE_CONFIG_H)
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: vector_float_tests.c,v 1.12 2008/10/09 13:25:19 steveu Exp $
|
||||
* $Id: vector_float_tests.c,v 1.13 2009/04/26 07:00:39 steveu Exp $
|
||||
*/
|
||||
|
||||
#if defined(HAVE_CONFIG_H)
|
||||
|
@ -33,7 +33,6 @@
|
|||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <string.h>
|
||||
#include <audiofile.h>
|
||||
|
||||
#include "spandsp.h"
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: vector_int_tests.c,v 1.10 2008/09/18 12:05:35 steveu Exp $
|
||||
* $Id: vector_int_tests.c,v 1.11 2009/04/26 07:00:39 steveu Exp $
|
||||
*/
|
||||
|
||||
#if defined(HAVE_CONFIG_H)
|
||||
|
@ -33,7 +33,6 @@
|
|||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <string.h>
|
||||
#include <audiofile.h>
|
||||
|
||||
#include "spandsp.h"
|
||||
|
||||
|
|
Loading…
Reference in New Issue