X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=db.h;fp=db.h;h=0000000000000000000000000000000000000000;hb=1d298ac7426fdc13221f759848dbf766ef606c0b;hp=3b9d4530189b0b32438da96eb1556d21f456a155;hpb=9847a8ce2fd749dda24017abc93cf0d1b25721b2;p=paraslash.git diff --git a/db.h b/db.h deleted file mode 100644 index 3b9d4530..00000000 --- a/db.h +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Copyright (C) 2005-2006 Andre Noll - * - * 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, USA. - */ - -/** \file db.h data structures common to all audio file selectors */ - -#include - - -int find_audio_files(const char *dirname, int (*f)(const char *, const char *)); - -/** - * describes one supported audio file selector - * - * There is one such struct for each supported selector. During the startup - * part of para_server the \a init() function of the activated selector gets - * called which fills in all other function pointers. - * - */ -struct audio_file_selector { -/** - * name name of this selector - */ -const char *name; -/** - * the init routine of the selector - * - * It should check its command line options and do all necessary initialization - * like connecting to a database server. - * - * A negative return value indicates an initialization error and means that - * this selector should be ignored for now (it may later be activated again via - * the chs command). - * - * If \a init() returns success (non-negative return value), it must have - * initialized in all non-optional function pointers of the given selector - * struct. Moreover, \a cmd_list must point to a NULL-terminated array which - * holds the list of all commands that are supported by this selector. - */ -int (*init)(struct audio_file_selector *self); -/** - * list of commands supported by this selector - */ -struct server_command *cmd_list; -/** - * pointer to function returning list of at most \a num audio files to be - * streamed next - * - * \a get_audio_file_list() must return a pointer to a array of at most \a num - * char* pointers (terminated by a NULL pointer), or NULL on errors. Both the - * array and its contents must be dynamically allocated and are freed by the - * caller. - * -*/ -char **(*get_audio_file_list)(unsigned int num); -/** - * - * the update hook - * - * The \a update_audio_file pointer is optional and need not be supplied. In this - * case it is not neccessary to init this pointer from within init(). If - * \a update_audio_file is non-NULL, the function it points to gets called - * whenever a new audio file was successfully loaded and is going to be - * streamed by any of paraslash's senders. The full path of the audio file is - * passed \a update_audio_file(). - * - */ -void (*update_audio_file)(char *audio_file); -/** - * - * shutdown this selector and free all resources - * - * This gets called whenever the audio file selector changes. The reason for - * this change might be that some user sent the chs command, that para_server - * receives the HUP signal, or that para_server shuts down. It is assumed to - * succeed. - */ -void (*shutdown)(void); -/** - * - * add file descriptors to fd_sets - * - * The pre_select function of the activated selector gets called just before - * para_server enters its main select loop. The selector may add its own file - * descriptors to the \a rfds or the \a wfds set. - * - * \return The highest-numbered file descriptor which was added to either of - * the two fd sets (or -1 if no file descriptors were added). - * - * \sa select(2) - */ -int (*pre_select)(fd_set *rfds, fd_set *wfds); -/** - * handle the file descriptors which are ready for I/O - * - * If the pre_select hook added one ore more file descriptors to the read or write - * set, this is the hook to check the result and do any I/O on those descriptors - * which are ready for reading/writing. - */ -void (*post_select)(fd_set *rfds, fd_set *wfds); -/** - * each selector has its private data pointer */ -void *private_data; -}; - -int mysql_selector_init(struct audio_file_selector*); -int playlist_selector_init(struct audio_file_selector*); -int random_selector_init(struct audio_file_selector*); -