Code

lyrics: converted global variables to static
[ncmpc.git] / src / src_lyrics.h
1 #ifndef SOURCE_LYRICS
2 #define SOURCE_LYRICS
4 #include "list_window.h"
5 #include "mpdclient.h"
7 #include <stdlib.h>
8 #include <glib.h>
9 #include <gmodule.h>
11 typedef struct _formed_text
12 {
13         GString *text;
14         GArray *lines;
15         int val;
16 } formed_text;
18 void formed_text_init(formed_text *text);
19 void add_text_line(formed_text *dest, const char *src, int len);
21 typedef struct _retrieval_spec
22 {
23         mpdclient_t *client;
24         int way;
25 } retrieval_spec;
27 GTimer *dltime;
28 short int lock;
29 formed_text lyr_text;
31 guint8 result;
33 /* result is a bitset in which the success when searching 4 lyrics is logged
34 countend by position - backwards
35 0: lyrics in database
36 1: proper access  to the lyrics provider
37 2: lyrics found
38 3: exact match
39 4: lyrics downloaded
40 5: lyrics saved
41 wasting 3 bits doesn't mean being a fat memory hog like kde.... does it?
42 */
45 typedef struct src_lyr src_lyr;
47 struct src_lyr
48 {
49   char *name;
50   char *source_name;
51   char *description;
52   
53   int (*register_src_lyr) (src_lyr *source_descriptor);
54   int (*deregister_src_lyr)(void);
56   int (*check_lyr) (char *artist, char *title, char *url);
57   int (*get_lyr) (char *artist, char *title);
58   int (*state_lyr)(void);
60 #ifndef DISABLE_PLUGIN_SYSTEM
61   GModule *module;
62 #endif
63 };
65 typedef int (*src_lyr_plugin_register) (src_lyr *source_descriptor);
67 GArray *src_lyr_stack;
69 int get_text_line(formed_text *text, unsigned num, char *dest, size_t len);
71 void src_lyr_stack_init(void);
72 int src_lyr_init(void);
73 int get_lyr_by_src (int priority, char *artist, char *title);
75 #endif