AudioDetect.h revision 7c478bd95313f5f23a4c958a745db2134aa03244
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright (c) 1990-2001 by Sun Microsystems, Inc.
* All rights reserved.
*/
#ifndef _MULTIMEDIA_AUDIODETECT_H
#define _MULTIMEDIA_AUDIODETECT_H
#pragma ident "%Z%%M% %I% %E% SMI"
#include <Audio.h>
#ifdef __cplusplus
extern "C" {
#endif
/*
* An array of AudioDetectPts is returned by the detection algorithms.
* 'Pos' gives the start time of a region. 'Type' give the type of data
* detected in that particular region. The end time of the region is equal
* to the start time of the next region.
* The last entry in the array has type DETECT_EOF.
*/
enum AudioDetectType {
DETECT_EOF, /* end of file marker */
DETECT_SILENCE, /* region of silence */
DETECT_SOUND /* region of detected sound */
/* XXX - may be extended to include */
/* touch-tone and speech detection. */
};
struct AudioDetectPts {
double pos; /* start time of audio region */
};
/* Audio detection algorithm tuning parameters */
enum AudioDetectConfig {
DETECT_MINIMUM_SILENCE, /* (double) minimum pause time */
DETECT_MINIMUM_SOUND, /* (double) minimum sound time */
DETECT_THRESHOLD_SCALE, /* (double) 0.(low) - 4.(hi) */
DETECT_NOISE_RATIO /* (double) 0.(low) - 1.(hi) */
};
// Array of detection points
unsigned int count; // number of valid points in array
unsigned int size; // number of entries in array
~AudioDetectArray(); // Destructor
// Append points
void reduce(); // Eliminate redundancy
};
// Audio detection state structure
void* state; // detection algorithm state
// Analyze main loop
AudioDetect(); // Constructor
~AudioDetect(); // Destructor
// Get detection params
// Set detection params
// Analyze silence
// Analyze gain level
// Process data
// Process data
// Process data
};
#ifdef __cplusplus
}
#endif
#endif /* !_MULTIMEDIA_AUDIODETECT_H */