ctaGetParms

Returns parameter values for a specified parameter structure.

Prototype

DWORD ctaGetParms ( CTAHD ctahd, unsigned parmid, void *buffer, unsigned size)

Argument

Description

ctahd

Context handle that specifies the server on which commands are executed. ctahd can be a void context handle.

parmid

Parameter structure ID.

buffer

Pointer to a buffer to receive parameter values.

size

Size of buffer in bytes.


Return values

Return value

Description

SUCCESS

 

CTAERR_BAD_ARGUMENT

parmid is zero (0), or buffer is NULL.

CTAERR_BAD_SIZE

size is less than the parameter size.

CTAERR_INVALID_CTAHD

An invalid context handle was passed as an argument to a function, or the context was destroyed by another thread.

CTAERR_NOT_FOUND

parmid is not found.

CTAERR_NOT_INITIALIZED

Natural Access is not initialized. Call ctaInitialize first.

CTAERR_SVR_COMM

Server communication error.


Details

ctaGetParms retrieves the parameter values for the structure identified by its parmid. If ctahd is a valid context, this function retrieves the parameters from the context defaults.

ctahd can be a void context handle. A void context handle refers only to the server on which the commands are executed and not to any real context object. Each server has a unique void context handle. If the void context handle is equal to NULL_CTAHD, it refers to the default server.

If a void context handle is used for ctahd, this function retrieves parameters from the global defaults and is executed on the server specified by the void context handle. Global defaults are either statically defined values maintained within a process or dynamically defined values maintained by the Natural Access Server.

The size argument specifies the amount of available memory at the buffer and must be large enough to contain the returned parameter structure. The parameter structure's size can be retrieved using ctaGetParmInfo.

Refer to Managing parameters for more information.

See also

ctaGetEventSources, ctaGetParmsEx, ctaSetEventSources

Example

void DemoRecordFile(DEMOCONTEXT *cx, char *filename, unsigned encoding)
{
    VCEHD            vh;
    CTA_EVENT        event;
    VCE_RECORD_PARMS rparms;
    unsigned         maxtime = 0;  /* no cap on length of recording */

    /*
     * Record the caller, overriding default parameters for
     * quick recognition of silence once voice input has begun.
     */
    ctaGetParms( cx->ctahd, VCE_RECORD_PARMID, &rparms, sizeof(rparms) );

    rparms.silencetime = 500; /* 1/2 sec */

    vceOpenFile ( cx->ctahd, filename, VCE_FILETYPE_FLAT, VCE_PLAY_RECORD, 
                  encoding, &vh );

    vceRecordMessage( vh, 0, maxtime, &rparms);

    /* Wait for recording to end */
    do
    {
        ctaWaitEvent( cx->ctaqueuehd, &event, CTA_WAIT_FOREVER ); 
    } while ( event.id != VCEEVN_RECORD_DONE );

    printf ( "Record ended with reason: val=0x%x\n", event.value );
      
    vceClose (vh);
}