228 lines
6.5 KiB
C
228 lines
6.5 KiB
C
/*
|
|
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/
|
|
#ifndef __PJMEDIA_AUDIODEV_AUDIODEV_ERRNO_H__
|
|
#define __PJMEDIA_AUDIODEV_AUDIODEV_ERRNO_H__
|
|
|
|
/**
|
|
* @file errno.h Error Codes
|
|
* @brief Audiodev specific error codes.
|
|
*/
|
|
|
|
#include <pjmedia-audiodev/config.h>
|
|
#include <pj/errno.h>
|
|
|
|
/**
|
|
* @defgroup error_codes Error Codes
|
|
* @ingroup audio_device_api
|
|
* @brief Audio devive library specific error codes.
|
|
* @{
|
|
*/
|
|
|
|
|
|
PJ_BEGIN_DECL
|
|
|
|
|
|
/**
|
|
* Start of error code relative to PJ_ERRNO_START_USER.
|
|
* This value is 420000.
|
|
*/
|
|
#define PJMEDIA_AUDIODEV_ERRNO_START \
|
|
(PJ_ERRNO_START_USER + PJ_ERRNO_SPACE_SIZE*5)
|
|
#define PJMEDIA_AUDIODEV_ERRNO_END \
|
|
(PJMEDIA_AUDIODEV_ERRNO_START + PJ_ERRNO_SPACE_SIZE - 1)
|
|
|
|
|
|
/**
|
|
* Mapping from PortAudio error codes to pjmedia error space.
|
|
*/
|
|
#define PJMEDIA_AUDIODEV_PORTAUDIO_ERRNO_START \
|
|
(PJMEDIA_AUDIODEV_ERRNO_END-10000)
|
|
#define PJMEDIA_AUDIODEV_PORTAUDIO_ERRNO_END \
|
|
(PJMEDIA_AUDIODEV_PORTAUDIO_ERRNO_START + 10000 -1)
|
|
/**
|
|
* Convert PortAudio error code to PJLIB error code.
|
|
* PortAudio error code range: 0 >= err >= -10000
|
|
*/
|
|
#define PJMEDIA_AUDIODEV_ERRNO_FROM_PORTAUDIO(err) \
|
|
((int)PJMEDIA_AUDIODEV_PORTAUDIO_ERRNO_START-err)
|
|
|
|
/**
|
|
* Mapping from Windows multimedia WaveIn error codes.
|
|
*/
|
|
#define PJMEDIA_AUDIODEV_WMME_IN_ERROR_START \
|
|
(PJMEDIA_AUDIODEV_ERRNO_START + 30000)
|
|
#define PJMEDIA_AUDIODEV_WMME_IN_ERROR_END \
|
|
(PJMEDIA_AUDIODEV_WMME_IN_ERROR_START + 1000 - 1)
|
|
/**
|
|
* Convert WaveIn operation error codes to PJLIB error space.
|
|
*/
|
|
#define PJMEDIA_AUDIODEV_ERRNO_FROM_WMME_IN(err) \
|
|
((int)PJMEDIA_AUDIODEV_WMME_IN_ERROR_START+err)
|
|
|
|
|
|
/**
|
|
* Mapping from Windows multimedia WaveOut error codes.
|
|
*/
|
|
#define PJMEDIA_AUDIODEV_WMME_OUT_ERROR_START \
|
|
(PJMEDIA_AUDIODEV_WMME_IN_ERROR_END + 1000)
|
|
#define PJMEDIA_AUDIODEV_WMME_OUT_ERROR_END \
|
|
(PJMEDIA_AUDIODEV_WMME_OUT_ERROR_START + 1000)
|
|
/**
|
|
* Convert WaveOut operation error codes to PJLIB error space.
|
|
*/
|
|
#define PJMEDIA_AUDIODEV_ERRNO_FROM_WMME_OUT(err) \
|
|
((int)PJMEDIA_AUDIODEV_WMME_OUT_ERROR_START+err)
|
|
|
|
|
|
/**
|
|
* Mapping from CoreAudio error codes to pjmedia error space.
|
|
*/
|
|
#define PJMEDIA_AUDIODEV_COREAUDIO_ERRNO_START \
|
|
(PJMEDIA_AUDIODEV_ERRNO_START+20000)
|
|
#define PJMEDIA_AUDIODEV_COREAUDIO_ERRNO_END \
|
|
(PJMEDIA_AUDIODEV_COREAUDIO_ERRNO_START + 20000 -1)
|
|
/**
|
|
* Convert CoreAudio error code to PJLIB error code.
|
|
* CoreAudio error code range: 0 >= err >= -10000
|
|
*/
|
|
#define PJMEDIA_AUDIODEV_ERRNO_FROM_COREAUDIO(err) \
|
|
((int)PJMEDIA_AUDIODEV_COREAUDIO_ERRNO_START-err)
|
|
|
|
/**
|
|
* Mapping from BDIMAD error codes to pjmedia error space.
|
|
*/
|
|
#define PJMEDIA_AUDIODEV_BDIMAD_ERROR_START \
|
|
(PJMEDIA_AUDIODEV_ERRNO_START + 40000)
|
|
#define PJMEDIA_AUDIODEV_BDIMAD_ERROR_END \
|
|
(PJMEDIA_AUDIODEV_BDIMAD_ERROR_START + 2000 - 1)
|
|
/**
|
|
* Convert BDIMAD error codes to PJLIB error space.
|
|
*/
|
|
#define PJMEDIA_AUDIODEV_ERRNO_FROM_BDIMAD(err) \
|
|
((int)PJMEDIA_AUDIODEV_BDIMAD_ERROR_START+err)
|
|
|
|
/************************************************************
|
|
* Audio Device API error codes
|
|
***********************************************************/
|
|
/**
|
|
* @hideinitializer
|
|
* General/unknown error.
|
|
*/
|
|
#define PJMEDIA_EAUD_ERR (PJMEDIA_AUDIODEV_ERRNO_START+1) /* 420001 */
|
|
|
|
/**
|
|
* @hideinitializer
|
|
* Unknown error from audio driver
|
|
*/
|
|
#define PJMEDIA_EAUD_SYSERR (PJMEDIA_AUDIODEV_ERRNO_START+2) /* 420002 */
|
|
|
|
/**
|
|
* @hideinitializer
|
|
* Audio subsystem not initialized
|
|
*/
|
|
#define PJMEDIA_EAUD_INIT (PJMEDIA_AUDIODEV_ERRNO_START+3) /* 420003 */
|
|
|
|
/**
|
|
* @hideinitializer
|
|
* Invalid audio device
|
|
*/
|
|
#define PJMEDIA_EAUD_INVDEV (PJMEDIA_AUDIODEV_ERRNO_START+4) /* 420004 */
|
|
|
|
/**
|
|
* @hideinitializer
|
|
* Found no devices
|
|
*/
|
|
#define PJMEDIA_EAUD_NODEV (PJMEDIA_AUDIODEV_ERRNO_START+5) /* 420005 */
|
|
|
|
/**
|
|
* @hideinitializer
|
|
* Unable to find default device
|
|
*/
|
|
#define PJMEDIA_EAUD_NODEFDEV (PJMEDIA_AUDIODEV_ERRNO_START+6) /* 420006 */
|
|
|
|
/**
|
|
* @hideinitializer
|
|
* Device not ready
|
|
*/
|
|
#define PJMEDIA_EAUD_NOTREADY (PJMEDIA_AUDIODEV_ERRNO_START+7) /* 420007 */
|
|
|
|
/**
|
|
* @hideinitializer
|
|
* The audio capability is invalid or not supported
|
|
*/
|
|
#define PJMEDIA_EAUD_INVCAP (PJMEDIA_AUDIODEV_ERRNO_START+8) /* 420008 */
|
|
|
|
/**
|
|
* @hideinitializer
|
|
* The operation is invalid or not supported
|
|
*/
|
|
#define PJMEDIA_EAUD_INVOP (PJMEDIA_AUDIODEV_ERRNO_START+9) /* 420009 */
|
|
|
|
/**
|
|
* @hideinitializer
|
|
* Bad or invalid audio device format
|
|
*/
|
|
#define PJMEDIA_EAUD_BADFORMAT (PJMEDIA_AUDIODEV_ERRNO_START+10) /* 4200010 */
|
|
|
|
/**
|
|
* @hideinitializer
|
|
* Invalid audio device sample format
|
|
*/
|
|
#define PJMEDIA_EAUD_SAMPFORMAT (PJMEDIA_AUDIODEV_ERRNO_START+11) /* 4200011 */
|
|
|
|
/**
|
|
* @hideinitializer
|
|
* Bad latency setting
|
|
*/
|
|
#define PJMEDIA_EAUD_BADLATENCY (PJMEDIA_AUDIODEV_ERRNO_START+12) /* 4200012 */
|
|
|
|
/**
|
|
* @hideinitializer
|
|
* General WASAPI error
|
|
*/
|
|
#define PJMEDIA_EAUD_WASAPI_ERROR \
|
|
(PJMEDIA_AUDIODEV_ERRNO_START+13) /* 4200013 */
|
|
|
|
/**
|
|
* Get error message for the specified error code. Note that this
|
|
* function is only able to decode PJMEDIA Audiodev specific error code.
|
|
* Application should use pj_strerror(), which should be able to
|
|
* decode all error codes belonging to all subsystems (e.g. pjlib,
|
|
* pjmedia, pjsip, etc).
|
|
*
|
|
* @param status The error code.
|
|
* @param buffer The buffer where to put the error message.
|
|
* @param bufsize Size of the buffer.
|
|
*
|
|
* @return The error message as NULL terminated string,
|
|
* wrapped with pj_str_t.
|
|
*/
|
|
PJ_DECL(pj_str_t) pjmedia_audiodev_strerror(pj_status_t status, char *buffer,
|
|
pj_size_t bufsize);
|
|
|
|
|
|
PJ_END_DECL
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
|
|
#endif /* __PJMEDIA_AUDIODEV_AUDIODEV_ERRNO_H__ */
|
|
|