ttalib.h
资源名称:tcpmp.rar [点击查看]
上传用户:wstnjxml
上传日期:2014-04-03
资源大小:7248k
文件大小:5k
源码类别:
Windows CE
开发平台:
C/C++
- /* * 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 "....commoncommon.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 structure int 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 pools int 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_ */