|
Shinya Kitaoka |
810553 |
#pragma once
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#ifndef __TSOUND_H__
|
|
Toshihiro Shimizu |
890ddd |
#define __TSOUND_H__
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#include "tmacro.h"
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#undef TNZAPI
|
|
Toshihiro Shimizu |
890ddd |
#ifdef TNZ_IS_AUDIOLIB
|
|
Toshihiro Shimizu |
890ddd |
#define TNZAPI TNZ_EXPORT_API
|
|
Toshihiro Shimizu |
890ddd |
#else
|
|
Toshihiro Shimizu |
890ddd |
#define TNZAPI TNZ_IMPORT_API
|
|
Toshihiro Shimizu |
890ddd |
#endif
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*----------------------------------------------------------------------- */
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#ifndef TSAPI
|
|
Toshihiro Shimizu |
890ddd |
#define TSAPI extern
|
|
Toshihiro Shimizu |
890ddd |
#endif
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
typedef int TS_RESULT;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
enum {
|
|
Shinya Kitaoka |
120a6e |
TS_NOERROR = 0,
|
|
Shinya Kitaoka |
120a6e |
TS_BADFILE,
|
|
Shinya Kitaoka |
120a6e |
TS_BADFORMAT,
|
|
Shinya Kitaoka |
120a6e |
TS_ENV,
|
|
Shinya Kitaoka |
120a6e |
TS_NOT_ALLOCATED,
|
|
Shinya Kitaoka |
120a6e |
TS_BADDEVICE,
|
|
Shinya Kitaoka |
120a6e |
TS_DEVICEBUSY,
|
|
Shinya Kitaoka |
120a6e |
TS_NODRIVER,
|
|
Shinya Kitaoka |
120a6e |
TS_PLAYERROR,
|
|
Shinya Kitaoka |
120a6e |
TS_RECERROR,
|
|
Shinya Kitaoka |
120a6e |
TS_NODATA,
|
|
Shinya Kitaoka |
120a6e |
TS_OK_PLAYSTOPPED,
|
|
Shinya Kitaoka |
120a6e |
TS_OK_RECSTOPPED
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
typedef unsigned long DWORD;
|
|
Toshihiro Shimizu |
890ddd |
/*
|
|
Shinya Kitaoka |
120a6e |
typedef unsigned char BYTE;
|
|
Shinya Kitaoka |
120a6e |
typedef int BOOL;
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Toshihiro Shimizu |
890ddd |
typedef unsigned char *PBYTE;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
typedef const char *TS_STRING;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
/*-----------------------------------------------------------------------------
|
|
Shinya Kitaoka |
120a6e |
*/
|
|
Toshihiro Shimizu |
890ddd |
/* Sound data type */
|
|
Toshihiro Shimizu |
890ddd |
/* MEGACAMBIO!!!! AUDIOFRAME intero */
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
typedef int AUDIOFRAME; /* -inf , +inf */
|
|
Shinya Kitaoka |
120a6e |
typedef float TIME; /* -inf , +inf */
|
|
Toshihiro Shimizu |
890ddd |
typedef DWORD SAMPLE; /* 0 , +inf */
|
|
Toshihiro Shimizu |
890ddd |
typedef DWORD TS_SIZE;
|
|
Shinya Kitaoka |
120a6e |
typedef float HERTZ; /* 0 , +inf */
|
|
Toshihiro Shimizu |
890ddd |
typedef float PRESSURE; /* -1.0 , +1.0 */
|
|
Toshihiro Shimizu |
890ddd |
typedef float AMPLIFICATION;
|
|
Toshihiro Shimizu |
890ddd |
typedef unsigned int VOLUME; /* 0 , 255 */
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/* conversione: tempo -> frame */
|
|
Toshihiro Shimizu |
890ddd |
#define TS_CINEMA_FRAMEDURATION ((double)1 / 24)
|
|
Toshihiro Shimizu |
890ddd |
#define TS_PAL_FRAMEDURATION ((double)1 / 25)
|
|
Toshihiro Shimizu |
890ddd |
#define TS_NTSC_FRAMEDURATION ((double)1 / 30)
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*------------------- DIGITAL AUDIO --------------------*/
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/* channels number */
|
|
Shinya Kitaoka |
120a6e |
typedef enum { TS_MONO = 1, TS_STEREO = 2 } TS_DIGITAL_CHANNELS;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*
|
|
Toshihiro Shimizu |
890ddd |
audio quality (sampling rate)
|
|
Toshihiro Shimizu |
890ddd |
mu: HERTZ
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
typedef enum {
|
|
Shinya Kitaoka |
120a6e |
TS_RATE_8000 = 8000,
|
|
Shinya Kitaoka |
120a6e |
TS_RATE_11025 = 11025,
|
|
Shinya Kitaoka |
120a6e |
TS_RATE_16000 = 16000,
|
|
Shinya Kitaoka |
120a6e |
TS_RATE_22050 = 22050,
|
|
Shinya Kitaoka |
120a6e |
TS_RATE_32000 = 32000,
|
|
Shinya Kitaoka |
120a6e |
TS_RATE_44100 = 44100,
|
|
Shinya Kitaoka |
120a6e |
TS_RATE_48000 = 48000
|
|
Toshihiro Shimizu |
890ddd |
} TS_DIGITAL_QUALITY;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#define TS_VOICE_QUALITY TS_RATE_8000
|
|
Toshihiro Shimizu |
890ddd |
#define TS_PHONE_QUALITY TS_RATE_11025
|
|
Toshihiro Shimizu |
890ddd |
#define TS_RADIO_QUALITY TS_RATE_22050
|
|
Toshihiro Shimizu |
890ddd |
#define TS_CD_QUALITY TS_RATE_44100
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
/*
|
|
Toshihiro Shimizu |
890ddd |
sample dimension
|
|
Toshihiro Shimizu |
890ddd |
mu: BIT
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
typedef enum {
|
|
Shinya Kitaoka |
120a6e |
TS_8BIT_SAMPLES = 8,
|
|
Shinya Kitaoka |
120a6e |
TS_16BIT_SAMPLES = 16,
|
|
Toshihiro Shimizu |
890ddd |
#ifndef WIN32
|
|
Shinya Kitaoka |
120a6e |
TS_24BIT_SAMPLES = 24
|
|
Toshihiro Shimizu |
890ddd |
#else
|
|
Shinya Kitaoka |
120a6e |
TS_24BIT_SAMPLES = 24
|
|
Toshihiro Shimizu |
890ddd |
#endif
|
|
Toshihiro Shimizu |
890ddd |
} TS_DIGITAL_SAMPLES;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*
|
|
Toshihiro Shimizu |
890ddd |
bit masks for dwMask
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Toshihiro Shimizu |
890ddd |
enum {
|
|
Shinya Kitaoka |
120a6e |
TS_MASK_DEFAULT = 0, /* per usare param. di default */
|
|
Shinya Kitaoka |
120a6e |
TS_MASK_ORIGIN = (1 << 0),
|
|
Shinya Kitaoka |
120a6e |
TS_MASK_DURATION = (1 << 1),
|
|
Shinya Kitaoka |
120a6e |
TS_MASK_QUALITY = (1 << 2),
|
|
Shinya Kitaoka |
120a6e |
TS_MASK_CHANNEL = (1 << 3),
|
|
Shinya Kitaoka |
120a6e |
TS_MASK_SAMPLE = (1 << 4),
|
|
Shinya Kitaoka |
120a6e |
TS_MASK_FILENAME = (1 << 5),
|
|
Shinya Kitaoka |
120a6e |
TS_MASK_ALL = TS_MASK_ORIGIN | TS_MASK_DURATION | TS_MASK_QUALITY |
|
|
Shinya Kitaoka |
120a6e |
TS_MASK_CHANNEL | TS_MASK_SAMPLE | TS_MASK_FILENAME,
|
|
Shinya Kitaoka |
120a6e |
TS_MASK_CREATE = TS_MASK_QUALITY | TS_MASK_CHANNEL | TS_MASK_SAMPLE
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*
|
|
Toshihiro Shimizu |
890ddd |
internal time unit = SAMPLE
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Toshihiro Shimizu |
890ddd |
typedef struct _TS_STRACK_INFO {
|
|
Shinya Kitaoka |
120a6e |
TIME tmOrigin;
|
|
Shinya Kitaoka |
120a6e |
TIME tmDuration;
|
|
Shinya Kitaoka |
120a6e |
char *tmFilename;
|
|
Shinya Kitaoka |
120a6e |
/* DIGITAL audio dependent part - low level*/
|
|
Shinya Kitaoka |
120a6e |
TS_DIGITAL_CHANNELS dChannels;
|
|
Shinya Kitaoka |
120a6e |
TS_DIGITAL_QUALITY dSamplingRate;
|
|
Shinya Kitaoka |
120a6e |
TS_DIGITAL_SAMPLES dBitsPerSample;
|
|
Shinya Kitaoka |
120a6e |
/* --- */
|
|
Shinya Kitaoka |
120a6e |
DWORD dwMask;
|
|
Toshihiro Shimizu |
890ddd |
} * TS_STRACK_INFO;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
typedef struct _TS_STRACK *TS_STRACK;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
/*
|
|
Shinya Kitaoka |
120a6e |
I/O devices
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
typedef enum {
|
|
Shinya Kitaoka |
120a6e |
TS_INPUT_LINE,
|
|
Shinya Kitaoka |
120a6e |
TS_INPUT_MIC,
|
|
Shinya Kitaoka |
120a6e |
TS_INPUT_DIGITAL,
|
|
Shinya Kitaoka |
120a6e |
TS_INPUT_DUMMY /* per aprire in output */
|
|
Toshihiro Shimizu |
890ddd |
} TS_DEVTYPE;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
typedef enum { TS_UNIQUE = 0, TS_RIGHT, TS_LEFT } TS_CHAN;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*
|
|
Toshihiro Shimizu |
890ddd |
typedef struct _TS_DEVICE_INFO {
|
|
Shinya Kitaoka |
120a6e |
TS_DEVTYPE input_source;
|
|
Shinya Kitaoka |
120a6e |
VOLUME input_volume;
|
|
Shinya Kitaoka |
120a6e |
VOLUME output_volume;
|
|
Toshihiro Shimizu |
890ddd |
}*TS_DEVICE_INFO;
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
typedef struct _TS_DEVICE *TS_DEVICE;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/* ------------------------ FUNCTIONS ------------------------------*/
|
|
Toshihiro Shimizu |
890ddd |
/* N.B. Tutte le funzioni con from, to (src_from, src_to)
|
|
Toshihiro Shimizu |
890ddd |
* prendono TUTTA la track se from==TS_BEGIN && to==TS_END
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#define ALL -1 /* PROVVISORIO!!!!!*/
|
|
Toshihiro Shimizu |
890ddd |
#define TS_BEGIN MININT
|
|
Toshihiro Shimizu |
890ddd |
#define TS_END MAXINT
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*---------------------- Creation/Destruction ----------------------------*/
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/* usa i campi di info dichiarati in dwFlagsi, per gli altri usa default */
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI TS_STRACK tsCreateStrack(TS_STRACK_INFO info);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI TS_RESULT tsDestroyStrack(TS_STRACK strack);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*---------------------- Conversion Functions -----------------------------*/
|
|
Shinya Kitaoka |
120a6e |
/*
|
|
Shinya Kitaoka |
120a6e |
secs * tsFrameRate() => num.frames
|
|
Shinya Kitaoka |
120a6e |
N.B.:Nessun controllo sui parametri passati (conv.indiscriminata)
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI AUDIOFRAME tsTimeToFrame(TIME time);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI TIME tsFrameToTime(AUDIOFRAME frames);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI TIME tsFracFrameToTime(float frac_frames);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI SAMPLE tsFrameToSample(AUDIOFRAME frames, TS_STRACK strack);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI AUDIOFRAME tsSampleToFrame(SAMPLE samples, TS_STRACK strack);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI AUDIOFRAME tsByteToFrame(TS_SIZE bytes, TS_STRACK strack);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI TS_SIZE tsFrameToByte(AUDIOFRAME frames, TS_STRACK strack);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI SAMPLE tsTimeToSample(TIME time, TS_STRACK strack);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI TIME tsSampleToTime(SAMPLE samples, TS_STRACK strack);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI void tsAreyousure_to_quit(void);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*--------------------------- File Functions ----------------------------*/
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/* riempie tutti i campi della info */
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI TS_RESULT tsFileInfo(TS_STRING szFileName, TS_STRACK_INFO info);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI TS_STRACK tsLoad(TS_STRING szFileName, AUDIOFRAME from,
|
|
Shinya Kitaoka |
120a6e |
AUDIOFRAME to);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI TS_STRACK tsLoadSubsampled(TS_STRING szFileName,
|
|
Shinya Kitaoka |
120a6e |
TS_STRACK_INFO desired_info,
|
|
Shinya Kitaoka |
120a6e |
AUDIOFRAME from, AUDIOFRAME to);
|
|
Toshihiro Shimizu |
890ddd |
/* if from==ALL && to==ALL the whole track is loaded */
|
|
Toshihiro Shimizu |
890ddd |
/*
|
|
Shinya Kitaoka |
120a6e |
TNZAPI TSAPI TS_RESULT tsSave ( TS_STRACK strack, TS_STRING szFileName,
|
|
Toshihiro Shimizu |
890ddd |
AUDIOFRAME from, AUDIOFRAME to );
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI TS_RESULT tsSave(TS_STRACK strack, TS_STRING szFileName);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*------------------------- Edit Functions --------------------------------*/
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI void tsDelete(TS_STRACK strack, AUDIOFRAME from, AUDIOFRAME to);
|
|
Toshihiro Shimizu |
890ddd |
/* cuts a piece of DATA */
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI void tsClear(TS_STRACK strack, AUDIOFRAME from, AUDIOFRAME to);
|
|
Toshihiro Shimizu |
890ddd |
/* zeroes a piece of DATA */
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI void tsBlank(TS_STRACK strack, AUDIOFRAME point, AUDIOFRAME range);
|
|
Toshihiro Shimizu |
890ddd |
/* insert zeros into a track */
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
TNZAPI TSAPI TS_RESULT tsCopy(TS_STRACK src_strack, AUDIOFRAME src_from,
|
|
Shinya Kitaoka |
120a6e |
AUDIOFRAME src_to, TS_STRACK dest_strack,
|
|
Shinya Kitaoka |
120a6e |
AUDIOFRAME dest_from);
|
|
Shinya Kitaoka |
120a6e |
TNZAPI TSAPI TS_RESULT tsInsert(TS_STRACK src_strack, AUDIOFRAME src_from,
|
|
Shinya Kitaoka |
120a6e |
AUDIOFRAME src_to, TS_STRACK dest_strack,
|
|
Shinya Kitaoka |
120a6e |
AUDIOFRAME dest_from);
|
|
Toshihiro Shimizu |
890ddd |
/* Insertion of data in an empty track : dest_strack->buffer = NULL */
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/* ------------------------Manipolator Functions -------------------------*/
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
TNZAPI TSAPI TS_RESULT tsConvert(TS_STRACK src_strack,
|
|
Shinya Kitaoka |
120a6e |
TS_STRACK_INFO dest_info);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI TS_RESULT tsAmplify(TS_STRACK strack, AMPLIFICATION amp);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*----------------------- Miscellanea Functions ---------------------------*/
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI AUDIOFRAME tsGetFrames(TS_STRACK strack);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI PBYTE tsBuffer(TS_STRACK strack);
|
|
Toshihiro Shimizu |
890ddd |
/* riempie i campi di info richiesti in dwFlags */
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI TS_RESULT tsInfo(TS_STRACK strack, TS_STRACK_INFO info);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI PRESSURE tsGetPressure(TS_STRACK strack, TIME time, TS_CHAN chan);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI PRESSURE tsGetMaxPressure(TS_STRACK strack, TS_CHAN chan);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI TS_STRING tsAudioFileExtension(void);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#ifndef WIN32
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI int tsSupportDigitalIn(void);
|
|
Toshihiro Shimizu |
890ddd |
#endif
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/* only for tsNewPlay etc. */
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI TBOOL tsNeedsRefill(void);
|
|
Shinya Kitaoka |
120a6e |
TNZAPI TSAPI TBOOL
|
|
Shinya Kitaoka |
120a6e |
tsRefill(void); /* call at least 4 times per sec while playing, */
|
|
Shinya Kitaoka |
120a6e |
/* TRUE means needs to be called again */
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*------------------------ Play/Rec Functions -----------------------------*/
|
|
Toshihiro Shimizu |
890ddd |
/* default asynch */
|
|
Shinya Kitaoka |
120a6e |
TNZAPI TSAPI TS_RESULT tsPlay(TS_STRACK strack, TS_DEVICE dev, AUDIOFRAME from,
|
|
Shinya Kitaoka |
120a6e |
AUDIOFRAME to);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI TS_RESULT tsNewPlay(TS_STRACK strack, TS_DEVICE dev,
|
|
Shinya Kitaoka |
120a6e |
AUDIOFRAME from, AUDIOFRAME to);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI TS_RESULT tsPlayLoop(TS_STRACK strack, TS_DEVICE dev,
|
|
Shinya Kitaoka |
120a6e |
AUDIOFRAME from, AUDIOFRAME to);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI TBOOL tsIsPlaying(TS_STRACK strack, TS_DEVICE dev);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI TBOOL tsIsNewPlaying(TS_STRACK strack, TS_DEVICE dev);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI TS_RESULT tsSyncPlay(TS_STRACK strack, TS_DEVICE dev,
|
|
Shinya Kitaoka |
120a6e |
AUDIOFRAME from, AUDIOFRAME to);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI TS_RESULT tsStopPlaying(TS_STRACK strack, TS_DEVICE dev);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI TS_RESULT tsStopNewPlaying(TS_STRACK strack, TS_DEVICE dev);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI TS_RESULT tsRecord(TS_STRACK strack, TS_DEVICE dev,
|
|
Shinya Kitaoka |
120a6e |
AUDIOFRAME from, AUDIOFRAME to);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI TBOOL tsIsRecording(TS_STRACK strack, TS_DEVICE dev);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI TS_RESULT tsSyncRecord(TS_STRACK strack, TS_DEVICE dev,
|
|
Shinya Kitaoka |
120a6e |
AUDIOFRAME from, AUDIOFRAME to);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI TS_RESULT tsStopRecording(TS_STRACK strack, TS_DEVICE dev);
|
|
Toshihiro Shimizu |
890ddd |
/* TSAPI void tsSetEndPlayCb (void(*end_play_cb)(void));*/
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*------------------------- Device Functions ------------------------------*/
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/* dinfo==NIL => usato vol. di default e microfono per input */
|
|
Toshihiro Shimizu |
890ddd |
/* mode = "w" per Play; "r" per Record */
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
TNZAPI TSAPI TS_DEVICE tsInitDevice(TS_DEVTYPE type, TS_STRACK_INFO info,
|
|
Shinya Kitaoka |
120a6e |
char *mode);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI TS_RESULT tsCloseDevice(TS_DEVICE dev);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI TBOOL tsCheckOutput(void);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI void tsSetVolume(TS_DEVICE dev, VOLUME vol);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI void tsSetInVolume(TS_DEVICE dev, VOLUME vol);
|
|
Toshihiro Shimizu |
890ddd |
TNZAPI TSAPI VOLUME tsGetVolume(TS_DEVICE dev);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*------------------------------------------------------------------------ */
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#endif
|