summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichele Calgaro <[email protected]>2022-06-18 22:59:25 +0900
committerMichele Calgaro <[email protected]>2022-07-10 17:21:43 +0900
commitbc7518bdba609f90ee89de8b4e7ddaa1e567b1a8 (patch)
tree7a3f446098bbdaafc799fc97dd1bb998a2456252 /src
parentf3116341d095d1b0237f7a36d1f3511759da7b03 (diff)
downloadtderadio-bc7518bdba609f90ee89de8b4e7ddaa1e567b1a8.tar.gz
tderadio-bc7518bdba609f90ee89de8b4e7ddaa1e567b1a8.zip
CMake conversion.
Signed-off-by: Michele Calgaro <[email protected]> Signed-off-by: Slávek Banko <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt89
-rw-r--r--src/Makefile.am2
-rw-r--r--src/debug-profiler.cpp4
-rw-r--r--src/include/alarm.h3
-rw-r--r--src/include/debug-profiler.h9
-rw-r--r--src/include/fileringbuffer.h3
-rw-r--r--src/include/frequencyradiostation.h4
-rw-r--r--src/include/frequencyseekhelper.h9
-rw-r--r--src/include/interfaces.h2
-rw-r--r--src/include/internetradiostation.h3
-rw-r--r--src/include/multibuffer.h3
-rw-r--r--src/include/pluginmanager.h5
-rw-r--r--src/include/plugins.h18
-rw-r--r--src/include/radiostation-config.h29
-rw-r--r--src/include/radiostation-listview.h4
-rw-r--r--src/include/radiostation.h6
-rw-r--r--src/include/ringbuffer.h3
-rw-r--r--src/include/seekhelper.h6
-rw-r--r--src/include/soundformat.h2
-rw-r--r--src/include/soundstreamid.h4
-rw-r--r--src/include/standardscandialog.h11
-rw-r--r--src/include/station-drag-object.h3
-rw-r--r--src/include/stationlist.h5
-rw-r--r--src/include/stationselector.h11
-rw-r--r--src/include/widgetplugins.h2
-rw-r--r--src/po/CMakeLists.txt1
-rw-r--r--src/radiostation.cpp4
-rw-r--r--src/stationlist.cpp2
-rw-r--r--src/stationselector-ui.ui1
-rw-r--r--src/tderadio.xpm189
30 files changed, 367 insertions, 70 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 0000000..f8370cd
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,89 @@
+include_directories(
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_BINARY_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/include
+ ${CMAKE_BINARY_DIR}
+ ${TQT_INCLUDE_DIRS}
+ ${TDE_INCLUDE_DIR}
+)
+
+link_directories(
+ ${TQT_LIBRARY_DIRS}
+ ${TDE_LIB_DIR}
+)
+
+
+##### tderadio (translations)
+
+tde_conditional_add_subdirectory( BUILD_TRANSLATIONS po )
+
+
+##### tderadio (shared)
+
+tde_add_library( tderadio SHARED AUTOMOC
+ META_INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/include
+ SOURCES
+ alarm.cpp
+ debug-profiler.cpp
+ errorlog-interfaces.cpp
+ fileringbuffer.cpp
+ frequencyradiostation.cpp
+ frequencyseekhelper.cpp
+ internetradiostation.cpp
+ multibuffer.cpp
+ plugin_configuration_dialog.cpp
+ plugins.cpp
+ pluginmanager.cpp
+ pluginmanager-configuration.cpp
+ pluginmanager-configuration-ui.ui
+ radio_interfaces.cpp
+ radiodevice_interfaces.cpp
+ radiodevicepool_interfaces.cpp
+ radiostation.cpp
+ radiostation-config.cpp
+ radiostation-listview.cpp
+ ringbuffer.cpp
+ seekhelper.cpp
+ soundformat.cpp
+ soundstreamclient_interfaces.cpp
+ soundstreamid.cpp
+ standardscandialog.cpp
+ standardscandialog-ui.ui
+ station-drag-object.cpp
+ stationlist.cpp
+ stationlistxmlhandler.cpp
+ stationselection_interfaces.cpp
+ stationselector.cpp
+ stationselector-ui.ui
+ timecontrol_interfaces.cpp
+ utils.cpp
+ widgetplugins.cpp
+
+ LINK tdecore-shared tdeui-shared tdeio-shared
+ VERSION 0.0.0
+ DESTINATION ${LIB_INSTALL_DIR}
+)
+
+
+##### tderadio (executable)
+
+tde_add_executable( tderadio AUTOMOC
+ META_INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/include
+ SOURCES
+ main.cpp
+ tderadioapp.cpp
+ aboutwidget.cpp
+
+ LINK tderadio-shared
+ DESTINATION ${BIN_INSTALL_DIR}
+)
+
+
+##### other data
+
+tde_create_translated_desktop( tderadio.desktop )
+
+INSTALL(
+ FILES tderadio.xpm
+ DESTINATION ${SHARE_INSTALL_PREFIX}/pixmaps
+)
diff --git a/src/Makefile.am b/src/Makefile.am
index 404cd96..2619e7c 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -8,8 +8,6 @@ METASOURCES = AUTO
META_INCLUDES = $(srcdir)/include
-KDE_CXXFLAGS="-UTQT_NO_ASCII_CAST"
-
bin_PROGRAMS = tderadio
tderadio_SOURCES = \
diff --git a/src/debug-profiler.cpp b/src/debug-profiler.cpp
index 5194b7e..f8262dd 100644
--- a/src/debug-profiler.cpp
+++ b/src/debug-profiler.cpp
@@ -21,8 +21,8 @@
#include <sys/resource.h>
-TimeProfiler global_time_profiler;
-MemProfiler global_mem_profiler;
+KDE_EXPORT TimeProfiler global_time_profiler;
+KDE_EXPORT MemProfiler global_mem_profiler;
Profiler::Profiler()
{
diff --git a/src/include/alarm.h b/src/include/alarm.h
index 14b4abc..ae28f4a 100644
--- a/src/include/alarm.h
+++ b/src/include/alarm.h
@@ -23,13 +23,14 @@
#endif
#include <tqdatetime.h>
+#include <kdemacros.h>
#include <vector>
/**
*@author Martin Witte
*/
-class Alarm
+class KDE_EXPORT Alarm
{
public:
diff --git a/src/include/debug-profiler.h b/src/include/debug-profiler.h
index 7ceb50d..1e46111 100644
--- a/src/include/debug-profiler.h
+++ b/src/include/debug-profiler.h
@@ -24,6 +24,7 @@
#include <tqstring.h>
#include <tqmap.h>
+#include <kdemacros.h>
#if (defined __i386__) || (defined __x86_64__)
static __inline__ unsigned long long int rdtsc()
@@ -39,7 +40,7 @@ static __inline__ unsigned long long int rdtsc()
}
#endif
-class Profiler
+class KDE_EXPORT Profiler
{
public:
Profiler();
@@ -76,14 +77,14 @@ protected:
};
-class TimeProfiler : public Profiler
+class KDE_EXPORT TimeProfiler : public Profiler
{
protected:
long long getCounter() const { return rdtsc(); }
};
-class MemProfiler : public Profiler
+class KDE_EXPORT MemProfiler : public Profiler
{
protected:
long long getCounter() const;
@@ -95,7 +96,7 @@ extern MemProfiler global_mem_profiler;
-class BlockProfiler
+class KDE_EXPORT BlockProfiler
{
public:
BlockProfiler(const TQString &descr);
diff --git a/src/include/fileringbuffer.h b/src/include/fileringbuffer.h
index 2978bec..0622af9 100644
--- a/src/include/fileringbuffer.h
+++ b/src/include/fileringbuffer.h
@@ -23,9 +23,10 @@
#endif
#include <tqstring.h>
+#include <kdemacros.h>
#include <stdio.h>
-class FileRingBuffer
+class KDE_EXPORT FileRingBuffer
{
public:
FileRingBuffer(const TQString &filename, TQ_UINT64 max_size);
diff --git a/src/include/frequencyradiostation.h b/src/include/frequencyradiostation.h
index 75c6ecd..eb62e4d 100644
--- a/src/include/frequencyradiostation.h
+++ b/src/include/frequencyradiostation.h
@@ -22,6 +22,8 @@
#include <config.h>
#endif
+#include <kdemacros.h>
+
#include "radiostation.h"
/**
@@ -35,7 +37,7 @@
// Kopenhagener Wellenplan: 9kHz
#define STATION_FREQ_INTERVAL_AM 0.009
-class FrequencyRadioStation : public RadioStation {
+class KDE_EXPORT FrequencyRadioStation : public RadioStation {
public:
FrequencyRadioStation ();
FrequencyRadioStation (float frequency);
diff --git a/src/include/frequencyseekhelper.h b/src/include/frequencyseekhelper.h
index 68ffe78..9fbdd87 100644
--- a/src/include/frequencyseekhelper.h
+++ b/src/include/frequencyseekhelper.h
@@ -23,15 +23,16 @@
#endif
#include <tqobject.h>
+#include <kdemacros.h>
#include "radiodevice_interfaces.h"
#include "seekhelper.h"
-class FrequencySeekHelper : public TQObject,
- public SeekHelper,
- public IFrequencyRadioClient
+class KDE_EXPORT FrequencySeekHelper : public TQObject,
+ public SeekHelper,
+ public IFrequencyRadioClient
{
Q_OBJECT
-
+
public:
FrequencySeekHelper(ISeekRadio &parent);
diff --git a/src/include/interfaces.h b/src/include/interfaces.h
index 0ed4a59..a969ef6 100644
--- a/src/include/interfaces.h
+++ b/src/include/interfaces.h
@@ -401,7 +401,7 @@ private:
#define INTERFACE(IF, cmplIF) \
class IF; \
class cmplIF; \
- class IF : public InterfaceBase<IF, cmplIF> \
+ class KDE_EXPORT IF : public InterfaceBase<IF, cmplIF> \
#define IF_CON_DESTRUCTOR(IF, n) \
IF() : BaseClass((n)) {} \
diff --git a/src/include/internetradiostation.h b/src/include/internetradiostation.h
index 716dba2..4389ee0 100644
--- a/src/include/internetradiostation.h
+++ b/src/include/internetradiostation.h
@@ -26,12 +26,13 @@
// KDE includes
#include <kurl.h>
+#include <kdemacros.h>
/**
* @author Klas Kalass, Ernst Martin Witte
*/
-class InternetRadioStation : public RadioStation {
+class KDE_EXPORT InternetRadioStation : public RadioStation {
public:
InternetRadioStation();
InternetRadioStation(KURL const &url);
diff --git a/src/include/multibuffer.h b/src/include/multibuffer.h
index e0ed05c..bebbac8 100644
--- a/src/include/multibuffer.h
+++ b/src/include/multibuffer.h
@@ -24,8 +24,9 @@
#include <tqsemaphore.h>
#include <tqstring.h>
+#include <kdemacros.h>
-class MultiBuffer
+class KDE_EXPORT MultiBuffer
{
public:
MultiBuffer(size_t n_buffers, size_t buffersize);
diff --git a/src/include/pluginmanager.h b/src/include/pluginmanager.h
index 3bf13f4..8c3dc86 100644
--- a/src/include/pluginmanager.h
+++ b/src/include/pluginmanager.h
@@ -24,6 +24,7 @@
#include <tqstring.h>
#include <tqptrdict.h>
+#include <kdemacros.h>
#include "plugins.h"
@@ -42,10 +43,10 @@ class TQMenuData;
class TDERadioApp;
-class PluginManager : public TQObject
+class KDE_EXPORT PluginManager : public TQObject
{
Q_OBJECT
-
+
public :
PluginManager(const TQString &name,
TDERadioApp *app,
diff --git a/src/include/plugins.h b/src/include/plugins.h
index c39b65e..cb79d14 100644
--- a/src/include/plugins.h
+++ b/src/include/plugins.h
@@ -80,7 +80,7 @@ struct ConfigPageInfo
typedef ConfigPageInfo AboutPageInfo;
-class PluginBase : public IErrorLogClient
+class KDE_EXPORT PluginBase : public IErrorLogClient
{
friend class PluginManager;
public :
@@ -135,22 +135,22 @@ protected :
#define PLUGIN_LIBRARY_FUNCTIONS(class_name, i18nName, description) \
-extern "C" void TDERadioPlugin_LoadLibrary() \
+extern "C" KDE_EXPORT void TDERadioPlugin_LoadLibrary() \
{ \
TDEGlobal::locale()->insertCatalogue(i18nName); \
} \
\
-extern "C" void TDERadioPlugin_UnloadLibrary() \
+extern "C" KDE_EXPORT void TDERadioPlugin_UnloadLibrary() \
{ \
TDEGlobal::locale()->removeCatalogue(i18nName); \
} \
\
-extern "C" void TDERadioPlugin_GetAvailablePlugins(TQMap<TQString, TQString> &info) \
+extern "C" KDE_EXPORT void TDERadioPlugin_GetAvailablePlugins(TQMap<TQString, TQString> &info) \
{ \
info.insert(#class_name, (description)); \
} \
\
-extern "C" PluginBase *TDERadioPlugin_CreatePlugin(const TQString &type, const TQString &object_name) \
+extern "C" KDE_EXPORT PluginBase *TDERadioPlugin_CreatePlugin(const TQString &type, const TQString &object_name) \
{ \
if (type == #class_name) { \
return new class_name(object_name); \
@@ -161,23 +161,23 @@ extern "C" PluginBase *TDERadioPlugin_CreatePlugin(const TQString &type, const T
#define PLUGIN_LIBRARY_FUNCTIONS2(class_name1, i18nName, description1, class_name2, description2) \
-extern "C" void TDERadioPlugin_LoadLibrary() \
+extern "C" KDE_EXPORT void TDERadioPlugin_LoadLibrary() \
{ \
TDEGlobal::locale()->insertCatalogue(i18nName); \
} \
\
-extern "C" void TDERadioPlugin_UnloadLibrary() \
+extern "C" KDE_EXPORT void TDERadioPlugin_UnloadLibrary() \
{ \
TDEGlobal::locale()->removeCatalogue(i18nName); \
} \
\
-extern "C" void TDERadioPlugin_GetAvailablePlugins(TQMap<TQString, TQString> &info) \
+extern "C" KDE_EXPORT void TDERadioPlugin_GetAvailablePlugins(TQMap<TQString, TQString> &info) \
{ \
info.insert(#class_name1, (description1)); \
info.insert(#class_name2, (description2)); \
} \
\
-extern "C" PluginBase *TDERadioPlugin_CreatePlugin(const TQString &type, const TQString &object_name) \
+extern "C" KDE_EXPORT PluginBase *TDERadioPlugin_CreatePlugin(const TQString &type, const TQString &object_name) \
{ \
if (type == #class_name1) { \
return new class_name1(object_name); \
diff --git a/src/include/radiostation-config.h b/src/include/radiostation-config.h
index 2efad05..8cf3132 100644
--- a/src/include/radiostation-config.h
+++ b/src/include/radiostation-config.h
@@ -23,32 +23,33 @@
#endif
#include <tqwidget.h>
+#include <kdemacros.h>
class RadioStation;
-class RadioStationConfig : public TQWidget
+class KDE_EXPORT RadioStationConfig : public TQWidget
{
Q_OBJECT
-
+
public:
- RadioStationConfig(TQWidget *parent);
+ RadioStationConfig(TQWidget *parent);
~RadioStationConfig();
virtual void setStationData (const RadioStation &rs) = 0;
virtual void storeStationData (RadioStation &rs) = 0;
signals:
- virtual void changed(RadioStationConfig *);
+ virtual void changed(RadioStationConfig *);
};
-class UndefinedRadioStationConfig : public RadioStationConfig
+class KDE_EXPORT UndefinedRadioStationConfig : public RadioStationConfig
{
Q_OBJECT
-
+
public:
- UndefinedRadioStationConfig (TQWidget *parent);
- ~UndefinedRadioStationConfig();
+ UndefinedRadioStationConfig (TQWidget *parent);
+ ~UndefinedRadioStationConfig();
virtual void setStationData (const RadioStation &rs);
virtual void storeStationData (RadioStation &rs);
@@ -58,23 +59,23 @@ public:
class TQSpinBox;
-class FrequencyRadioStationConfig : public RadioStationConfig
+class KDE_EXPORT FrequencyRadioStationConfig : public RadioStationConfig
{
Q_OBJECT
-
+
public:
- FrequencyRadioStationConfig (TQWidget *parent);
- ~FrequencyRadioStationConfig();
+ FrequencyRadioStationConfig (TQWidget *parent);
+ ~FrequencyRadioStationConfig();
virtual void setStationData (const RadioStation &rs);
virtual void storeStationData (RadioStation &rs);
protected slots:
- virtual void slotValueChanged(int);
+ virtual void slotValueChanged(int);
protected:
- TQSpinBox *m_editFrequency;
+ TQSpinBox *m_editFrequency;
};
diff --git a/src/include/radiostation-listview.h b/src/include/radiostation-listview.h
index 2ecb86f..f96269f 100644
--- a/src/include/radiostation-listview.h
+++ b/src/include/radiostation-listview.h
@@ -28,10 +28,10 @@
class RadioStation;
class StationList;
-class RadioStationListView : public TDEListView
+class KDE_EXPORT RadioStationListView : public TDEListView
{
Q_OBJECT
-
+
public:
RadioStationListView(TQWidget *parent=0, const char *name=0);
virtual ~RadioStationListView();
diff --git a/src/include/radiostation.h b/src/include/radiostation.h
index 68d0325..8534bf0 100644
--- a/src/include/radiostation.h
+++ b/src/include/radiostation.h
@@ -67,7 +67,7 @@ extern struct RegisterStationClass {} registerStationClass;
class RadioStationConfig;
-class RadioStation
+class KDE_EXPORT RadioStation
{
protected:
RadioStation (RegisterStationClass, const TQString &classname);
@@ -142,7 +142,7 @@ private:
-class UndefinedRadioStation : public RadioStation
+class KDE_EXPORT UndefinedRadioStation : public RadioStation
{
public:
UndefinedRadioStation (RegisterStationClass) : RadioStation (registerStationClass, getClassName()) {}
@@ -159,6 +159,6 @@ public:
};
-extern const UndefinedRadioStation undefinedRadioStation;
+extern "C" const UndefinedRadioStation undefinedRadioStation;
#endif
diff --git a/src/include/ringbuffer.h b/src/include/ringbuffer.h
index 1f545ca..d82c546 100644
--- a/src/include/ringbuffer.h
+++ b/src/include/ringbuffer.h
@@ -23,8 +23,9 @@
#endif
#include <sys/types.h>
+#include <kdemacros.h>
-class RingBuffer
+class KDE_EXPORT RingBuffer
{
public:
RingBuffer(size_t size);
diff --git a/src/include/seekhelper.h b/src/include/seekhelper.h
index f61ad9d..76f0e81 100644
--- a/src/include/seekhelper.h
+++ b/src/include/seekhelper.h
@@ -22,12 +22,14 @@
#include <config.h>
#endif
+#include <kdemacros.h>
+
#include "radiodevice_interfaces.h"
#include "soundstreamclient_interfaces.h"
-class SeekHelper : public IRadioDeviceClient,
- public ISoundStreamClient
+class KDE_EXPORT SeekHelper : public IRadioDeviceClient,
+ public ISoundStreamClient
{
public:
typedef enum { off, searchWorse, searchBest } state_t;
diff --git a/src/include/soundformat.h b/src/include/soundformat.h
index 0f07d9a..566cddc 100644
--- a/src/include/soundformat.h
+++ b/src/include/soundformat.h
@@ -26,7 +26,7 @@
#include <tqstring.h>
#include <tdeconfig.h>
-struct SoundFormat {
+struct KDE_EXPORT SoundFormat {
unsigned m_SampleRate;
unsigned m_Channels;
unsigned m_SampleBits;
diff --git a/src/include/soundstreamid.h b/src/include/soundstreamid.h
index e7aa4d5..b801e6b 100644
--- a/src/include/soundstreamid.h
+++ b/src/include/soundstreamid.h
@@ -22,7 +22,9 @@
#include <config.h>
#endif
-class SoundStreamID {
+#include <kdemacros.h>
+
+class KDE_EXPORT SoundStreamID {
SoundStreamID(int _id, int _phys_id);
public:
diff --git a/src/include/standardscandialog.h b/src/include/standardscandialog.h
index 2be7c74..ef16d2f 100644
--- a/src/include/standardscandialog.h
+++ b/src/include/standardscandialog.h
@@ -29,14 +29,15 @@
#include <tqtimer.h>
#include <tqdatetime.h>
+#include <kdemacros.h>
-class StandardScanDialog : public StandardScanDialogUI,
- public ISeekRadioClient,
-// public IRadioSoundClient,
- public IRadioClient
+class KDE_EXPORT StandardScanDialog : public StandardScanDialogUI,
+ public ISeekRadioClient,
+// public IRadioSoundClient,
+ public IRadioClient
{
Q_OBJECT
-
+
public:
StandardScanDialog(TQWidget *parent);
~StandardScanDialog();
diff --git a/src/include/station-drag-object.h b/src/include/station-drag-object.h
index 5796dd0..2e39653 100644
--- a/src/include/station-drag-object.h
+++ b/src/include/station-drag-object.h
@@ -19,8 +19,9 @@
#define KRADIO_STATION_DRAG_OBJECT_H
#include <tqdragobject.h>
+#include <kdemacros.h>
-class StationDragObject : public TQStoredDrag
+class KDE_EXPORT StationDragObject : public TQStoredDrag
{
public:
StationDragObject(const TQStringList &stationIDs, TQWidget *dragSource = NULL, const char * name = NULL);
diff --git a/src/include/stationlist.h b/src/include/stationlist.h
index dcacdca..0c8a6ff 100644
--- a/src/include/stationlist.h
+++ b/src/include/stationlist.h
@@ -26,6 +26,7 @@
#include "errorlog-interfaces.h"
#include <tqptrlist.h>
+#include <kdemacros.h>
class RadioStation;
class KURL;
@@ -52,7 +53,7 @@ class KURL;
*/
-class RawStationList : public TQPtrList<RadioStation>
+class KDE_EXPORT RawStationList : public TQPtrList<RadioStation>
{
public:
@@ -100,7 +101,7 @@ protected:
* @author Klas Kalass, Ernst Martin Witte
*/
-class StationList {
+class KDE_EXPORT StationList {
public:
StationList();
StationList(const StationList &sl);
diff --git a/src/include/stationselector.h b/src/include/stationselector.h
index 009293e..3f83f90 100644
--- a/src/include/stationselector.h
+++ b/src/include/stationselector.h
@@ -23,6 +23,7 @@
#endif
#include <tqstringlist.h>
+#include <kdemacros.h>
#include "radio_interfaces.h"
#include "stationselection_interfaces.h"
@@ -34,12 +35,12 @@
class RadioStationListView;
-class StationSelector : public StationSelectorUI,
- public IRadioClient,
- public IStationSelectionClient
+class KDE_EXPORT StationSelector : public StationSelectorUI,
+ public IRadioClient,
+ public IStationSelectionClient
{
Q_OBJECT
-
+
public :
StationSelector (TQWidget *parent);
~StationSelector ();
@@ -62,7 +63,7 @@ public :
void saveState (TDEConfig *) const;
void restoreState (TDEConfig *);
-
+
bool isDirty () const { return m_dirty; }
protected slots:
diff --git a/src/include/widgetplugins.h b/src/include/widgetplugins.h
index 69bb0bf..c29bc2f 100644
--- a/src/include/widgetplugins.h
+++ b/src/include/widgetplugins.h
@@ -26,7 +26,7 @@
class TQWidget;
-class WidgetPluginBase : public PluginBase
+class KDE_EXPORT WidgetPluginBase : public PluginBase
{
public :
WidgetPluginBase(const TQString &name, const TQString &description);
diff --git a/src/po/CMakeLists.txt b/src/po/CMakeLists.txt
new file mode 100644
index 0000000..24e3bd8
--- /dev/null
+++ b/src/po/CMakeLists.txt
@@ -0,0 +1 @@
+tde_add_project_translations()
diff --git a/src/radiostation.cpp b/src/radiostation.cpp
index 4870f3d..ba72c44 100644
--- a/src/radiostation.cpp
+++ b/src/radiostation.cpp
@@ -42,8 +42,8 @@ TQDict<RadioStation> *RadioStation::stationClassRegistry = 0;
/////////////////////////////////////////////////////////////////////////////
-RegisterStationClass registerStationClass;
-const UndefinedRadioStation undefinedRadioStation (registerStationClass);
+KDE_EXPORT RegisterStationClass registerStationClass;
+extern "C" const KDE_EXPORT UndefinedRadioStation undefinedRadioStation (registerStationClass);
/////////////////////////////////////////////////////////////////////////////
diff --git a/src/stationlist.cpp b/src/stationlist.cpp
index b8bed53..391efd9 100644
--- a/src/stationlist.cpp
+++ b/src/stationlist.cpp
@@ -32,7 +32,7 @@
//////////////////////////////////////////////////////////////////////////////
-const StationList emptyStationList;
+const KDE_EXPORT StationList emptyStationList;
//////////////////////////////////////////////////////////////////////////////
diff --git a/src/stationselector-ui.ui b/src/stationselector-ui.ui
index 3020fe5..6391158 100644
--- a/src/stationselector-ui.ui
+++ b/src/stationselector-ui.ui
@@ -168,4 +168,5 @@
<include location="global" impldecl="in implementation">kpushbutton.h</include>
<include location="global" impldecl="in implementation">radiostation-listview.h</include>
</includes>
+<exportmacro>KDE_EXPORT</exportmacro>
</UI>
diff --git a/src/tderadio.xpm b/src/tderadio.xpm
new file mode 100644
index 0000000..d58ca3f
--- /dev/null
+++ b/src/tderadio.xpm
@@ -0,0 +1,189 @@
+/* XPM */
+static char *tderadio[] = {
+/* columns rows colors chars-per-pixel */
+"32 32 151 2 ",
+" c #000000",
+". c #0D0603",
+"X c #00040A",
+"o c #06090E",
+"O c #150D0A",
+"+ c #1A120F",
+"@ c #010710",
+"# c #090C10",
+"$ c #050E1C",
+"% c #0C121A",
+"& c #29150C",
+"* c #351406",
+"= c #3B180A",
+"- c #2C1B14",
+"; c #301E16",
+": c #32211A",
+"> c #3C241B",
+", c #030F22",
+"< c #111925",
+"1 c #0C1D37",
+"2 c #0D1F3A",
+"3 c #172437",
+"4 c #13223A",
+"5 c #19273C",
+"6 c #1A283D",
+"7 c #551F09",
+"8 c #411E10",
+"9 c #452314",
+"0 c #40261B",
+"q c #552917",
+"w c #752A0B",
+"e c #782D0E",
+"r c #68321C",
+"t c #7C3619",
+"y c #462C22",
+"u c #463026",
+"i c #4C3329",
+"p c #5A3221",
+"a c #543529",
+"s c #563527",
+"d c #663B2A",
+"f c #773E26",
+"g c #723F2A",
+"h c #603F31",
+"j c #6E412E",
+"k c #654132",
+"l c #6A493A",
+"z c #6E4331",
+"x c #744735",
+"c c #172945",
+"v c #1A2E4E",
+"b c #1D3456",
+"n c #0C397F",
+"m c #1C427C",
+"M c #284675",
+"N c #823718",
+"B c #84391A",
+"V c #8A3F20",
+"C c #8D4223",
+"Z c #89462A",
+"A c #914627",
+"S c #924728",
+"D c #954A2B",
+"F c #994E2F",
+"G c #844A31",
+"H c #9A4F30",
+"J c #86533E",
+"K c #9D5233",
+"L c #955337",
+"P c #A15636",
+"I c #A65B3B",
+"U c #A95E3F",
+"Y c #895945",
+"T c #AA5F40",
+"R c #A25F44",
+"E c #8D614E",
+"W c #93634E",
+"Q c #996854",
+"! c #936451",
+"~ c #AC6142",
+"^ c #A2684F",
+"/ c #B16646",
+"( c #B26748",
+") c #B66B4C",
+"_ c #B96E4E",
+"` c #AC6D52",
+"' c #AD745B",
+"] c #BD7252",
+"[ c #AF7860",
+"{ c #C17656",
+"} c #C57A5B",
+"| c #C87D5E",
+" . c #CA7F60",
+".. c #CD8263",
+"X. c #C58469",
+"o. c #D18666",
+"O. c #D28768",
+"+. c #D58A6B",
+"@. c #D98E6E",
+"#. c #DA8F70",
+"$. c #DD9272",
+"%. c #D39174",
+"&. c #E19676",
+"*. c #E59A7A",
+"=. c #E99E7E",
+"-. c #00378B",
+";. c #033A8D",
+":. c #0C3C85",
+">. c #083E90",
+",. c #1E4888",
+"<. c #0E4393",
+"1. c #114595",
+"2. c #154998",
+"3. c #1A4D9B",
+"4. c #1D509D",
+"5. c #2C4D80",
+"6. c #2F538A",
+"7. c #325994",
+"8. c #3F6296",
+"9. c #2456A2",
+"0. c #2A5BA6",
+"q. c #2759A4",
+"w. c #3666AE",
+"e. c #3968AF",
+"r. c #3D6BB2",
+"t. c #42679E",
+"y. c #416FB5",
+"u. c #4371B5",
+"i. c #4976B9",
+"p. c #4C79BC",
+"a. c #507CBE",
+"s. c #577CB4",
+"d. c #537FC0",
+"f. c #5A81BC",
+"g. c #5681C2",
+"h. c #5D86C4",
+"j. c #5E88C8",
+"k. c #628BCA",
+"l. c #688CC4",
+"z. c #6790CD",
+"x. c #6B92CE",
+"c. c #6E96D2",
+"v. c #739AD5",
+"b. c #7EA3DC",
+"n. c #EDA282",
+"m. c #F1A686",
+"M. c #F4A989",
+"N. c #F9AE8E",
+"B. c #FCB191",
+"V. c #81A6DD",
+"C. c None",
+/* pixels */
+"C.C.C.C.C.C.v C.C.C.C.C.C. C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.",
+"C.C. 4 C.C.C. C.C.n.=.*.*.m.=.m.C.C.C.C.C.C.C.",
+" C.C.C.C.r.C.C.C. C.C.C. - ..I S C A H ) ..*.C.C.C.C.C.C.",
+" C.C.C.C.C.M C.C.C.C.C. C.&.> p P S S A V B C } *.C.C.C.C.C.",
+"C.C.C. $ b o C.C.C. : +.R . Z F P T I H C F +.&.C.C.C.C.",
+"C. C.C.C.r.C.C.C. C.C.C.O ` P 9 0 P _ +.@.} ~ K ) &.$.C.C.C.",
+"C. C.C.C.r.i.h.C.C.C. C.C.Y > H t . K _ &.n.n.@._ ~ +.$.C.C.C.",
+" C.C.3.9.r.d.k.v.C.C.C. C.+.O L A & f ) $.n.m.M.&...+.@[email protected].",
+"C.C.C.>.9.r.d.k.v.b.C.C. W +.s z K p d } +.&.M.N.M.=.$.@.+.C.C.",
+"C.C.<.;.4.w.i.j.z.c.x.C.u k +.Y a S g p _ _ | *.N.B.N.*.O.o.C.C.",
+"C.C.;.-.1.0.r.p.g.g.d.C.W y o.^ a T 7 * B C I } m.B.B.*[email protected].",
+"C.C.<.-.>.3.0.e.y.u.i.C.C.i +.' a ..r * w w e P #[email protected].",
+"C.C.C.-.-.;.2.9.q.q.C.C.: l =.Q k #.Y 9 A N e B O.N.B.n.#[email protected].",
+"C.C.C.1.-.-.-.>.1.C.C.C.X [ m.l ! @.k j ~ I S A [email protected].",
+" C.C.C.1.1.1.9.u.C.C.C. m.m.+ %...- G P S S H | m.N.*.o.+.C.C.",
+"C. C.C.1.9.r.a.j.C.C. C.m.E i O.Z . V S S C F } n.N.&.o.o.C.C.",
+"C.C. C.<.9.r.a.f.C. C.C.X.O X...8 = t S P P / | *.M.$.o.C.C.C.",
+"C.C.C.X X 1 v 3 # C.C.C.O x +.` . t B K / } ] ..=.n...| C.C.C.",
+" C.C.C.:.m 5.t.h.C.C.C. C.C._ ; q F U ) &.=.+.&.=.*.| C.C.C.C.",
+" C.C.<.q.r.p.k.C. C.C.C.0 0 P / { @.*.=.n.m.*.@.| C.C.C.C.",
+"C.C. X $ 2 c 5 % o C.C.C.C. > ..+.o.O.@.=.n.m.m.*...} C.C.C.C.",
+"C.C.C.-.:.m 6.8.f.c.C.C.C. +.=.M.*.| +.*.n.n.=.@.] ..C.C.C.C.",
+" C.-.<.q.r.a.k.l.C. C.C.*.m.M.$.O.$.n.n.*.@. .| C.C.C.C.C.",
+"C.C. X , 1 4 5 < # C.C.C.C.&.n.n.&.&[email protected].",
+"C.C.C.-.n ,.7.t.s.v.C.C.C.C.C.C...=.=.&.=.m.M.=.@.+.C.C.C.C.C.C.",
+"C.C.C.-.<.9.r.a.k.v.C.C.C.C.C.C.] | +.@.=.m.n.*[email protected].",
+"C.C.C.-.<.q.r.a.k.v.C.C.C.C.C.C.C.) { o.=.=.&.O...C.C.C.C.C.C.C.",
+"C.C.-.-.<.9.r.a.k.v.C.C.C.C.C.C.C.C.) ) +.+...+.C.C.C.C.C.C.C.C.",
+"C.C.-.-.<.q.r.p.k.c.b.C.C.C.C.C.C.C.( U { / { C.C.C.C.C.C.C.C.C.",
+"C.C.-.-.<.q.r.a.k.v.V.C.C.C.C.C.C.C.C./ U C.C.C.C.C.C.C.C.C.C.C.",
+"C.C.C.-.<.9.r.d.k.v.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.",
+"C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C."
+};