XMMS2
src/include/xmmsc/xmmsc_idnumbers.h
Go to the documentation of this file.
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__ */