Changeset 34


Ignore:
Timestamp:
03/02/2008 17:28:19 (3 years ago)
Author:
douglas
Message:

Welcome to the horrible Glib doom that is Audacious 1.4, die in a fire!

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • Audacious/Audacious.cpp

    r23 r34  
    55// $Id$ 
    66 
    7 #include <audacious/beepctrl.h> 
     7#include <audacious/audctrl.h> 
     8#include <audacious/dbus.h> 
    89 
    910#include "Audacious.hpp" 
    1011 
     12namespace Audacious 
     13{ 
     14 
     15Audacious::Audacious() 
     16{ 
     17        ::g_type_init(); 
     18 
     19        ::GError *error(NULL); 
     20        ::DBusGConnection *connection(::dbus_g_bus_get(DBUS_BUS_SESSION, &error)); 
     21 
     22        if (connection == NULL) 
     23                throw Error(error); 
     24 
     25        session = ::dbus_g_proxy_new_for_name(connection, AUDACIOUS_DBUS_SERVICE, AUDACIOUS_DBUS_PATH, AUDACIOUS_DBUS_INTERFACE); 
     26} 
     27 
    1128void Audacious::Playlist(char **list, int size, bool enqueue) 
    1229{ 
    13         ::xmms_remote_playlist(session, list, size, enqueue); 
    14 } 
    15  
    16 int Audacious::GetVersion() const 
    17 { 
    18         return ::xmms_remote_get_version(session); 
     30        ::audacious_remote_playlist(session, list, size, enqueue); 
     31} 
     32 
     33std::string Audacious::GetVersion() const 
     34{ 
     35        return ::audacious_remote_get_version(session); 
    1936} 
    2037 
    2138void Audacious::PlaylistAdd(::GList *list) 
    2239{ 
    23         ::xmms_remote_playlist_add(session, list); 
    24 } 
    25  
    26 void Audacious::PlaylistDelete(int position) 
    27 { 
    28         ::xmms_remote_playlist_delete(session, position); 
     40        ::audacious_remote_playlist_add(session, list); 
     41} 
     42 
     43void Audacious::PlaylistDelete(unsigned position) 
     44{ 
     45        ::audacious_remote_playlist_delete(session, position); 
    2946} 
    3047 
    3148void Audacious::Play() 
    3249{ 
    33         ::xmms_remote_play(session); 
     50        ::audacious_remote_play(session); 
    3451} 
    3552 
    3653void Audacious::Pause() 
    3754{ 
    38         ::xmms_remote_pause(session); 
     55        ::audacious_remote_pause(session); 
    3956} 
    4057 
    4158void Audacious::Stop() 
    4259{ 
    43         ::xmms_remote_stop(session); 
     60        ::audacious_remote_stop(session); 
    4461} 
    4562 
    4663bool Audacious::IsPlaying() const 
    4764{ 
    48         return ::xmms_remote_is_playing(session); 
     65        return ::audacious_remote_is_playing(session); 
    4966} 
    5067 
    5168bool Audacious::IsPaused() const 
    5269{ 
    53         return ::xmms_remote_is_paused(session); 
     70        return ::audacious_remote_is_paused(session); 
    5471} 
    5572 
    5673int Audacious::GetPlaylistPosition() const 
    5774{ 
    58         return ::xmms_remote_get_playlist_pos(session); 
    59 } 
    60  
    61 void Audacious::SetPlaylistPosition(int position) 
    62 { 
    63         ::xmms_remote_set_playlist_pos(session, position); 
     75        return ::audacious_remote_get_playlist_pos(session); 
     76} 
     77 
     78void Audacious::SetPlaylistPosition(unsigned position) 
     79{ 
     80        ::audacious_remote_set_playlist_pos(session, position); 
    6481} 
    6582 
    6683int Audacious::GetPlaylistLength() const 
    6784{ 
    68         return ::xmms_remote_get_playlist_length(session); 
     85        return ::audacious_remote_get_playlist_length(session); 
    6986} 
    7087 
    7188void Audacious::PlaylistClear() 
    7289{ 
    73         return ::xmms_remote_playlist_clear(session); 
     90        return ::audacious_remote_playlist_clear(session); 
    7491} 
    7592 
    7693int Audacious::GetOutputTime() const 
    7794{ 
    78         return ::xmms_remote_get_output_time(session); 
     95        return ::audacious_remote_get_output_time(session); 
    7996} 
    8097 
    8198void Audacious::JumpToTime(int position) 
    8299{ 
    83         ::xmms_remote_jump_to_time(session, position); 
     100        ::audacious_remote_jump_to_time(session, position); 
    84101} 
    85102 
    86103void Audacious::GetVolume(int& left, int& right) const 
    87104{ 
    88         ::xmms_remote_get_volume(session, &left, &right); 
     105        ::audacious_remote_get_volume(session, &left, &right); 
    89106} 
    90107 
    91108int Audacious::GetMainVolume() const 
    92109{ 
    93         return ::xmms_remote_get_main_volume(session); 
     110        return ::audacious_remote_get_main_volume(session); 
    94111} 
    95112 
    96113int Audacious::GetBalance() const 
    97114{ 
    98         return ::xmms_remote_get_balance(session); 
     115        return ::audacious_remote_get_balance(session); 
    99116} 
    100117 
    101118void Audacious::SetVolume(int left, int right) 
    102119{ 
    103         ::xmms_remote_set_volume(session, left, right); 
     120        ::audacious_remote_set_volume(session, left, right); 
    104121} 
    105122 
    106123void Audacious::SetMainVolume(int volume) 
    107124{ 
    108         ::xmms_remote_set_main_volume(session, volume); 
     125        ::audacious_remote_set_main_volume(session, volume); 
    109126} 
    110127 
    111128void Audacious::SetBalance(int balance) 
    112129{ 
    113         ::xmms_remote_set_balance(session, balance); 
     130        ::audacious_remote_set_balance(session, balance); 
    114131} 
    115132 
    116133std::string Audacious::GetSkin() const 
    117134{ 
    118         return ::xmms_remote_get_skin(session); 
     135        return ::audacious_remote_get_skin(session); 
    119136} 
    120137 
    121138void Audacious::SetSkin(const std::string &skin) 
    122139{ 
    123         ::xmms_remote_set_skin(session, const_cast<char*>(skin.c_str())); 
     140        ::audacious_remote_set_skin(session, const_cast<char*>(skin.c_str())); 
    124141} 
    125142 
    126143std::string Audacious::GetPlaylistFile(int position) const 
    127144{ 
    128         return ::xmms_remote_get_playlist_file(session, position); 
     145        return ::audacious_remote_get_playlist_file(session, position); 
    129146} 
    130147 
    131148std::string Audacious::GetPlaylistTitle(int position) const 
    132149{ 
    133         return ::xmms_remote_get_playlist_title(session, position); 
     150        return ::audacious_remote_get_playlist_title(session, position); 
    134151} 
    135152 
    136153int Audacious::GetPlaylistTime(int position) const 
    137154{ 
    138         return ::xmms_remote_get_playlist_time(session, position); 
     155        return ::audacious_remote_get_playlist_time(session, position); 
    139156} 
    140157 
    141158void Audacious::GetInfo(int &rate, int &frequency, int &channels) const 
    142159{ 
    143         ::xmms_remote_get_info(session, &rate, &frequency, &channels); 
     160        ::audacious_remote_get_info(session, &rate, &frequency, &channels); 
    144161} 
    145162 
    146163void Audacious::MainWindowToggle(bool show) 
    147164{ 
    148         ::xmms_remote_main_win_toggle(session, show); 
     165        ::audacious_remote_main_win_toggle(session, show); 
    149166} 
    150167 
    151168void Audacious::PlaylistWindowToggle(bool show) 
    152169{ 
    153         ::xmms_remote_pl_win_toggle(session, show); 
     170        ::audacious_remote_pl_win_toggle(session, show); 
    154171} 
    155172 
    156173void Audacious::EqualizerWindowToggle(bool show) 
    157174{ 
    158         ::xmms_remote_eq_win_toggle(session, show); 
     175        ::audacious_remote_eq_win_toggle(session, show); 
    159176} 
    160177 
    161178bool Audacious::IsMainWindow() const 
    162179{ 
    163         return ::xmms_remote_is_main_win(session); 
     180        return ::audacious_remote_is_main_win(session); 
    164181} 
    165182 
    166183bool Audacious::IsPlaylistWindow() const 
    167184{ 
    168         return ::xmms_remote_is_pl_win(session); 
     185        return ::audacious_remote_is_pl_win(session); 
    169186} 
    170187 
    171188bool Audacious::IsEqualizerWindow() const 
    172189{ 
    173         return ::xmms_remote_is_eq_win(session); 
     190        return ::audacious_remote_is_eq_win(session); 
    174191} 
    175192 
    176193void Audacious::ShowPreferencesBox() 
    177194{ 
    178         ::xmms_remote_show_prefs_box(session); 
     195        ::audacious_remote_show_prefs_box(session); 
    179196} 
    180197 
    181198void Audacious::ToggleAlwaysOnTop(bool always) 
    182199{ 
    183         ::xmms_remote_toggle_aot(session, always); 
     200        ::audacious_remote_toggle_aot(session, always); 
    184201} 
    185202 
    186203void Audacious::Eject() 
    187204{ 
    188         ::xmms_remote_eject(session); 
     205        ::audacious_remote_eject(session); 
    189206} 
    190207 
    191208void Audacious::PlaylistPrevious() 
    192209{ 
    193         ::xmms_remote_playlist_prev(session); 
     210        ::audacious_remote_playlist_prev(session); 
    194211} 
    195212 
    196213void Audacious::PlaylistNext() 
    197214{ 
    198         ::xmms_remote_playlist_next(session); 
     215        ::audacious_remote_playlist_next(session); 
    199216} 
    200217 
    201218void Audacious::PlaylistAddUrl(const std::string &url) 
    202219{ 
    203         ::xmms_remote_playlist_add_url_string(session, const_cast<char*>(url.c_str())); 
     220        ::audacious_remote_playlist_add_url_string(session, const_cast<char*>(url.c_str())); 
    204221} 
    205222 
    206223bool Audacious::IsRunning() const 
    207224{ 
    208         return ::xmms_remote_is_running(session); 
     225        return ::audacious_remote_is_running(session); 
    209226} 
    210227 
    211228void Audacious::ToggleRepeat() 
    212229{ 
    213         ::xmms_remote_toggle_repeat(session); 
     230        ::audacious_remote_toggle_repeat(session); 
    214231} 
    215232 
    216233void Audacious::ToggleShuffle() 
    217234{ 
    218         ::xmms_remote_toggle_shuffle(session); 
     235        ::audacious_remote_toggle_shuffle(session); 
    219236} 
    220237 
    221238bool Audacious::IsRepeat() const 
    222239{ 
    223         return ::xmms_remote_is_repeat(session); 
     240        return ::audacious_remote_is_repeat(session); 
    224241} 
    225242 
    226243bool Audacious::IsShuffle() const 
    227244{ 
    228         return ::xmms_remote_is_shuffle(session); 
    229 } 
    230  
    231 void Audacious::GetEqualizer(float& preamp, float bands[10]) const 
    232 { 
    233         float* bands_; 
    234  
    235         ::xmms_remote_get_eq(session, &preamp, &bands_); 
    236  
    237         _forall (uint8_t, index, 0, 10) 
    238                 bands[index] = bands[index]; 
     245        return ::audacious_remote_is_shuffle(session); 
     246} 
     247 
     248void Audacious::GetEqualizer(double& preamp, double bands[10]) const 
     249{ 
     250        ::GArray* bands_; 
     251 
     252        ::audacious_remote_get_eq(session, &preamp, &bands_); 
     253 
     254        _forall (unsigned, index, 0, 10) 
     255                bands[index] = g_array_index(bands_, ::gdouble, index); 
    239256 
    240257        ::g_free(bands_); 
    241258} 
    242259 
    243 float Audacious::GetEqualizerPreamp() const 
    244 { 
    245         return ::xmms_remote_get_eq_preamp(session); 
    246 } 
    247  
    248 float Audacious::GetEqualizerBand(int band) const 
    249 { 
    250         return ::xmms_remote_get_eq_band(session, band); 
    251 } 
    252  
    253 void Audacious::SetEqualizer(float preamp, float bands[10]) 
    254 { 
    255         ::xmms_remote_set_eq(session, preamp, bands); 
    256 } 
    257  
    258 void Audacious::SetEqualizerPreamp(float preamp) 
    259 { 
    260         ::xmms_remote_set_eq_preamp(session, preamp); 
    261 } 
    262  
    263 void Audacious::SetEqualizerBand(int band, float value) 
    264 { 
    265         ::xmms_remote_set_eq_band(session, band, value); 
     260double Audacious::GetEqualizerPreamp() const 
     261{ 
     262        return ::audacious_remote_get_eq_preamp(session); 
     263} 
     264 
     265double Audacious::GetEqualizerBand(int band) const 
     266{ 
     267        return ::audacious_remote_get_eq_band(session, band); 
     268} 
     269 
     270void Audacious::SetEqualizer(double preamp, double bands[10]) 
     271{ 
     272        ::GArray *bands_(::g_array_sized_new(FALSE, FALSE, sizeof (::gdouble), 10)); 
     273 
     274        _forall (unsigned, index, 0, 10) 
     275                ::g_array_append_val(bands_, bands[index]); 
     276 
     277        ::audacious_remote_set_eq(session, preamp, bands_); 
     278} 
     279 
     280void Audacious::SetEqualizerPreamp(double preamp) 
     281{ 
     282        ::audacious_remote_set_eq_preamp(session, preamp); 
     283} 
     284 
     285void Audacious::SetEqualizerBand(int band, double value) 
     286{ 
     287        ::audacious_remote_set_eq_band(session, band, value); 
    266288} 
    267289 
     
    269291void Audacious::Quit() 
    270292{ 
    271         ::xmms_remote_quit(session); 
     293        ::audacious_remote_quit(session); 
    272294} 
    273295 
     
    275297void Audacious::PlayPause() 
    276298{ 
    277         ::xmms_remote_play_pause(session); 
     299        ::audacious_remote_play_pause(session); 
    278300} 
    279301 
    280302void Audacious::PlaylistInsertUrl(const std::string &url, int position) 
    281303{ 
    282         ::xmms_remote_playlist_ins_url_string(session, const_cast<char*>(url.c_str()), position); 
     304        ::audacious_remote_playlist_ins_url_string(session, const_cast<char*>(url.c_str()), position); 
    283305} 
    284306 
     
    286308void Audacious::PlayqueueAdd(int position) 
    287309{ 
    288         ::xmms_remote_playqueue_add(session, position); 
     310        ::audacious_remote_playqueue_add(session, position); 
    289311} 
    290312 
    291313void Audacious::PlayqueueRemove(int position) 
    292314{ 
    293         ::xmms_remote_playqueue_remove(session, position); 
     315        ::audacious_remote_playqueue_remove(session, position); 
    294316} 
    295317 
    296318int Audacious::GetPlayqueueLength() const 
    297319{ 
    298         return ::xmms_remote_get_playqueue_length(session); 
     320        return ::audacious_remote_get_playqueue_length(session); 
    299321} 
    300322 
    301323void Audacious::ToggleAdvance() 
    302324{ 
    303         ::xmms_remote_toggle_advance(session); 
     325        ::audacious_remote_toggle_advance(session); 
    304326} 
    305327 
    306328bool Audacious::IsAdvance() const 
    307329{ 
    308         return ::xmms_remote_is_advance(session); 
     330        return ::audacious_remote_is_advance(session); 
    309331} 
    310332 
     
    312334void Audacious::Activate() 
    313335{ 
    314         ::xmms_remote_activate(session); 
     336        ::audacious_remote_activate(session); 
    315337} 
    316338 
     
    318340void Audacious::ShowJumpToFileBox() 
    319341{ 
    320         ::xmms_remote_show_jtf_box(session); 
     342        ::audacious_remote_show_jtf_box(session); 
    321343} 
    322344 
    323345void Audacious::PlayqueueClear() 
    324346{ 
    325         ::xmms_remote_playqueue_clear(session); 
     347        ::audacious_remote_playqueue_clear(session); 
    326348} 
    327349 
    328350bool Audacious::PlayqueueIsQueued(int position) const 
    329351{ 
    330         return ::xmms_remote_playqueue_is_queued(session, position); 
    331 } 
    332  
    333 int Audacious::GetPlayqueuePosition(int position) const 
    334 { 
    335         return ::xmms_remote_get_playqueue_position(session, position); 
     352        return ::audacious_remote_playqueue_is_queued(session, position); 
    336353} 
    337354 
    338355int Audacious::GetPlayqueueQueuePosition(int position) const 
    339356{ 
    340         return ::xmms_remote_get_playqueue_queue_position(session, position); 
    341 } 
    342  
    343 // Audacious 1.2 
    344 void Audacious::SetSessionUri(const std::string &uri) 
    345 { 
    346         ::audacious_set_session_uri(const_cast<char *>(uri.c_str())); 
    347 } 
    348  
    349 std::string Audacious::GetSessionUri() const 
    350 { 
    351         return ::audacious_get_session_uri(session); 
    352 } 
    353  
    354 void Audacious::SetSessionType(Type type) 
    355 { 
    356         ::audacious_set_session_type(type); 
     357        return ::audacious_remote_get_playqueue_queue_position(session, position); 
    357358} 
    358359 
     
    360361void Audacious::PlaylistEnqueueToTemp(const std::string &string) 
    361362{ 
    362         ::xmms_remote_playlist_enqueue_to_temp(session, const_cast<char *>(string.c_str())); 
     363        ::audacious_remote_playlist_enqueue_to_temp(session, const_cast<char *>(string.c_str())); 
    363364} 
    364365 
     
    367368        return ::audacious_get_tuple_field_data(session, const_cast<char *>(field.c_str()), position); 
    368369} 
     370 
     371// Audacious 1.4 
     372void Audacious::ShowAboutBox() 
     373{ 
     374        ::audacious_remote_show_about_box(session); 
     375} 
     376 
     377void Audacious::ToggleAboutBox(bool show) 
     378{ 
     379        ::audacious_remote_toggle_about_box(session, show); 
     380} 
     381 
     382void Audacious::ToggleJumpToFileBox(bool show) 
     383{ 
     384        ::audacious_remote_toggle_jtf_box(session, show); 
     385} 
     386 
     387void Audacious::TogglePreferencesBox(bool show) 
     388{ 
     389        ::audacious_remote_toggle_prefs_box(session, show); 
     390} 
     391 
     392void Audacious::ToggleFileBrowser(bool show) 
     393{ 
     394        ::audacious_remote_toggle_filebrowser(session, show); 
     395} 
     396 
     397void Audacious::EqualizerActivate(bool active) 
     398{ 
     399        ::audacious_remote_eq_activate(session, active); 
     400} 
     401 
     402} 
  • Audacious/Audacious.hpp

    r23 r34  
    1111#include <string> 
    1212 
     13#include <dbus/dbus-glib.h> 
    1314#include <glib.h> 
    1415 
    1516#include <foreach.hpp> 
    1617 
     18namespace Audacious 
     19{ 
     20 
     21class Error : public std::exception 
     22{ 
     23        ::GError *error; 
     24public: 
     25        Error(::GError *error) : error(error) {} 
     26        virtual ~Error() throw() { ::g_error_free(error); } 
     27        virtual const char *what() const throw() { return error->message; } 
     28}; 
     29 
    1730class Audacious 
    1831{ 
    19         int session; 
     32        ::DBusGProxy *session; 
    2033public: 
    21         Audacious(int session = 0) : session(session) {} 
     34        Audacious(); 
    2235 
    2336        template <typename Type_> 
     
    4053 
    4154        void Playlist(char **list, int size, bool enqueue = false); 
    42         int GetVersion() const; 
     55        std::string GetVersion() const; 
    4356 
    4457        template <typename Type_> 
     
    5568 
    5669        void PlaylistAdd(::GList *list); 
    57         void PlaylistDelete(int position); 
     70        void PlaylistDelete(unsigned position); 
    5871        void Play(); 
    5972        void Pause(); 
     
    6275        bool IsPaused() const; 
    6376        int GetPlaylistPosition() const; 
    64         void SetPlaylistPosition(int position); 
     77        void SetPlaylistPosition(unsigned position); 
    6578        int GetPlaylistLength() const; 
    6679        void PlaylistClear(); 
     
    109122        } 
    110123 
    111         void GetEqualizer(float &preamp, float bands[10]) const; 
    112         float GetEqualizerPreamp() const; 
    113         float GetEqualizerBand(int band) const; 
    114         void SetEqualizer(float preamp, float bands[10]); 
    115         void SetEqualizerPreamp(float preamp); 
    116         void SetEqualizerBand(int band, float value); 
     124        void GetEqualizer(double &preamp, double bands[10]) const; 
     125        double GetEqualizerPreamp() const; 
     126        double GetEqualizerBand(int band) const; 
     127        void SetEqualizer(double preamp, double bands[10]); 
     128        void SetEqualizerPreamp(double preamp); 
     129        void SetEqualizerBand(int band, double value); 
    117130 
    118131        // XMMS 1.2.1 
     
    143156        void PlayqueueClear(); 
    144157        bool PlayqueueIsQueued(int position) const; 
    145         int GetPlayqueuePosition(int position) const; 
    146158        int GetPlayqueueQueuePosition(int position) const; 
    147  
    148         // Audacious 1.2 
    149         void SetSessionUri(const std::string &uri); 
    150         std::string GetSessionUri() const; 
    151  
    152         enum Type { Unix, Tcp }; 
    153  
    154         void SetSessionType(Type type); 
    155159 
    156160        // Audacious 1.3 
    157161        void PlaylistEnqueueToTemp(const std::string &string); 
    158162        std::string GetTupleFieldData(const std::string &field, int position); 
     163 
     164        // Audacious 1.4 
     165        void ShowAboutBox(); 
     166        void ToggleAboutBox(bool show); 
     167        void ToggleJumpToFileBox(bool show); 
     168        void TogglePreferencesBox(bool show); 
     169        void ToggleFileBrowser(bool show); 
     170        void EqualizerActivate(bool active); 
    159171}; 
    160172 
     
    167179} 
    168180 
     181} 
     182 
    169183#endif//_Audacious_hpp_ 
  • Audacious/Audacious.mk

    r23 r34  
    55# $Id$ 
    66 
    7 CPPFLAGS += -I$(audacious) $(shell pkg-config --cflags-only-I audacious) 
    8 CFLAGS += $(shell pkg-config --cflags-only-other audacious) 
    9 LDFLAGS += -L$(audacious) $(shell pkg-config --libs-only-L audacious) $(shell pkg-config --libs-only-other audacious) 
    10 LDLIBS += -lAudacious $(shell pkg-config --libs-only-l audacious) 
     7CPPFLAGS += -I$(audacious) $(shell pkg-config --cflags-only-I audacious dbus-glib-1) 
     8CFLAGS += $(shell pkg-config --cflags-only-other audacious dbus-glib-1) 
     9LDFLAGS += -L$(audacious) $(shell pkg-config --libs-only-L audacious dbus-glib-1) $(shell pkg-config --libs-only-other audacious dbus-glib-1) 
     10LDLIBS += -lAudacious $(shell pkg-config --libs-only-l audacious dbus-glib-1) 
  • SteeringWheelRemote/SteeringWheelRemote.cpp

    r26 r34  
    140140                uint8_t bytes[8]; 
    141141                Buttons buttons; 
    142                 Audacious audacious; 
     142                Audacious::Audacious audacious; 
    143143 
    144144                _forever 
Note: See TracChangeset for help on using the changeset viewer.