| #pragma once |
| |
| #ifndef __TSOUND_H__ |
| #define __TSOUND_H__ |
| |
| #include "tmacro.h" |
| |
| #undef TNZAPI |
| #ifdef TNZ_IS_AUDIOLIB |
| #define TNZAPI TNZ_EXPORT_API |
| #else |
| #define TNZAPI TNZ_IMPORT_API |
| #endif |
| |
| |
| |
| #ifndef TSAPI |
| #define TSAPI extern |
| #endif |
| |
| typedef int TS_RESULT; |
| |
| enum { |
| TS_NOERROR = 0, |
| TS_BADFILE, |
| TS_BADFORMAT, |
| TS_ENV, |
| TS_NOT_ALLOCATED, |
| TS_BADDEVICE, |
| TS_DEVICEBUSY, |
| TS_NODRIVER, |
| TS_PLAYERROR, |
| TS_RECERROR, |
| TS_NODATA, |
| TS_OK_PLAYSTOPPED, |
| TS_OK_RECSTOPPED |
| |
| }; |
| |
| typedef unsigned long DWORD; |
| |
| |
| |
| |
| typedef unsigned char *PBYTE; |
| |
| typedef const char *TS_STRING; |
| |
| |
| |
| |
| |
| |
| typedef int AUDIOFRAME; |
| typedef float TIME; |
| typedef DWORD SAMPLE; |
| typedef DWORD TS_SIZE; |
| typedef float HERTZ; |
| typedef float PRESSURE; |
| typedef float AMPLIFICATION; |
| typedef unsigned int VOLUME; |
| |
| |
| #define TS_CINEMA_FRAMEDURATION ((double)1 / 24) |
| #define TS_PAL_FRAMEDURATION ((double)1 / 25) |
| #define TS_NTSC_FRAMEDURATION ((double)1 / 30) |
| |
| |
| |
| |
| typedef enum { TS_MONO = 1, TS_STEREO = 2 } TS_DIGITAL_CHANNELS; |
| |
| |
| |
| |
| |
| |
| typedef enum { |
| TS_RATE_8000 = 8000, |
| TS_RATE_11025 = 11025, |
| TS_RATE_16000 = 16000, |
| TS_RATE_22050 = 22050, |
| TS_RATE_32000 = 32000, |
| TS_RATE_44100 = 44100, |
| TS_RATE_48000 = 48000 |
| } TS_DIGITAL_QUALITY; |
| |
| #define TS_VOICE_QUALITY TS_RATE_8000 |
| #define TS_PHONE_QUALITY TS_RATE_11025 |
| #define TS_RADIO_QUALITY TS_RATE_22050 |
| #define TS_CD_QUALITY TS_RATE_44100 |
| |
| |
| |
| |
| |
| |
| typedef enum { |
| TS_8BIT_SAMPLES = 8, |
| TS_16BIT_SAMPLES = 16, |
| #ifndef WIN32 |
| TS_24BIT_SAMPLES = 24 |
| #else |
| TS_24BIT_SAMPLES = 24 |
| #endif |
| } TS_DIGITAL_SAMPLES; |
| |
| |
| |
| |
| enum { |
| TS_MASK_DEFAULT = 0, |
| TS_MASK_ORIGIN = (1 << 0), |
| TS_MASK_DURATION = (1 << 1), |
| TS_MASK_QUALITY = (1 << 2), |
| TS_MASK_CHANNEL = (1 << 3), |
| TS_MASK_SAMPLE = (1 << 4), |
| TS_MASK_FILENAME = (1 << 5), |
| TS_MASK_ALL = TS_MASK_ORIGIN | TS_MASK_DURATION | TS_MASK_QUALITY | |
| TS_MASK_CHANNEL | TS_MASK_SAMPLE | TS_MASK_FILENAME, |
| TS_MASK_CREATE = TS_MASK_QUALITY | TS_MASK_CHANNEL | TS_MASK_SAMPLE |
| }; |
| |
| |
| |
| |
| typedef struct _TS_STRACK_INFO { |
| TIME tmOrigin; |
| TIME tmDuration; |
| char *tmFilename; |
| |
| TS_DIGITAL_CHANNELS dChannels; |
| TS_DIGITAL_QUALITY dSamplingRate; |
| TS_DIGITAL_SAMPLES dBitsPerSample; |
| |
| DWORD dwMask; |
| } * TS_STRACK_INFO; |
| |
| typedef struct _TS_STRACK *TS_STRACK; |
| |
| |
| |
| |
| |
| typedef enum { |
| TS_INPUT_LINE, |
| TS_INPUT_MIC, |
| TS_INPUT_DIGITAL, |
| TS_INPUT_DUMMY |
| } TS_DEVTYPE; |
| |
| typedef enum { TS_UNIQUE = 0, TS_RIGHT, TS_LEFT } TS_CHAN; |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| typedef struct _TS_DEVICE *TS_DEVICE; |
| |
| |
| |
| |
| |
| |
| #define ALL -1 |
| #define TS_BEGIN MININT |
| #define TS_END MAXINT |
| |
| |
| |
| |
| TNZAPI TSAPI TS_STRACK tsCreateStrack(TS_STRACK_INFO info); |
| TNZAPI TSAPI TS_RESULT tsDestroyStrack(TS_STRACK strack); |
| |
| |
| |
| |
| |
| |
| |
| TNZAPI TSAPI AUDIOFRAME tsTimeToFrame(TIME time); |
| TNZAPI TSAPI TIME tsFrameToTime(AUDIOFRAME frames); |
| TNZAPI TSAPI TIME tsFracFrameToTime(float frac_frames); |
| TNZAPI TSAPI SAMPLE tsFrameToSample(AUDIOFRAME frames, TS_STRACK strack); |
| TNZAPI TSAPI AUDIOFRAME tsSampleToFrame(SAMPLE samples, TS_STRACK strack); |
| TNZAPI TSAPI AUDIOFRAME tsByteToFrame(TS_SIZE bytes, TS_STRACK strack); |
| TNZAPI TSAPI TS_SIZE tsFrameToByte(AUDIOFRAME frames, TS_STRACK strack); |
| TNZAPI TSAPI SAMPLE tsTimeToSample(TIME time, TS_STRACK strack); |
| TNZAPI TSAPI TIME tsSampleToTime(SAMPLE samples, TS_STRACK strack); |
| |
| TNZAPI TSAPI void tsAreyousure_to_quit(void); |
| |
| |
| |
| |
| TNZAPI TSAPI TS_RESULT tsFileInfo(TS_STRING szFileName, TS_STRACK_INFO info); |
| |
| TNZAPI TSAPI TS_STRACK tsLoad(TS_STRING szFileName, AUDIOFRAME from, |
| AUDIOFRAME to); |
| |
| TNZAPI TSAPI TS_STRACK tsLoadSubsampled(TS_STRING szFileName, |
| TS_STRACK_INFO desired_info, |
| AUDIOFRAME from, AUDIOFRAME to); |
| |
| |
| |
| |
| |
| TNZAPI TSAPI TS_RESULT tsSave(TS_STRACK strack, TS_STRING szFileName); |
| |
| |
| |
| TNZAPI TSAPI void tsDelete(TS_STRACK strack, AUDIOFRAME from, AUDIOFRAME to); |
| |
| TNZAPI TSAPI void tsClear(TS_STRACK strack, AUDIOFRAME from, AUDIOFRAME to); |
| |
| TNZAPI TSAPI void tsBlank(TS_STRACK strack, AUDIOFRAME point, AUDIOFRAME range); |
| |
| |
| TNZAPI TSAPI TS_RESULT tsCopy(TS_STRACK src_strack, AUDIOFRAME src_from, |
| AUDIOFRAME src_to, TS_STRACK dest_strack, |
| AUDIOFRAME dest_from); |
| TNZAPI TSAPI TS_RESULT tsInsert(TS_STRACK src_strack, AUDIOFRAME src_from, |
| AUDIOFRAME src_to, TS_STRACK dest_strack, |
| AUDIOFRAME dest_from); |
| |
| |
| |
| |
| TNZAPI TSAPI TS_RESULT tsConvert(TS_STRACK src_strack, |
| TS_STRACK_INFO dest_info); |
| TNZAPI TSAPI TS_RESULT tsAmplify(TS_STRACK strack, AMPLIFICATION amp); |
| |
| |
| |
| TNZAPI TSAPI AUDIOFRAME tsGetFrames(TS_STRACK strack); |
| TNZAPI TSAPI PBYTE tsBuffer(TS_STRACK strack); |
| |
| TNZAPI TSAPI TS_RESULT tsInfo(TS_STRACK strack, TS_STRACK_INFO info); |
| TNZAPI TSAPI PRESSURE tsGetPressure(TS_STRACK strack, TIME time, TS_CHAN chan); |
| TNZAPI TSAPI PRESSURE tsGetMaxPressure(TS_STRACK strack, TS_CHAN chan); |
| TNZAPI TSAPI TS_STRING tsAudioFileExtension(void); |
| |
| #ifndef WIN32 |
| TNZAPI TSAPI int tsSupportDigitalIn(void); |
| #endif |
| |
| |
| TNZAPI TSAPI TBOOL tsNeedsRefill(void); |
| TNZAPI TSAPI TBOOL |
| tsRefill(void); |
| |
| |
| |
| |
| TNZAPI TSAPI TS_RESULT tsPlay(TS_STRACK strack, TS_DEVICE dev, AUDIOFRAME from, |
| AUDIOFRAME to); |
| TNZAPI TSAPI TS_RESULT tsNewPlay(TS_STRACK strack, TS_DEVICE dev, |
| AUDIOFRAME from, AUDIOFRAME to); |
| TNZAPI TSAPI TS_RESULT tsPlayLoop(TS_STRACK strack, TS_DEVICE dev, |
| AUDIOFRAME from, AUDIOFRAME to); |
| TNZAPI TSAPI TBOOL tsIsPlaying(TS_STRACK strack, TS_DEVICE dev); |
| TNZAPI TSAPI TBOOL tsIsNewPlaying(TS_STRACK strack, TS_DEVICE dev); |
| TNZAPI TSAPI TS_RESULT tsSyncPlay(TS_STRACK strack, TS_DEVICE dev, |
| AUDIOFRAME from, AUDIOFRAME to); |
| TNZAPI TSAPI TS_RESULT tsStopPlaying(TS_STRACK strack, TS_DEVICE dev); |
| TNZAPI TSAPI TS_RESULT tsStopNewPlaying(TS_STRACK strack, TS_DEVICE dev); |
| |
| TNZAPI TSAPI TS_RESULT tsRecord(TS_STRACK strack, TS_DEVICE dev, |
| AUDIOFRAME from, AUDIOFRAME to); |
| TNZAPI TSAPI TBOOL tsIsRecording(TS_STRACK strack, TS_DEVICE dev); |
| TNZAPI TSAPI TS_RESULT tsSyncRecord(TS_STRACK strack, TS_DEVICE dev, |
| AUDIOFRAME from, AUDIOFRAME to); |
| TNZAPI TSAPI TS_RESULT tsStopRecording(TS_STRACK strack, TS_DEVICE dev); |
| |
| |
| |
| |
| |
| |
| |
| TNZAPI TSAPI TS_DEVICE tsInitDevice(TS_DEVTYPE type, TS_STRACK_INFO info, |
| char *mode); |
| TNZAPI TSAPI TS_RESULT tsCloseDevice(TS_DEVICE dev); |
| TNZAPI TSAPI TBOOL tsCheckOutput(void); |
| TNZAPI TSAPI void tsSetVolume(TS_DEVICE dev, VOLUME vol); |
| TNZAPI TSAPI void tsSetInVolume(TS_DEVICE dev, VOLUME vol); |
| TNZAPI TSAPI VOLUME tsGetVolume(TS_DEVICE dev); |
| |
| |
| |
| #endif |