# adiStopEnergyDetector

Stops the energy detector.

#### Supported board types

- AG

- CG

#### Prototype

DWORD adiStopEnergyDetector ( CTAHD ctahd)

Argument | Description
ctahd | Context handle returned by ctaCreateContext or ctaAttachContext.

#### Return values

Return value | Description
SUCCESS |
CTAERR_FUNCTION_NOT_ACTIVE | Attempt made to stop a function that was not running.
CTAERR_INVALID_CTAHD | Context handle is invalid.
CTAERR_INVALID_SEQUENCE | Attempt made to stop a function that is already being stopped.
CTAERR_INVALID_STATE | Function not available in the current port state.
CTAERR_SVR_COMM | Server communication error.

#### Events

Event | Description
ADIEVN_ENERGY_DETECT_DONE | After the detector stops, the ADI service generates a DONE event with the value field set to CTA_REASON_STOPPED.

#### Details

Use adiStopEnergyDetector to stop the low-level energy detector started by adiStartEnergyDetector. After this function is called, energy and silence transitions are not reported. You can restart the energy detector after you receive the DONE event.

For more information, refer to Detecting energy.

#### Example

int myStopEnergyDetector( CTAHD ctahd )
{
CTA_EVENT event;
if( adiStopEnergyDetector( ctahd ) != SUCCESS )
return MYFAILURE;
while( 1 )
{
myGetEvent( &event ); /* see ctaWaitEvent example */
switch( event.id )
{
case ADIEVN_ENERGY_DETECT_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;
/* might include cases to handle disconnect, DTMFs, etc. */
}
}
}