Starts generating one or more tones.
AG
CG
DWORD adiStartTones ( CTAHD ctahd, unsigned count, ADI_TONE_PARMS *parms)
Argument |
Description |
ctahd |
Context handle returned by ctaCreateContext or ctaAttachContext. |
count |
Number of entries in the parms array. |
parms |
Pointer to an array of tones defined by the following structure (NULL designates default values): typedef struct Refer to ADI_TONE_PARMS for field descriptions. |
Return value |
Description |
SUCCESS |
|
ADIERR_INVALID_CALL_STATE |
Function not available in the current call state. |
CTAERR_FUNCTION_ACTIVE |
Function already active. |
CTAERR_INVALID_CTAHD |
Context handle is invalid. |
CTAERR_INVALID_STATE |
Function not available in the current port state. |
CTAERR_OUTPUT_ACTIVE |
Function failed because there is another active output function. |
CTAERR_SVR_COMM |
Server communication error. |
Event |
Description |
ADIEVN_TONES_DONE |
The value field contains any of the following reasons: CTAERR_xxx or ADIERR_xxx Tone generation failed. CTA_REASON_FINISHED Tones generated. CTA_REASON_STOPPED Tone generation stopped by adiStopTones. |
The following DSP file must be loaded to the board before running adiStartTones:
For these boards... |
Load this DSP file... |
AG |
tone.m54 |
CG |
tone.f54 |
See DSP file summary for DSP file descriptions. Refer to the board installation and developer's manual for a table of MIPS usage for all functions.
Use this function to start generating a sequence of tones, each consisting of one or two frequencies and an iteration count. The DONE event is generated when the tone sequence completes.
Each tone within the sequence comprises an ontime and an offtime, as well as an iterations count, all of which are contained in the ADI_TONE_PARMS structure. The final iteration is complete when the offtime expires. To generate a tone continuously, set iterations to -1 and specify an offtime of 0 (zero).
Use adiStopTones to prematurely terminate tone generation.
For more information, refer to Generating tones.
/* generates an Intralata Reorder SIT per BellCore */
int myPlaySITReorder( CTAHD ctahd )
{
ADI_TONE_PARMS p[3] = {0};
CTA_EVENT event;
int tonecnt = 3;
p[0].freq1 = 914; p[0].ampl1 = -24; p[0].ontime = 275; p[0].iterations = 1;
p[1].freq1 = 1429; p[1].ampl1 = -24; p[1].ontime = 380; p[1].iterations = 1;
p[2].freq1 = 1777; p[2].ampl1 = -24; p[2].ontime = 380; p[2].iterations = 1;
if( adiStartTones( ctahd, tonecnt, p ) != SUCCESS )
return MYFAILURE;
while( 1 )
{
myGetEvent( &event ); /* see ctaWaitEvent example */
switch( event.id )
{
case ADIEVN_TONES_DONE:
if( event.value == CTA_REASON_RELEASED )
return MYDISCONNECT; /* call has been terminated */
else if( CTA_IS_ERROR( event.value ) )
return MYFAILURE; /* API error */
else
return SUCCESS; /* stopped normally */
break;
}
}
}