📄 ttalib.h
字号:
/* * ttalib.h * * Description: TTAv1 player library prototypes * Developed by: Alexander Djourik <ald@true-audio.com> * Pavel Zhilin <pzh@true-audio.com> * * Copyright (c) 2004 True Audio Software. All rights reserved. * *//* * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the True Audio Software nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */#ifndef TTALIB_H_#define TTALIB_H_#include "..\..\common\common.h"#if _MSC_VER > 1000
#pragma warning(pop)
#endif
//#define _BIG_ENDIAN#define MAX_BPS 24 // Max supported Bit resolution#define MAX_NCH 8 // Max supported number of channels#define MAX_LINE 1024// return codes#define NO_ERROR 0 // No errors found#define OPEN_ERROR 1 // Can't open file#define FORMAT_ERROR 2 // Unknown TTA format version#define PLAYER_ERROR 3 // Not supported file format#define FILE_ERROR 4 // File is corrupted#define READ_ERROR 5 // Can't read from file#define MEMORY_ERROR 6 // Insufficient memory available#define FRAME_TIME 1.04489795918367346939#define SEEK_STEP (int)(FRAME_TIME * 1000)#define ISO_BUFFER_LENGTH (1024*32)#define ISO_NBUFFERS (8)#define ISO_BUFFERS_SIZE (ISO_BUFFER_LENGTH*ISO_NBUFFERS)#define PCM_BUFFER_LENGTH (4608)typedef struct { unsigned char name[MAX_LINE]; unsigned char title[MAX_LINE]; unsigned char artist[MAX_LINE]; unsigned char album[MAX_LINE]; unsigned char comment[MAX_LINE]; unsigned char year[5]; unsigned char track[3]; unsigned char genre[256]; unsigned int size; unsigned char id3has;} id3_info;typedef struct { format_reader* Reader; // file handle unsigned int FILESIZE; // compressed size unsigned short NCH; // number of channels unsigned short BPS; // bits per sample unsigned short BSIZE; // byte size unsigned short FORMAT; // audio format unsigned int SAMPLERATE; // samplerate (sps) unsigned int DATALENGTH; // data length in samples unsigned int FRAMELEN; // frame length unsigned int LENGTH; // playback time (sec) unsigned int STATE; // return code unsigned int DATAPOS; // size of ID3v2 header unsigned int BITRATE; // average bitrate (kbps) double COMPRESS; // compression ratio id3_info ID3; // ID3 information} tta_info;/*********************** Library functions *************************/int open_tta_file ( // FUNCTION: opens TTA file //const char *filename, // file to open tta_info *info, // file info structure unsigned int offset); // ID3v2 header size/* * RETURN VALUE * This function returns 0 if success. Otherwise, -1 is returned * and the variable STATE of the currently using info structure * is set to indicate the error. * */void close_tta_file ( // FUNCTION: closes currently playing file tta_info *info); // file info structureint set_position ( // FUNCTION: sets playback position unsigned int pos); // seek position = seek_time_ms / SEEK_STEP/* * RETURN VALUE * This function returns 0 if success. Otherwise, -1 is returned * and the variable STATE of the currently using info structure * is set to indicate the error. * */int player_init ( // FUNCTION: initializes TTA player tta_info *info); // file info structure/* * RETURN VALUE * This function returns 0 if success. Otherwise, -1 is returned * and the variable STATE of the currently using info structure * is set to indicate the error. * */void player_stop (void); // FUNCTION: destroys memory poolsint get_samples ( // FUNCTION: decode PCM_BUFFER_LENGTH samples unsigned char *buffer); // into the current PCM buffer position/* * RETURN VALUE * This function returns the number of samples successfully decoded. * Otherwise, -1 is returned and the variable STATE of the currently * using info structure is set to indicate the error. * */const char *get_error_str (int error); // FUNCTION: get error description#endif /* TTALIB_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -