XMMS2
|
00001 /* XMMS2 - X Music Multiplexer System 00002 * Copyright (C) 2003-2011 XMMS2 Team 00003 * 00004 * PLUGINS ARE NOT CONSIDERED TO BE DERIVED WORK !!! 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU Lesser General Public 00008 * License as published by the Free Software Foundation; either 00009 * version 2.1 of the License, or (at your option) any later version. 00010 * 00011 * This library is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 * Lesser General Public License for more details. 00015 */ 00016 00017 #ifndef __SIGNAL_XMMS_H__ 00018 #define __SIGNAL_XMMS_H__ 00019 00020 /* Don't forget to up this when protocol changes */ 00021 #define XMMS_IPC_PROTOCOL_VERSION 18 00022 00023 typedef enum { 00024 XMMS_IPC_OBJECT_SIGNAL, 00025 XMMS_IPC_OBJECT_MAIN, 00026 XMMS_IPC_OBJECT_PLAYLIST, 00027 XMMS_IPC_OBJECT_CONFIG, 00028 XMMS_IPC_OBJECT_PLAYBACK, 00029 XMMS_IPC_OBJECT_MEDIALIB, 00030 XMMS_IPC_OBJECT_COLLECTION, 00031 XMMS_IPC_OBJECT_VISUALIZATION, 00032 XMMS_IPC_OBJECT_MEDIAINFO_READER, 00033 XMMS_IPC_OBJECT_XFORM, 00034 XMMS_IPC_OBJECT_BINDATA, 00035 XMMS_IPC_OBJECT_END 00036 } xmms_ipc_objects_t; 00037 00038 typedef enum { 00039 XMMS_IPC_SIGNAL_PLAYLIST_CHANGED, 00040 XMMS_IPC_SIGNAL_CONFIGVALUE_CHANGED, 00041 XMMS_IPC_SIGNAL_PLAYBACK_STATUS, 00042 XMMS_IPC_SIGNAL_PLAYBACK_VOLUME_CHANGED, 00043 XMMS_IPC_SIGNAL_PLAYBACK_PLAYTIME, 00044 XMMS_IPC_SIGNAL_PLAYBACK_CURRENTID, 00045 XMMS_IPC_SIGNAL_PLAYLIST_CURRENT_POS, 00046 XMMS_IPC_SIGNAL_PLAYLIST_LOADED, 00047 XMMS_IPC_SIGNAL_MEDIALIB_ENTRY_ADDED, 00048 XMMS_IPC_SIGNAL_MEDIALIB_ENTRY_UPDATE, 00049 XMMS_IPC_SIGNAL_COLLECTION_CHANGED, 00050 XMMS_IPC_SIGNAL_QUIT, 00051 XMMS_IPC_SIGNAL_MEDIAINFO_READER_STATUS, 00052 XMMS_IPC_SIGNAL_MEDIAINFO_READER_UNINDEXED, 00053 XMMS_IPC_SIGNAL_END 00054 } xmms_ipc_signals_t; 00055 00056 /* Commands 0..31 are reserved for special stuff like marking 00057 * a reply or an error. 00058 */ 00059 #define XMMS_IPC_CMD_FIRST 32 00060 00061 /* Special "commands" (0..31) */ 00062 typedef enum { 00063 XMMS_IPC_CMD_REPLY, 00064 XMMS_IPC_CMD_ERROR 00065 } xmms_ipc_pseudo_commands; 00066 00067 /* Signal subsystem methods */ 00068 typedef enum { 00069 XMMS_IPC_CMD_SIGNAL = XMMS_IPC_CMD_FIRST, 00070 XMMS_IPC_CMD_BROADCAST 00071 } xmms_ipc_signal_cmds_t; 00072 00073 /* Main methods */ 00074 typedef enum { 00075 XMMS_IPC_CMD_HELLO = XMMS_IPC_CMD_FIRST, 00076 XMMS_IPC_CMD_QUIT, 00077 XMMS_IPC_CMD_PLUGIN_LIST, 00078 XMMS_IPC_CMD_STATS 00079 } xmms_ipc_main_cmds_t; 00080 00081 /* Playlist methods */ 00082 typedef enum { 00083 XMMS_IPC_CMD_SHUFFLE = XMMS_IPC_CMD_FIRST, 00084 XMMS_IPC_CMD_SET_POS, 00085 XMMS_IPC_CMD_SET_POS_REL, 00086 XMMS_IPC_CMD_ADD_URL, 00087 XMMS_IPC_CMD_ADD_ID, 00088 XMMS_IPC_CMD_ADD_IDLIST, 00089 XMMS_IPC_CMD_ADD_COLL, 00090 XMMS_IPC_CMD_REMOVE_ENTRY, 00091 XMMS_IPC_CMD_MOVE_ENTRY, 00092 XMMS_IPC_CMD_CLEAR, 00093 XMMS_IPC_CMD_SORT, 00094 XMMS_IPC_CMD_LIST, 00095 XMMS_IPC_CMD_CURRENT_POS, 00096 XMMS_IPC_CMD_CURRENT_ACTIVE, 00097 XMMS_IPC_CMD_INSERT_URL, 00098 XMMS_IPC_CMD_INSERT_ID, 00099 XMMS_IPC_CMD_INSERT_COLL, 00100 XMMS_IPC_CMD_LOAD, 00101 XMMS_IPC_CMD_RADD, 00102 XMMS_IPC_CMD_RINSERT 00103 } xmms_ipc_playlist_cmds_t; 00104 00105 /* Config methods */ 00106 typedef enum { 00107 XMMS_IPC_CMD_GETVALUE = XMMS_IPC_CMD_FIRST, 00108 XMMS_IPC_CMD_SETVALUE, 00109 XMMS_IPC_CMD_REGVALUE, 00110 XMMS_IPC_CMD_LISTVALUES 00111 } xmms_ipc_config_cmds_t; 00112 00113 /* playback methods */ 00114 typedef enum { 00115 XMMS_IPC_CMD_START = XMMS_IPC_CMD_FIRST, 00116 XMMS_IPC_CMD_STOP, 00117 XMMS_IPC_CMD_PAUSE, 00118 XMMS_IPC_CMD_DECODER_KILL, 00119 XMMS_IPC_CMD_CPLAYTIME, 00120 XMMS_IPC_CMD_SEEKMS, 00121 XMMS_IPC_CMD_SEEKSAMPLES, 00122 XMMS_IPC_CMD_PLAYBACK_STATUS, 00123 XMMS_IPC_CMD_CURRENTID, 00124 XMMS_IPC_CMD_VOLUME_SET, 00125 XMMS_IPC_CMD_VOLUME_GET 00126 } xmms_ipc_playback_cmds_t; 00127 00128 /* Medialib methods */ 00129 typedef enum { 00130 XMMS_IPC_CMD_INFO = XMMS_IPC_CMD_FIRST, 00131 XMMS_IPC_CMD_PATH_IMPORT, 00132 XMMS_IPC_CMD_REHASH, 00133 XMMS_IPC_CMD_GET_ID, 00134 XMMS_IPC_CMD_REMOVE_ID, 00135 XMMS_IPC_CMD_PROPERTY_SET_STR, 00136 XMMS_IPC_CMD_PROPERTY_SET_INT, 00137 XMMS_IPC_CMD_PROPERTY_REMOVE, 00138 XMMS_IPC_CMD_MOVE_URL, 00139 XMMS_IPC_CMD_MLIB_ADD_URL 00140 } xmms_ipc_medialib_cmds_t; 00141 00142 /* Collection methods */ 00143 typedef enum { 00144 XMMS_IPC_CMD_COLLECTION_GET = XMMS_IPC_CMD_FIRST, 00145 XMMS_IPC_CMD_COLLECTION_LIST, 00146 XMMS_IPC_CMD_COLLECTION_SAVE, 00147 XMMS_IPC_CMD_COLLECTION_REMOVE, 00148 XMMS_IPC_CMD_COLLECTION_FIND, 00149 XMMS_IPC_CMD_COLLECTION_RENAME, 00150 XMMS_IPC_CMD_QUERY_IDS, 00151 XMMS_IPC_CMD_QUERY_INFOS, 00152 XMMS_IPC_CMD_IDLIST_FROM_PLS, 00153 XMMS_IPC_CMD_COLLECTION_SYNC 00154 } xmms_ipc_collection_cmds_t; 00155 00156 /* bindata methods */ 00157 typedef enum { 00158 XMMS_IPC_CMD_GET_DATA = XMMS_IPC_CMD_FIRST, 00159 XMMS_IPC_CMD_ADD_DATA, 00160 XMMS_IPC_CMD_REMOVE_DATA, 00161 XMMS_IPC_CMD_LIST_DATA 00162 } xmms_ipc_bindata_cmds_t; 00163 00164 /* visualization methods */ 00165 typedef enum { 00166 XMMS_IPC_CMD_VISUALIZATION_QUERY_VERSION = XMMS_IPC_CMD_FIRST, 00167 XMMS_IPC_CMD_VISUALIZATION_REGISTER, 00168 XMMS_IPC_CMD_VISUALIZATION_INIT_SHM, 00169 XMMS_IPC_CMD_VISUALIZATION_INIT_UDP, 00170 XMMS_IPC_CMD_VISUALIZATION_PROPERTY, 00171 XMMS_IPC_CMD_VISUALIZATION_PROPERTIES, 00172 XMMS_IPC_CMD_VISUALIZATION_SHUTDOWN 00173 } xmms_ipc_visualization_cmds_t; 00174 00175 /* xform methods */ 00176 typedef enum { 00177 XMMS_IPC_CMD_BROWSE = XMMS_IPC_CMD_FIRST 00178 } xmms_ipc_xform_cmds_t; 00179 00180 typedef enum { 00181 XMMS_PLAYLIST_CHANGED_ADD, 00182 XMMS_PLAYLIST_CHANGED_INSERT, 00183 XMMS_PLAYLIST_CHANGED_SHUFFLE, 00184 XMMS_PLAYLIST_CHANGED_REMOVE, 00185 XMMS_PLAYLIST_CHANGED_CLEAR, 00186 XMMS_PLAYLIST_CHANGED_MOVE, 00187 XMMS_PLAYLIST_CHANGED_SORT, 00188 XMMS_PLAYLIST_CHANGED_UPDATE 00189 } xmms_playlist_changed_actions_t; 00190 00191 typedef enum { 00192 XMMS_COLLECTION_CHANGED_ADD, 00193 XMMS_COLLECTION_CHANGED_UPDATE, 00194 XMMS_COLLECTION_CHANGED_RENAME, 00195 XMMS_COLLECTION_CHANGED_REMOVE 00196 } xmms_collection_changed_actions_t; 00197 00198 typedef enum { 00199 XMMS_PLAYBACK_STATUS_STOP, 00200 XMMS_PLAYBACK_STATUS_PLAY, 00201 XMMS_PLAYBACK_STATUS_PAUSE 00202 } xmms_playback_status_t; 00203 00204 typedef enum { 00205 XMMS_PLAYBACK_SEEK_CUR = 1, 00206 XMMS_PLAYBACK_SEEK_SET 00207 } xmms_playback_seek_mode_t; 00208 00209 typedef enum { 00210 XMMS_MEDIAINFO_READER_STATUS_IDLE, 00211 XMMS_MEDIAINFO_READER_STATUS_RUNNING 00212 } xmms_mediainfo_reader_status_t; 00213 00214 typedef enum { 00215 XMMS_PLUGIN_TYPE_ALL, 00216 XMMS_PLUGIN_TYPE_OUTPUT, 00217 XMMS_PLUGIN_TYPE_XFORM 00218 } xmms_plugin_type_t; 00219 00220 typedef enum { 00221 XMMS_COLLECTION_TYPE_REFERENCE, 00222 XMMS_COLLECTION_TYPE_UNION, 00223 XMMS_COLLECTION_TYPE_INTERSECTION, 00224 XMMS_COLLECTION_TYPE_COMPLEMENT, 00225 XMMS_COLLECTION_TYPE_HAS, 00226 XMMS_COLLECTION_TYPE_EQUALS, 00227 XMMS_COLLECTION_TYPE_MATCH, 00228 XMMS_COLLECTION_TYPE_SMALLER, 00229 XMMS_COLLECTION_TYPE_GREATER, 00230 XMMS_COLLECTION_TYPE_IDLIST, 00231 XMMS_COLLECTION_TYPE_QUEUE, 00232 XMMS_COLLECTION_TYPE_PARTYSHUFFLE, 00233 XMMS_COLLECTION_TYPE_LAST = XMMS_COLLECTION_TYPE_PARTYSHUFFLE 00234 } xmmsv_coll_type_t; 00235 00236 typedef enum { 00237 XMMS_MEDIALIB_ENTRY_STATUS_NEW, 00238 XMMS_MEDIALIB_ENTRY_STATUS_OK, 00239 XMMS_MEDIALIB_ENTRY_STATUS_RESOLVING, 00240 XMMS_MEDIALIB_ENTRY_STATUS_NOT_AVAILABLE, 00241 XMMS_MEDIALIB_ENTRY_STATUS_REHASH 00242 } xmmsc_medialib_entry_status_t; 00243 00244 typedef const char* xmmsv_coll_namespace_t; 00245 #define XMMS_COLLECTION_NS_ALL "*" 00246 #define XMMS_COLLECTION_NS_COLLECTIONS "Collections" 00247 #define XMMS_COLLECTION_NS_PLAYLISTS "Playlists" 00248 00249 #define XMMS_ACTIVE_PLAYLIST "_active" 00250 00251 /* Default source preferences for accessing "propdicts" (decl. in value.c) */ 00252 extern const char *default_source_pref[]; 00253 00254 /* compability */ 00255 typedef xmmsv_coll_type_t xmmsc_coll_type_t; 00256 typedef xmmsv_coll_namespace_t xmmsc_coll_namespace_t; 00257 00258 00259 #endif /* __SIGNAL_XMMS_H__ */