source: roaraudio/include/libroar/error.h @ 5539:8ff56da299af

Last change on this file since 5539:8ff56da299af was 5539:8ff56da299af, checked in by phi, 12 years ago

typo

File size: 3.9 KB
Line 
1//error.h:
2
3/*
4 *      Copyright (C) Philipp 'ph3-der-loewe' Schafft - 2008-2012
5 *
6 *  This file is part of libroar a part of RoarAudio,
7 *  a cross-platform sound system for both, home and professional use.
8 *  See README for details.
9 *
10 *  This file is free software; you can redistribute it and/or modify
11 *  it under the terms of the GNU General Public License version 3
12 *  as published by the Free Software Foundation.
13 *
14 *  libroar is distributed in the hope that it will be useful,
15 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
16 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 *  GNU General Public License for more details.
18 *
19 *  You should have received a copy of the GNU General Public License
20 *  along with this software; see the file COPYING.  If not, write to
21 *  the Free Software Foundation, 51 Franklin Street, Fifth Floor,
22 *  Boston, MA 02110-1301, USA.
23 *
24 *  NOTE for everyone want's to change something and send patches:
25 *  read README and HACKING! There a addition information on
26 *  the license of this document you need to read before you send
27 *  any patches.
28 *
29 *  NOTE for uses of non-GPL (LGPL,...) software using libesd, libartsc
30 *  or libpulse*:
31 *  The libs libroaresd, libroararts and libroarpulse link this lib
32 *  and are therefore GPL. Because of this it may be illigal to use
33 *  them with any software that uses libesd, libartsc or libpulse*.
34 */
35
36#ifndef _LIBROARERROR_H_
37#define _LIBROARERROR_H_
38
39#include "libroar.h"
40
41struct roar_message;
42
43/*
44  Off Size (Byte)
45    | | /- Name
46    0 1 Version
47    1 1 Cmd
48    2 1 RA Errno
49    3 1 RA SubErrno
50    4 2 Portable Errno
51    6 2 Flags
52   (8 0 Datalen)
53    8 N Data
54 */
55
56struct roar_error_frame {
57 int version;
58 int cmd;
59 int ra_errno;
60 int ra_suberrno;
61 int p_errno;
62 uint16_t flags;
63 size_t datalen;
64 void * data;
65};
66
67struct roar_error_state {
68 size_t refc;
69 int libroar_error; // roar_error
70 int system_error; // errno
71#ifdef ROAR_TARGET_WIN32
72 int winsock_error; // WSAGetLastError(), WSASetLastError()
73#endif
74#ifdef ROAR_HAVE_VAR_H_ERRNO
75 int syssock_herror; // h_errno
76#endif
77#ifdef __YIFF__
78 yiffc_error_t yiffc_error; // yiffc_error
79#endif
80};
81
82struct roar_error_frame * roar_err_errorframe(void);
83
84int    roar_err_init(struct roar_error_frame * frame);
85void * roar_err_buildmsg(struct roar_message * mes, void ** data, struct roar_error_frame * frame);
86int    roar_err_parsemsg(struct roar_message * mes, void *  data, struct roar_error_frame * frame);
87
88#define roar_error (*roar_errno2())
89int *  roar_errno2(void);
90
91// clear RoarAudio's error value
92void   roar_err_clear(void);
93
94// clear system's error value (errno)
95void   roar_err_clear_errno(void);
96
97// clear all error values (to be used before calling roar_err_update())
98void   roar_err_clear_all(void);
99
100// syncs RoarAudio's and system's error values
101void   roar_err_update(void);
102
103// test of system's error value is set to 'no error'
104int    roar_err_is_errno_clear(void);
105
106// set RoarAudio's error value
107void   roar_err_set(const int error);
108
109// sync RoarAudio's error value with the value from the system
110void   roar_err_from_errno(void);
111
112// sync systen's error value with the value from RoarAudio
113void   roar_err_to_errno(void);
114
115// Resets the stored state to 'no error' state. This can be used
116// to init the state.
117int    roar_err_initstore(struct roar_error_state * state);
118
119// store a error state (both libroar and system)
120// returnes the error or ROAR_ERROR_NONE on success so it does not alter global error state.
121int    roar_err_store(struct roar_error_state * state);
122
123// restore error state to values at time of call to roar_err_store()
124// returnes the error or ROAR_ERROR_NONE on success so it does not alter global error state.
125int    roar_err_restore(struct roar_error_state * state);
126
127// Return a string descriping the error
128const char * roar_error2str(const int error);
129
130// Error string looking like a read only variable.
131#define roar_errorstring (roar_error2str(roar_error))
132
133#endif
134
135//ll
Note: See TracBrowser for help on using the repository browser.