1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258
|
/* Libvisual - The audio visualisation framework.
*
* Copyright (C) 2004, 2005, 2006 Dennis Smit <ds@nerds-incorporated.org>
*
* Authors: Dennis Smit <ds@nerds-incorporated.org>
*
* $Id: lv_error.h,v 1.40 2006/01/27 20:18:26 synap Exp $
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1
* 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 Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser 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 _LV_ERROR_H
#define _LV_ERROR_H
#include <libvisual/lv_defines.h>
VISUAL_BEGIN_DECLS
/* WARNING when you add an new error to this list, make sure that you update lv_error.c it's
* human readable string list as well!!! */
/**
* Enumerate of all possible numeric error values.
*/
enum {
/* Ok! */
VISUAL_OK, /**< No error. */
/* Standard error entries */
VISUAL_ERROR_GENERAL, /**< General error. */
VISUAL_ERROR_NULL, /**< Something is NULL that shouldn't be. */
VISUAL_ERROR_IMPOSSIBLE, /**< The impossible happened, this should never happen. */
/* Error entries for the VisActor system */
VISUAL_ERROR_ACTOR_NULL, /**< The VisActor is NULL. */
VISUAL_ERROR_ACTOR_VIDEO_NULL, /**< The VisVideo target member in the VisActor is NULL. */
VISUAL_ERROR_ACTOR_PLUGIN_NULL, /**< The VisActor plugin in this context is NULL. */
VISUAL_ERROR_ACTOR_GL_NEGOTIATE, /**< Tried depth forcing a GL VisACtor. */
/* Error entries for the VisAudio system */
VISUAL_ERROR_AUDIO_NULL, /**< The VisAudio is NULL. */
VISUAL_ERROR_AUDIO_SAMPLEPOOL_NULL, /**< The VisAudioSamplePool is NULL. */
VISUAL_ERROR_AUDIO_SAMPLEPOOL_CHANNEL_NULL, /**< The VisAudioSamplePoolChannel is NULL. */
VISUAL_ERROR_AUDIO_SAMPLE_NULL, /**< The VisAudioSample is NULL. */
/* Error entries for the VisBMP system */
VISUAL_ERROR_BMP_NO_BMP, /**< Not a bitmap file. */
VISUAL_ERROR_BMP_NOT_FOUND, /**< File not found. */
VISUAL_ERROR_BMP_NOT_SUPPORTED, /**< File format not supported. */
VISUAL_ERROR_BMP_CORRUPTED, /**< Bitmap file is corrupted. */
/* Error entries for the VisBuffer system */
VISUAL_ERROR_BUFFER_NULL, /**< The VisBuffer is NULL. */
VISUAL_ERROR_BUFFER_OUT_OF_BOUNDS, /**< The requested operation would be out of bounds. */
/* Error entries for the VisCache system */
VISUAL_ERROR_CACHE_NULL, /**< The VisCache is NULL. */
/* Error entries for the VisCollection system */
VISUAL_ERROR_COLLECTION_NULL, /**< The VisCollection is NULL. */
VISUAL_ERROR_COLLECTION_ITER_NULL, /**< The VisCollectionIter is NULL. */
/* Error entries for the VisColor system */
VISUAL_ERROR_COLOR_NULL, /**< The VisColor is NULL. */
/* Error entries for the VisConfig system */
VISUAL_ERROR_CONFIG_REGISTRY_NULL, /**< The VisConfigRegistry is NULL. */
VISUAL_ERROR_CONFIG_REGISTRY_SECTION_NULL, /**< The VisConfigRegistrySection is NULL. */
/* Error entries for arch related errors and VisCPU system */
VISUAL_ERROR_CPU_INVALID_CODE, /**< Can't run a section of code. */
VISUAL_ERROR_CPU_FEATURE_NOT_SUPPORTED, /**< CPU Feature is not supported. */
/* Error entries for the VisError system */
VISUAL_ERROR_ERROR_HANDLER_NULL, /**< Error handler is NULL. */
/* Error entries for the VisEvent system */
VISUAL_ERROR_EVENT_NULL, /**< The VisEvent is NULL. */
VISUAL_ERROR_EVENT_QUEUE_NULL, /**< The VisEventQueue is NULL. */
/* Error entries for the VisFourier system */
VISUAL_ERROR_FOURIER_NULL, /**< The VisFourier is NULL. */
VISUAL_ERROR_FOURIER_NOT_INITIALIZED, /**< The VisFourier subsystem is not initialized. */
/* Error entries for the VisGL system */
VISUAL_ERROR_GL_FUNCTION_NOT_SUPPORTED, /**< The native callback for a gl related function is not present. */
/* Error entries for the VisHashlist system */
VISUAL_ERROR_HASHLIST_NULL, /**< The VisHashlist is NULL. */
/* Error entries for the VisHashmap system */
VISUAL_ERROR_HASHMAP_NULL, /**< The VisHashmap is NULL. */
VISUAL_ERROR_HASHMAP_NOT_IN_MAP, /**< Key is not in hashmap. */
VISUAL_ERROR_HASHMAP_INVALID_KEY_TYPE, /**< Key type is not valid. */
/* Error entries for the VisInput system */
VISUAL_ERROR_INPUT_NULL, /**< The VisInput is NULL. */
VISUAL_ERROR_INPUT_PLUGIN_NULL, /**< The VisInputPlugin is NULL. */
/* Error entries for the VisLibvisual system */
VISUAL_ERROR_LIBVISUAL_NO_PATHS, /**< Paths can be added to plugin dir list. */
VISUAL_ERROR_LIBVISUAL_ALREADY_INITIALIZED, /**< Libvisual is already initialized. */
VISUAL_ERROR_LIBVISUAL_NOT_INITIALIZED, /**< Libvisual is not initialized. */
VISUAL_ERROR_LIBVISUAL_NO_REGISTRY, /**< No internal plugin registry is set up. */
/* Error entries for the VisList system */
VISUAL_ERROR_LIST_NULL, /**< The VisList is NULL. */
VISUAL_ERROR_LIST_ENTRY_NULL, /**< The VisListEntry is NULL. */
VISUAL_ERROR_LIST_ENTRY_INVALID, /**< The VisListEntry is invalid. */
/* Error entries for the VisMem system */
VISUAL_ERROR_MEM_NULL, /**< The memory pointer given is NULL. */
/* Error entries for the VisMorph system */
VISUAL_ERROR_MORPH_NULL, /**< The VisMorph is NULL. */
VISUAL_ERROR_MORPH_PLUGIN_NULL, /**< The VisMorphPlugin is NULL. */
/* Error entries for the VisOS system */
VISUAL_ERROR_OS_SCHED, /**< The scheduler related call wasn't successful. */
VISUAL_ERROR_OS_SCHED_NOT_SUPPORTED, /**< Scheduler operations are not supported on the platform. */
/* Error entries for the VisPalette system */
VISUAL_ERROR_PALETTE_NULL, /**< The VisPalette is NULL. */
VISUAL_ERROR_PALETTE_SIZE, /**< Given VisPalette entries are not of the same size. */
/* Error entries for the VisParam system */
VISUAL_ERROR_PARAM_NULL, /**< The VisParamEntry is NULL. */
VISUAL_ERROR_PARAM_CONTAINER_NULL, /**< The VisParamContainer is NULL. */
VISUAL_ERROR_PARAM_NOT_FOUND, /**< The requested VisParamEntry is not found. */
VISUAL_ERROR_PARAM_CALLBACK_NULL, /**< The given param change callback is NULL. */
VISUAL_ERROR_PARAM_CALLBACK_TOO_MANY, /**< Too many param change callbacks are registered. */
VISUAL_ERROR_PARAM_INVALID_TYPE, /**< The VisParamEntry is of invalid type. */
/* Error entries for the VisPlugin system */
VISUAL_ERROR_PLUGIN_NULL, /**< The VisPluginData is NULL. */
VISUAL_ERROR_PLUGIN_INFO_NULL, /**< The VisPluginInfo is NULL. */
VISUAL_ERROR_PLUGIN_REF_NULL, /**< The VisPluginRef is NULL. */
VISUAL_ERROR_PLUGIN_ENVIRON_NULL, /**< The VisPluginEnvironElement is NULL. */
VISUAL_ERROR_PLUGIN_NO_EVENT_HANDLER, /**< The plugin has no event handler registrated. */
VISUAL_ERROR_PLUGIN_HANDLE_NULL, /**< The dlopen handle of the plugin is NULL. */
VISUAL_ERROR_PLUGIN_ALREADY_REALIZED, /**< The plugin is already realized. */
VISUAL_ERROR_PLUGIN_NO_LIST, /**< The plugin list can't be found. */
/* Error entries for the VisRandom system */
VISUAL_ERROR_RANDOM_CONTEXT_NULL, /**< The VisRandomContext is NULL. */
/* Error entries for the VisRectangle system */
VISUAL_ERROR_RECTANGLE_NULL, /**< The VisRectangle is NULL. */
VISUAL_ERROR_RECTANGLE_OUT_OF_BOUNDS, /**< The VisRectangle operation is out of bounds. */
/* Error entries for the VisRingBuffer system */
VISUAL_ERROR_RINGBUFFER_NULL, /**< The VisRingBuffer is NULL. */
VISUAL_ERROR_RINGBUFFER_ENTRY_NULL, /**< The VisRingBufferEntry is NULL. */
VISUAL_ERROR_RINGBUFFER_DATAFUNC_NULL, /**< The VisRingBufferDataFunc is NULL. */
/* Error entries for the VisSonginfo system */
VISUAL_ERROR_SONGINFO_NULL, /**< The VisSongInfo is NULL. */
/* Error entries for the VisThread system */
VISUAL_ERROR_THREAD_NULL, /**< The VisThread is NULL. */
VISUAL_ERROR_THREAD_NOT_INITIALIZED, /**< The VisThread subsystem is not initialized. */
VISUAL_ERROR_THREAD_NOT_SUPPORTED, /**< The VisThread subsystem couldn't find a threading fallback. */
VISUAL_ERROR_THREAD_NOT_ENABLED, /**< The VisThread subsystem is disabled. */
VISUAL_ERROR_MUTEX_NULL, /**< The VisMutex is NULL. */
VISUAL_ERROR_MUTEX_LOCK_FAILURE, /**< Failed locking the VisMutex. */
VISUAL_ERROR_MUTEX_TRYLOCK_FAILURE, /**< Failed trylocking the VisMutex. */
VISUAL_ERROR_MUTEX_UNLOCK_FAILURE, /**< Failed unlocking the VisMutex. */
/* Error entries for the VisTransform system */
VISUAL_ERROR_TRANSFORM_NULL, /**< The VisTransform is NULL. */
VISUAL_ERROR_TRANSFORM_NEGOTIATE, /**< The VisTransform negotiate with the VisVideo failed. */
VISUAL_ERROR_TRANSFORM_PLUGIN_NULL, /**< The VisTransform plugin in this context is NULL. */
VISUAL_ERROR_TRANSFORM_VIDEO_NULL, /**< The VisVideo target member in the VisTransform is NULL. */
VISUAL_ERROR_TRANSFORM_PALETTE_NULL, /**< The VisPalette target member in this VisTransform is NULL. */
/* Error entries for the VisObject system */
VISUAL_ERROR_OBJECT_DTOR_FAILED, /**< The destructor assigned to a VisObject failed destroying the VisObject. */
VISUAL_ERROR_OBJECT_NULL, /**< The VisObject is NULL. */
VISUAL_ERROR_OBJECT_NOT_ALLOCATED, /**< The VisObject is not allocated. */
/* Error entries for the VisTime system */
VISUAL_ERROR_TIME_NULL, /**< The VisTime is NULL. */
VISUAL_ERROR_TIME_NO_USLEEP, /**< visual_time_usleep is not working on this system. */
VISUAL_ERROR_TIMER_NULL, /**< The VisTimer is NULL. */
/* Error entries for the VisUI system */
VISUAL_ERROR_UI_WIDGET_NULL, /**< The VisUIWidget is NULL. */
VISUAL_ERROR_UI_CONTAINER_NULL, /**< The VisUIContainer is NULL. */
VISUAL_ERROR_UI_BOX_NULL, /**< The VisUIBox is NULL. */
VISUAL_ERROR_UI_TABLE_NULL, /**< The VisUITable is NULL. */
VISUAL_ERROR_UI_NOTEBOOK_NULL, /**< The VisUINotebook is NULL. */
VISUAL_ERROR_UI_FRAME_NULL, /**< The VisUIFrame is NULL. */
VISUAL_ERROR_UI_LABEL_NULL, /**< The VisUILabel is NULL. */
VISUAL_ERROR_UI_IMAGE_NULL, /**< The VisUIImage is NULL. */
VISUAL_ERROR_UI_SEPARATOR_NULL, /**< The VisUISperator is NULL. */
VISUAL_ERROR_UI_MUTATOR_NULL, /**< The VisUIMutator is NULL. */
VISUAL_ERROR_UI_RANGE_NULL, /**< The VisUIRange is NULL. */
VISUAL_ERROR_UI_ENTRY_NULL, /**< The VisUIEntry is NULL. */
VISUAL_ERROR_UI_SLIDER_NULL, /**< The VisUISlider is NULL. */
VISUAL_ERROR_UI_NUMERIC_NULL, /**< The VisUINumeric is NULL. */
VISUAL_ERROR_UI_COLOR_NULL, /**< The VisUIColor is NULL. */
VISUAL_ERROR_UI_CHOICE_NULL, /**< The VisUIChoice is NULL. */
VISUAL_ERROR_UI_POPUP_NULL, /**< The VisUIPopup is NULL. */
VISUAL_ERROR_UI_LIST_NULL, /**< The VisUIList is NULL. */
VISUAL_ERROR_UI_RADIO_NULL, /**< The VisUIRadio is NULL. */
VISUAL_ERROR_UI_CHECKBOX_NULL, /**< The VisUICheckbox is NULL. */
VISUAL_ERROR_UI_CHOICE_ENTRY_NULL, /**< The VisUIChoiceEntry is NULL. */
VISUAL_ERROR_UI_CHOICE_NONE_ACTIVE, /**< there is no VisUIChoiceEntry active. */
/* Error entries for the VisVideo system */
VISUAL_ERROR_VIDEO_ATTRIBUTE_OPTIONS_NULL, /**< The VisVideoAttributeOptions is NULL. */
VISUAL_ERROR_VIDEO_NULL, /**< The VisVideo is NULL. */
VISUAL_ERROR_VIDEO_HAS_ALLOCATED, /**< The VisVideo has an allocated buffer. */
VISUAL_ERROR_VIDEO_BUFFER_NULL, /**< The VisVideo has no VisBuffer object. */
VISUAL_ERROR_VIDEO_PIXELS_NULL, /**< The VisVideo doesn't point to a pixel buffer. */
VISUAL_ERROR_VIDEO_NO_ALLOCATED, /**< The VisVideo doesn't have an allocated pixel buffer. */
VISUAL_ERROR_VIDEO_HAS_PIXELS, /**< The VisVideo already points to a pixel buffer. */
VISUAL_ERROR_VIDEO_INVALID_BPP, /**< The VisVideo it's bytes per pixel is invalid. */
VISUAL_ERROR_VIDEO_INVALID_DEPTH, /**< The VisVideoDepth value is not valid. */
VISUAL_ERROR_VIDEO_INVALID_SCALE_METHOD, /**< The VisVideoScaleMethod argument is not valid. */
VISUAL_ERROR_VIDEO_INVALID_ROTATE, /**< The VisVideoRotateDegrees argument is not valid. */
VISUAL_ERROR_VIDEO_OUT_OF_BOUNDS, /**< The X or Y value are greater than the VisVideo it's dimension. */
VISUAL_ERROR_VIDEO_NOT_INDENTICAL, /**< The two VisVideo their configuration are not indentical. */
VISUAL_ERROR_VIDEO_NOT_TRANSFORMED, /**< Could not depth transform a VisVideo. */
VISUAL_ERROR_LIST_END /**< Last entry, to check against for the number of errors. */
};
/**
* Functions that want to handle libvisual errors must match this signature. The standard
* libvisual error handler aborts the program after an error by raise(SIGTRAP). If it's
* desired to override this use visual_set_error_handler to set your own error handler.
*
* @see visual_set_error_handler
*
* @arg priv Private field to be used by the client. The library will never touch this.
*/
typedef int (*VisErrorHandlerFunc) (void *priv);
int visual_error_raise (void);
int visual_error_set_handler (VisErrorHandlerFunc handler, void *priv);
const char *visual_error_to_string (int err);
VISUAL_END_DECLS
#endif /* _LV_ERROR_H */
|