mirror of
https://github.com/WinampDesktop/winamp.git
synced 2024-12-18 19:55:52 +01:00
155 lines
4.6 KiB
C
155 lines
4.6 KiB
C
|
/***************************************************************************\
|
|||
|
*
|
|||
|
* MPEG Layer3-Audio Decoder
|
|||
|
* <EFBFBD> 1997-2006 by Fraunhofer IIS
|
|||
|
* All Rights Reserved
|
|||
|
*
|
|||
|
* filename: mp3sscdef.h
|
|||
|
* project : ---
|
|||
|
* author : Martin Sieler
|
|||
|
* date : 1998-02-16
|
|||
|
* contents/description: ssc definitions (Structured Status Code)
|
|||
|
*
|
|||
|
*
|
|||
|
\***************************************************************************/
|
|||
|
|
|||
|
/*
|
|||
|
* $Date: 2010/11/17 20:46:04 $
|
|||
|
* $Id: mp3sscdef.h,v 1.1 2010/11/17 20:46:04 audiodsp Exp $
|
|||
|
*/
|
|||
|
|
|||
|
#ifndef __MP3SSCDEF_H__
|
|||
|
#define __MP3SSCDEF_H__
|
|||
|
|
|||
|
/*------------------------- includes --------------------------------------*/
|
|||
|
|
|||
|
/*-------------------------- defines --------------------------------------*/
|
|||
|
|
|||
|
/*-------------------------------------------------------------------------*\
|
|||
|
*
|
|||
|
* Standard error/return values are 32 bit values layed out as follows:
|
|||
|
*
|
|||
|
* 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
|
|||
|
* 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
|
|||
|
* +---+-+-+-----------------------+-------------------------------+
|
|||
|
* |Sev|C|R| Handler | Code |
|
|||
|
* +---+-+-+-----------------------+-------------------------------+
|
|||
|
*
|
|||
|
* where
|
|||
|
*
|
|||
|
* Sev - is the severity code
|
|||
|
*
|
|||
|
* 00 - Success
|
|||
|
* 01 - Informational
|
|||
|
* 10 - Warning
|
|||
|
* 11 - Error
|
|||
|
*
|
|||
|
* C - is the Customer code flag
|
|||
|
*
|
|||
|
* R - is a reserved bit
|
|||
|
*
|
|||
|
* Handler - is the handler code
|
|||
|
*
|
|||
|
* Code - is the facility's status code
|
|||
|
*
|
|||
|
\*-------------------------------------------------------------------------*/
|
|||
|
|
|||
|
/*
|
|||
|
* define the Severity codes
|
|||
|
*/
|
|||
|
|
|||
|
#define SSC_SEV_SUCCESS 0x00000000L
|
|||
|
#define SSC_SEV_INFO 0x40000000L
|
|||
|
#define SSC_SEV_WARNING 0x80000000L
|
|||
|
#define SSC_SEV_ERROR 0xc0000000L
|
|||
|
|
|||
|
/*
|
|||
|
* define masks to extract the fields
|
|||
|
*/
|
|||
|
|
|||
|
#define SSC_MASK_SEVERITY 0xc0000000L
|
|||
|
#define SSC_MASK_HANDLER 0x0fff0000L
|
|||
|
#define SSC_MASK_CODE 0x0000ffffL
|
|||
|
|
|||
|
/*
|
|||
|
* define MACROS to test an error/return code
|
|||
|
*/
|
|||
|
|
|||
|
#define SSC_GETSEV(x) ( (x) & SSC_MASK_SEVERITY )
|
|||
|
|
|||
|
|
|||
|
/* Check, if an SSC indicates success */
|
|||
|
#define SSC_SUCCESS(x) (((SSC_GETSEV(x)==SSC_SEV_SUCCESS)||(SSC_GETSEV(x)==SSC_SEV_INFO))?1:0)
|
|||
|
|
|||
|
/* Check, if an SSC indicates an information */
|
|||
|
#define SSC_INFO(x) ((SSC_GETSEV(x)==SSC_SEV_INFO)?1:0)
|
|||
|
|
|||
|
/* Check, if an SSC indicates a warning */
|
|||
|
#define SSC_WARNING(x) ((SSC_GETSEV(x)==SSC_SEV_WARNING)?1:0)
|
|||
|
|
|||
|
/* Check, if an SSC indicates an error */
|
|||
|
#define SSC_ERROR(x) ((SSC_GETSEV(x)==SSC_SEV_ERROR)?1:0)
|
|||
|
|
|||
|
/*-------------------------------------------------------------------------*\
|
|||
|
*
|
|||
|
* SSC classes (handler)
|
|||
|
*
|
|||
|
\*-------------------------------------------------------------------------*/
|
|||
|
|
|||
|
#define SSC_HANDLER_GEN 0x00000000L
|
|||
|
|
|||
|
#define SSC_I_GEN (SSC_SEV_INFO | SSC_HANDLER_GEN)
|
|||
|
#define SSC_W_GEN (SSC_SEV_WARNING | SSC_HANDLER_GEN)
|
|||
|
#define SSC_E_GEN (SSC_SEV_ERROR | SSC_HANDLER_GEN)
|
|||
|
|
|||
|
/*-------------------------------------------------------------------------*/
|
|||
|
|
|||
|
#define SSC_HANDLER_IO 0x00010000L
|
|||
|
|
|||
|
#define SSC_I_IO (SSC_SEV_INFO | SSC_HANDLER_IO)
|
|||
|
#define SSC_W_IO (SSC_SEV_WARNING | SSC_HANDLER_IO)
|
|||
|
#define SSC_E_IO (SSC_SEV_ERROR | SSC_HANDLER_IO)
|
|||
|
|
|||
|
/*-------------------------------------------------------------------------*/
|
|||
|
|
|||
|
#define SSC_HANDLER_MPGA 0x01010000L
|
|||
|
|
|||
|
#define SSC_I_MPGA (SSC_SEV_INFO | SSC_HANDLER_MPGA)
|
|||
|
#define SSC_W_MPGA (SSC_SEV_WARNING | SSC_HANDLER_MPGA)
|
|||
|
#define SSC_E_MPGA (SSC_SEV_ERROR | SSC_HANDLER_MPGA)
|
|||
|
|
|||
|
/*-------------------------------------------------------------------------*\
|
|||
|
*
|
|||
|
* SSC codes
|
|||
|
*
|
|||
|
\*-------------------------------------------------------------------------*/
|
|||
|
|
|||
|
typedef enum
|
|||
|
{
|
|||
|
SSC_OK = 0x00000000L,
|
|||
|
|
|||
|
SSC_E_WRONGPARAMETER = (SSC_E_GEN | 1),
|
|||
|
SSC_E_OUTOFMEMORY = (SSC_E_GEN | 2),
|
|||
|
SSC_E_INVALIDHANDLE = (SSC_E_GEN | 3),
|
|||
|
|
|||
|
SSC_E_IO_GENERIC = (SSC_W_IO | 1),
|
|||
|
SSC_E_IO_OPENFAILED = (SSC_W_IO | 2),
|
|||
|
SSC_E_IO_CLOSEFAILED = (SSC_W_IO | 3),
|
|||
|
SSC_E_IO_READFAILED = (SSC_W_IO | 4),
|
|||
|
|
|||
|
SSC_I_MPGA_CRCERROR = (SSC_I_MPGA | 1),
|
|||
|
SSC_I_MPGA_NOMAINDATA = (SSC_I_MPGA | 2),
|
|||
|
|
|||
|
SSC_E_MPGA_GENERIC = (SSC_E_MPGA | 1),
|
|||
|
SSC_E_MPGA_WRONGLAYER = (SSC_E_MPGA | 2),
|
|||
|
SSC_E_MPGA_BUFFERTOOSMALL = (SSC_E_MPGA | 3),
|
|||
|
|
|||
|
SSC_W_MPGA_SYNCSEARCHED = (SSC_W_MPGA | 1),
|
|||
|
SSC_W_MPGA_SYNCLOST = (SSC_W_MPGA | 2),
|
|||
|
SSC_W_MPGA_SYNCNEEDDATA = (SSC_W_MPGA | 3),
|
|||
|
SSC_W_MPGA_SYNCEOF = (SSC_W_MPGA | 4)
|
|||
|
} SSC;
|
|||
|
|
|||
|
/*-------------------------------------------------------------------------*/
|
|||
|
#endif
|