Commit ea63b6e5 authored by Ziirish's avatar Ziirish

code review + sources organization

parent 266b4403
SET (BIN_NAME cid)
add_subdirectory (backends)
add_subdirectory (gui)
add_subdirectory (tools)
SET(cid_SRCS
cid-amarok2.c
cid-amarok2.h
cid-amarok.c
cid-amarok.h
cid-animation.c
cid-animation.h
cid-animation-thread.c
cid-animation-thread.h
cid.c cid.h
cid-animation.c cid-animation.h
cid-animation-thread.c cid-animation-thread.h
cid-asynchrone.c cid-asynchrone.h
cid-config.c cid-config.h
cid-cover.c cid-cover.h
cid-draw.c cid-draw.h
cid-messages.c cid-messages.h
cid-modules.c cid-modules.h
cid-applet-canvas.h
cid-asynchrone.c
cid-asynchrone.h
cid.c
cid-callbacks.c
cid-callbacks.h
cid-config.c
cid-config.h
cid-console-call.c
cid-console-call.h
cid-constantes.h
cid-cover.c
cid-cover.h
cid-datatables.c
cid-datatables.h
cid-dbus.c
cid-dbus.h
cid-draw.c
cid-draw.h
cid-exaile.c
cid-exaile.h
cid-file-utilities.c
cid-file-utilities.h
cid-gui-callback.c
cid-gui-callback.h
cid-gui-factory.c
cid-gui-factory.h
cid.h
cid-md5.c
cid-md5.h
cid-menu-factory.c
cid-menu-factory.h
cid-messages.c
cid-messages.h
cid-modules.c
cid-modules.h
cid-mpd.c
cid-mpd.h
cid-rhythmbox.c
cid-rhythmbox.h
cid-string-utilities.c
cid-string-utilities.h
cid-struct.h
cid-utilities.c
cid-utilities.h
cid-X-utilities.c
cid-X-utilities.h
libmpdclient.c
libmpdclient.h
)
include_directories(
${PACKAGE_INCLUDE_DIRS}
${CMAKE_SOURCE_DIR}/src
${PACKAGE_INCLUDE_DIRS}
${CMAKE_SOURCE_DIR}/src
${CMAKE_SOURCE_DIR}/backends
${CMAKE_SOURCE_DIR}/gui
${CMAKE_SOURCE_DIR}/tools
)
# Make sure the linker can find the libraries.
link_directories(
${PACKAGE_LIBRARY_DIRS}
${PACKAGE_LIBRARY_DIRS}
${CMAKE_SOURCE_DIR}/src
${CMAKE_SOURCE_DIR}/backends
${CMAKE_SOURCE_DIR}/gui
${CMAKE_SOURCE_DIR}/tools
)
# Add executable that is built from the source files.
add_executable (${PROJECT_NAME}
${cid_SRCS})
${cid_SRCS})
# Link the executable to the librairies.
target_link_libraries (${PROJECT_NAME}
${PACKAGE_LIBRARIES}
${LIBCRYPT_LIBS}
${PACKAGE_LIBRARIES}
${LIBCRYPT_LIBS}
backends
gui
tools
)
# install the program once it is built.
install(
TARGETS ${BIN_NAME}
DESTINATION bin)
TARGETS ${BIN_NAME}
DESTINATION bin)
SET(backends_SRC
cid-amarok2.c cid-amarok2.h
cid-amarok.c cid-amarok.h
cid-exaile.c cid-exaile.h
cid-mpd.c cid-mpd.h
cid-rhythmbox.c cid-rhythmbox.h
libmpdclient.c libmpdclient.h)
add_library(backends STATIC ${backends_SRC})
# Make sure the linker can find the libraries.
link_directories(
${PACKAGE_LIBRARY_DIRS}
${CMAKE_SOURCE_DIR}/src
${CMAKE_SOURCE_DIR}/backends
${CMAKE_SOURCE_DIR}/gui
${CMAKE_SOURCE_DIR}/tools
)
include_directories(
${PACKAGE_INCLUDE_DIRS}
${CMAKE_SOURCE_DIR}/src
${CMAKE_SOURCE_DIR}/backends
${CMAKE_SOURCE_DIR}/gui
${CMAKE_SOURCE_DIR}/tools
)
......@@ -22,18 +22,20 @@
*
*/
//#include "cid.h"
#include "cid-amarok.h"
#include "cid-struct.h"
#include "cid-messages.h"
#include "cid-utilities.h"
#include "cid-callbacks.h"
#include "cid-console-call.h"
#include "cid-constantes.h"
#include "cid-asynchrone.h"
#include "cid-cover.h"
#include "cid-draw.h"
#include "cid-animation.h"
#include "../cid-struct.h"
#include "../cid-messages.h"
#include "../cid-constantes.h"
#include "../cid-asynchrone.h"
#include "../cid-cover.h"
#include "../cid-draw.h"
#include "../cid-animation.h"
#include "../tools/cid-utilities.h"
#include "../tools/cid-console-call.h"
#include "../gui/cid-callbacks.h"
#include <string.h>
......
......@@ -27,7 +27,7 @@
#include <gtk/gtk.h>
#include "cid-struct.h"
#include "../cid-struct.h"
G_BEGIN_DECLS
......
......@@ -24,13 +24,15 @@
*/
#include "cid-amarok2.h"
#include "cid-struct.h"
#include "cid-messages.h"
#include "cid-utilities.h"
#include "cid-constantes.h"
#include "cid-draw.h"
#include "cid-dbus.h"
#include "cid-animation.h"
#include "../cid-struct.h"
#include "../cid-messages.h"
#include "../cid-constantes.h"
#include "../cid-draw.h"
#include "../cid-animation.h"
#include "../tools/cid-dbus.h"
#include "../tools/cid-utilities.h"
#include <string.h>
......
......@@ -24,13 +24,15 @@
*/
//#include "cid.h"
#include "cid-exaile.h"
#include "cid-struct.h"
#include "cid-cover.h"
#include "cid-dbus.h"
#include "cid-callbacks.h"
#include "cid-utilities.h"
#include "cid-constantes.h"
#include "cid-asynchrone.h"
#include "../cid-struct.h"
#include "../cid-cover.h"
#include "../cid-constantes.h"
#include "../cid-asynchrone.h"
#include "../gui/cid-callbacks.h"
#include "../tools/cid-utilities.h"
#include "../tools/cid-dbus.h"
extern CidMainContainer *cid;
......@@ -115,14 +117,15 @@ exaile_dbus_disconnect_from_bus (void)
gboolean
dbus_detect_exaile(void)
{
musicData.opening = dbus_detect_application ("org.exaile.DBusInterface");
musicData.opening =
dbus_detect_application ("org.exaile.DBusInterface");
return musicData.opening;
}
//*********************************************************************************
//**********************************************************************
// exaile_getPlaying() : Test si exaile joue de la musique ou non
//*********************************************************************************
//**********************************************************************
gboolean
exaile_getPlaying (void)
{
......@@ -132,7 +135,8 @@ exaile_getPlaying (void)
if (status != NULL)
cSplitedQuery = g_strsplit (status," ",0);
bPreviousState = musicData.playing;
if (cSplitedQuery[1]!=NULL && ! g_ascii_strcasecmp(cSplitedQuery[1], "playing"))
if (cSplitedQuery[1]!=NULL &&
!g_ascii_strcasecmp(cSplitedQuery[1], "playing"))
musicData.playing = TRUE;
else
musicData.playing = FALSE;
......@@ -145,28 +149,6 @@ exaile_getPlaying (void)
g_free (status);
return musicData.playing;
}
/*
gboolean
cid_download_exaile_cover (gpointer data)
{
cid->runtime->iCheckIter++;
if (cid->runtime->iCheckIter > cid->config->iTimeToWait)
{
if (pMeasureTimer)
{
if (cid_measure_is_running(pMeasureTimer))
cid_stop_measure_timer(pMeasureTimer);
if (cid_measure_is_active(pMeasureTimer))
cid_free_measure_timer(pMeasureTimer);
}
pMeasureTimer = cid_new_measure_timer (2 SECONDES, NULL, NULL, (CidUpdateTimerFunc) _cid_proceed_download_cover, NULL);
cid_launch_measure (pMeasureTimer);
return FALSE;
}
return TRUE;
}
*/
gchar *
cid_check_exaile_cover_exists (gchar *cURI)
......@@ -183,7 +165,9 @@ cid_check_exaile_cover_exists (gchar *cURI)
if (bSongChanged)
{
cid->runtime->iCheckIter = 0;
g_timeout_add (1000, (GSourceFunc) _check_cover_is_present, &cid);
g_timeout_add (1000,
(GSourceFunc) _check_cover_is_present,
&cid);
}
return g_strdup(cid->config->cDefaultImage);
}
......@@ -198,21 +182,29 @@ getExaileSongInfos(void)
gchar *cOldArtist = musicData.playing_artist;
gchar *cOldTitle = musicData.playing_title;
musicData.playing_album = dbus_get_string (dbus_proxy_player, "get_album");
musicData.playing_artist = dbus_get_string (dbus_proxy_player, "get_artist");
musicData.playing_title = dbus_get_string (dbus_proxy_player, "get_title");
musicData.playing_duration = atoi (dbus_get_string (dbus_proxy_player, "get_length"));
musicData.playing_album = dbus_get_string (dbus_proxy_player,
"get_album");
musicData.playing_artist = dbus_get_string (dbus_proxy_player,
"get_artist");
musicData.playing_title = dbus_get_string (dbus_proxy_player,
"get_title");
musicData.playing_duration =
atoi (dbus_get_string (dbus_proxy_player, "get_length"));
musicData.playing_uri = NULL;
musicData.playing_track = 0;
if ((bFirstLoop && cOldArtist==NULL && cOldTitle==NULL) || (g_strcasecmp(cOldArtist,musicData.playing_artist)!=0 && g_strcasecmp(cOldTitle,musicData.playing_title)!=0))
if ((bFirstLoop && cOldArtist==NULL && cOldTitle==NULL) ||
(g_strcasecmp(cOldArtist,musicData.playing_artist)!=0 &&
g_strcasecmp(cOldTitle,musicData.playing_title)!=0))
bSongChanged = TRUE;
else
bSongChanged = FALSE;
if (bSongChanged)
musicData.playing_cover = cid_check_exaile_cover_exists(dbus_get_string (dbus_proxy_player, "get_cover_path"));
musicData.playing_cover =
cid_check_exaile_cover_exists(
dbus_get_string (dbus_proxy_player, "get_cover_path"));
g_free (cOldArtist);
g_free (cOldTitle);
......@@ -222,7 +214,12 @@ getExaileSongInfos(void)
void
cid_exaile_pipe (gint iInter)
{
cid->runtime->iPipe = g_timeout_add_full (G_PRIORITY_HIGH, iInter,(gpointer) cid_exaile_cover, NULL, NULL);
cid->runtime->iPipe =
g_timeout_add_full (G_PRIORITY_HIGH,
iInter,
(gpointer) cid_exaile_cover,
NULL,
NULL);
}
void
......
......@@ -23,13 +23,16 @@
*/
#include "cid-mpd.h"
#include "cid-struct.h"
#include "cid-asynchrone.h"
#include "cid-constantes.h"
#include "cid-messages.h"
#include "cid-utilities.h"
#include "cid-callbacks.h"
#include "cid-cover.h"
#include "../cid-struct.h"
#include "../cid-asynchrone.h"
#include "../cid-constantes.h"
#include "../cid-messages.h"
#include "../cid-cover.h"
#include "../tools/cid-utilities.h"
#include "../gui/cid-callbacks.h"
extern CidMainContainer *cid;
......@@ -96,7 +99,8 @@ cid_mpd_cover ()
gboolean bOldState = musicData.playing;
musicData.playing = (status->state == MPD_STATUS_STATE_PLAY);
if (status->state == MPD_STATUS_STATE_STOP || status->state == MPD_STATUS_STATE_UNKNOWN)
if (status->state == MPD_STATUS_STATE_STOP ||
status->state == MPD_STATUS_STATE_UNKNOWN)
{
if (bOldState!=musicData.playing || first)
{
......@@ -134,7 +138,8 @@ cid_mpd_cover ()
continue;
}
if (musicData.playing_uri != NULL && strcmp (musicData.playing_uri,song->file) == 0 && !paused)
if (musicData.playing_uri != NULL &&
strcmp (musicData.playing_uri,song->file) == 0 && !paused)
{
if (bOldState!=musicData.playing)
cid_display_image (musicData.playing_cover);
......@@ -182,8 +187,13 @@ cid_mpd_cover ()
if (cid->mpd_dir != NULL)
{
gchar *tmp = g_strdup_printf ("%s%s/%s", strncmp (cid->mpd_dir, "file://", 7) == 0 ? "" : "file://",
cid->mpd_dir, musicData.playing_uri);
gchar *tmp =
g_strdup_printf ("%s%s/%s",
strncmp (cid->mpd_dir, "file://", 7) == 0 ?
"" :
"file://",
cid->mpd_dir,
musicData.playing_uri);
cSongPath = g_filename_from_uri (tmp, NULL, NULL);
g_free (tmp);
}
......@@ -199,7 +209,7 @@ cid_mpd_cover ()
cSongDir);
g_free (cSongDir);
} else {
cid_debug ("l'image n'existe pas => on va la chercher.\n");
cid_debug ("l'image n'existe pas => on va la chercher.");
g_free (musicData.playing_cover);
musicData.playing_cover = cid_cover_lookup (&cid,
musicData.playing_artist,
......@@ -207,7 +217,8 @@ cid_mpd_cover ()
NULL);
}
cid_info ("\nartist : %s\nalbum : %s\ntitle : %s\nsong uri : %s\ncover uri : %s",
cid_info (
"\nartist : %s\nalbum : %s\ntitle : %s\nsong uri : %s\ncover uri : %s",
musicData.playing_artist,
musicData.playing_album,
musicData.playing_title,
......@@ -223,7 +234,12 @@ cid_mpd_cover ()
void
cid_mpd_pipe (gint iInter)
{
cid->runtime->iPipe = g_timeout_add_full (G_PRIORITY_HIGH, iInter,(gpointer) cid_mpd_cover, NULL, NULL);
cid->runtime->iPipe =
g_timeout_add_full (G_PRIORITY_HIGH,
iInter,
(gpointer) cid_mpd_cover,
NULL,
NULL);
}
void
......
......@@ -84,7 +84,9 @@ void getSongInfos(void);
* @param URI du fichier joué
* @param pointeur de données (non utilisé)
*/
void rb_onChangeSong(DBusGProxy *player_proxy, const gchar *uri, gpointer data);
void rb_onChangeSong(DBusGProxy *player_proxy,
const gchar *uri,
gpointer data);
/**
* Fonction exécutée (automatiquement) au changement d'état Play/Pause
......@@ -92,7 +94,9 @@ void rb_onChangeSong(DBusGProxy *player_proxy, const gchar *uri, gpointer data);
* @param flag on joue ou non
* @param pointeur de données (non utilisé)
*/
void rb_onChangeState(DBusGProxy *player_proxy,gboolean playing, gpointer data);
void rb_onChangeState(DBusGProxy *player_proxy,
gboolean playing,
gpointer data);
/**
* Fonction exécutée (automatiquement) à chaque changement de temps joué
......@@ -100,7 +104,9 @@ void rb_onChangeState(DBusGProxy *player_proxy,gboolean playing, gpointer data);
* @param durée écoulée
* @param pointeur de données (non utilisé)
*/
void rb_onElapsedChanged(DBusGProxy *player_proxy,int elapsed, gpointer data);
void rb_onElapsedChanged(DBusGProxy *player_proxy,
int elapsed,
gpointer data);
/**
* Fonction exécutée (automatiquement) à chaque changement d'URI
......@@ -109,7 +115,9 @@ void rb_onElapsedChanged(DBusGProxy *player_proxy,int elapsed, gpointer data);
* @param URI de la nouvelle image
* @param pointeur de données (non utilisé)
*/
void rb_onCovertArtChanged(DBusGProxy *player_proxy,const gchar *cImageURI, gpointer data);
void rb_onCovertArtChanged(DBusGProxy *player_proxy,
const gchar *cImageURI,
gpointer data);
/**
......
......@@ -27,10 +27,10 @@
#include "cid-config.h"
#include "cid-messages.h"
#include "cid-utilities.h"
#include "cid-gui-factory.h"
#include "cid-callbacks.h"
#include "cid-gui-callback.h"
#include "tools/cid-utilities.h"
#include "gui/cid-gui-factory.h"
#include "gui/cid-callbacks.h"
#include "gui/cid-gui-callback.h"
#include "cid-constantes.h"
#include "cid-draw.h"
......
......@@ -24,13 +24,13 @@
*/
//#include "cid-constantes.h"
#include "cid-callbacks.h"
#include "gui/cid-callbacks.h"
#include "cid-cover.h"
#include "cid-struct.h"
#include "cid-messages.h"
#include "cid-utilities.h"
#include "cid-md5.h"
#include "cid-file-utilities.h"
#include "tools/cid-utilities.h"
#include "tools/cid-md5.h"
#include "tools/cid-file-utilities.h"
#include <curl/curl.h>
#include <fcntl.h>
......
......@@ -27,8 +27,8 @@
#include "cid-draw.h"
#include "cid-animation.h"
#include "cid-utilities.h"
#include "cid-callbacks.h"
#include "tools/cid-utilities.h"
#include "gui/cid-callbacks.h"
#include "cid-messages.h"
#include "cid-constantes.h"
......
/***********************************************************************
*
* Program:
* Conky Images Display
*
* License :
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License, version 2.
* If you don't know what that means take a look at:
* http://www.gnu.org/licenses/licenses.html#GPL
*
* Original idea :
* Charlie MERLAND, July 2008.
*
***********************************************************************/
/*
*
* cid-gui-factory.h
* -------
* Conky Images Display
* --------------------------------
*
*/
#ifndef __CID_CONF_PANEL_FACTORY__
#define __CID_CONF_PANEL_FACTORY__
#include <gtk/gtk.h>
#include <gdk/gdkscreen.h>
#include "cid-struct.h"
G_BEGIN_DECLS
/// Types of widgets that Cid can automatically build.
typedef enum {
/// boolean in a button to tick.
CID_WIDGET_CHECK_BUTTON='b',
/// boolean in a button to tick, that will control the sensitivity of the next widget.
CID_WIDGET_CHECK_CONTROL_BUTTON='B',
/// integer in a spin button.
CID_WIDGET_SPIN_INTEGER='i',
/// integer in an horizontal scale.
CID_WIDGET_HSCALE_INTEGER='I',
/// pair of integers for dimansion WidthxHeight
CID_WIDGET_SIZE_INTEGER='j',
/// double in a spin button.
CID_WIDGET_SPIN_DOUBLE='f',
/// 3 doubles with a color selector (RGB).
CID_WIDGET_COLOR_SELECTOR_RGB='c',
/// 4 doubles with a color selector (RGBA).
CID_WIDGET_COLOR_SELECTOR_RGBA='C',
/// double in an horizontal scale.
CID_WIDGET_HSCALE_DOUBLE='e',
/// list of views.
CID_WIDGET_VIEW_LIST='n',
/// list of themes in a combo, with preview and readme.
CID_WIDGET_THEME_LIST='h',
/// same but with a combo-entry to let the user enter any text.
CID_WIDGET_THEME_LIST_ENTRY='H',
/// list of user dock themes, with a check button to select several themes.
CID_WIDGET_USER_THEME_SELECTOR='x',
/// list of dock themes, sortable by name, rating, and sobriety.
CID_WIDGET_THEME_SELECTOR='R',
/// list of available animations.
CID_WIDGET_ANIMATION_LIST='a',
/// list of available desklet decorations.
CID_WIDGET_DESKLET_DECORATION_LIST='O',
/// same but with the 'default' choice too.
CID_WIDGET_DESKLET_DECORATION_LIST_WITH_DEFAULT='o',
/// list of gauges themes.
CID_WIDGET_GAUGE_LIST='g',
/// list of existing docks.
CID_WIDGET_DOCK_LIST='d',
/// list of installed icon themes.
CID_WIDGET_ICON_THEME_LIST='w',
/// list of available modules.
CID_WIDGET_MODULE_LIST='N',
/// a button to jump to another module inside the config panel.
CID_WIDGET_JUMP_TO_MODULE='m',
/// same but only if the module exists.
CID_WIDGET_JUMP_TO_MODULE_IF_EXISTS='M',
/// a text entry.
CID_WIDGET_STRING_ENTRY='s',
/// a text entry with a file selector.
CID_WIDGET_FILE_SELECTOR='S',
/// a text entry with a folder selector.
CID_WIDGET_FOLDER_SELECTOR='D',
/// a text entry with a file selector and a 'play' button, for sound files.
CID_WIDGET_SOUND_SELECTOR='u',
/// a text entry with a shortkey selector.
CID_WIDGET_SHORTKEY_SELECTOR='k',
/// a text entry with a class selector.
CID_WIDGET_CLASS_SELECTOR='K',
/// a text entry, where text is hidden and the result is encrypted in the .conf file.
CID_WIDGET_PASSWORD_ENTRY='p',
/// a font selector button.
CID_WIDGET_FONT_SELECTOR='P',
/// a text list.
CID_WIDGET_LIST='L',
/// a combo-entry, that is to say a list where one can add a custom choice.
CID_WIDGET_LIST_WITH_ENTRY='E',
/// a combo where the number of the line is used for the choice.
CID_WIDGET_NUMBERED_LIST='l',
/// a combo where the number of the line is used for the choice, and for controlling the sensitivity of the widgets below.
CID_WIDGET_NUMBERED_CONTROL_LIST='y',
/// a combo where the number of the line is used for the choice, and for controlling the sensitivity of the widgets below; controlled widgets are indicated in the list : {entry;index first widget;nb widgets}.
CID_WIDGET_NUMBERED_CONTROL_LIST_SELECTIVE='Y',
/// a tree view, where lines are numbered and can be moved up and down.
CID_WIDGET_TREE_VIEW_SORT='T',
/// a tree view, where lines can be added, removed, and moved up and down.
CID_WIDGET_TREE_VIEW_SORT_AND_MODIFY='U',
/// a tree view, where lines are numbered and can be selected or not.
CID_WIDGET_TREE_VIEW_MULTI_CHOICE='V',
/// an empty GtkContainer, to use by applets that want to build custom widgets.
CID_WIDGET_EMPTY_WIDGET='_',
/// a simple text label.
CID_WIDGET_TEXT_LABEL='>',
/// a simple text label.
CID_WIDGET_LINK='W',
/// a label containing the handbook of the applet.
CID_WIDGET_HANDBOOK='A',
/// an horizontal separator.
CID_WIDGET_SEPARATOR='v',
/// a frame. The previous frame will be closed.
CID_WIDGET_FRAME='F',
/// a frame inside an expander. The previous frame will be closed.
CID_WIDGET_EXPANDER='X',
/// an option only available in testing mode.
CID_WIDGET_TESTING='t',
CID_NB_GUI_WIDGETS
} CidGUIWidgetType;
typedef enum {
CID_MODEL_NAME = 0,
CID_MODEL_RESULT,
CID_MODEL_DESCRIPTION_FILE,
CID_MODEL_ACTIVE,
CID_MODEL_ORDER,
CID_MODEL_IMAGE,
CID_MODEL_ICON,
CID_MODEL_NB_COLUMNS
} _CidModelColumns;
void _cid_set_original_value (GtkButton *button, gpointer *data);
void cid_config_panel_destroyed (void);
gboolean cid_edit_conf_file_with_panel (GtkWindow *pWindow, gchar *cConfFilePath, const gchar *cTitle, int iWindowWidth, int iWindowHeight, gchar iIdentifier, gchar *cPresentedGroup, CidReadConfigFunc pConfigFunc, gchar *cGettextDomain);
gboolean cid_edit_conf_file_core (GtkWindow *pWindow, gchar *cConfFilePath, const gchar *cTitle, int iWindowWidth, int iWindowHeight, gchar iIdentifier, gchar *cPresentedGroup, CidReadConfigFunc pConfigFunc, gchar *cGettextDomain);
GtkWidget *cid_generate_ihm_from_keyfile (GKeyFile *pKeyFile, const gchar *cTitle, GtkWindow *pParentWindow, GSList **pWidgetList, gboolean bApplyButtonPresent, gchar iIdentifier, gchar *cPresentedGroup, gchar *cGettextDomain, GPtrArray *pDataGarbage);
G_END_DECLS
#endif
......@@ -27,7 +27,7 @@
#define _INSIDE_CID_MESSAGES_C_
#include "cid-messages.h"
#include "cid-utilities.h"
#include "tools/cid-utilities.h"
char s_iLogColor = '0';
static GLogLevelFlags gLogLevel = 0;
......
......@@ -26,7 +26,7 @@
#define __CID_STRUCT__
#include <gtk/gtk.h>
#include "cid-datatables.h"
#include "tools/cid-datatables.h"
#include "config.h"
G_BEGIN_DECLS
......
......@@ -29,35 +29,40 @@
#include <pthread.h>
#include <curl/curl.h>
#include "cid-amarok.h"
#include "cid-amarok2.h"
#include "cid-animation.h"
#include "cid-applet-canvas.h"
<