ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/truck/Audacious/Audacious.hpp
Revision: 6
Committed: 2007-05-06T21:04:16-07:00 (15 years, 1 month ago) by douglas
Original Path: SteeringWheelRemote/Audacious.hpp
File size: 3812 byte(s)
Log Message:
Worky with Audacious (BMP's true successor?)!

File Contents

# User Rev Content
1 douglas 6 // Beep Remote
2     //
3     // Douglas Thrift
4     //
5     // $Id$
6    
7     #ifndef _Audacious_hpp_
8     #define _Audacious_hpp_
9    
10     #include <cstdlib>
11     #include <string>
12    
13     #include <glib.h>
14    
15     #include <foreach.hpp>
16    
17     class Audacious
18     {
19     int session;
20     public:
21     Audacious(int session = 0) : session(session) {}
22    
23     template <typename Type_>
24     void Playlist(const Type_ &list, bool enqueue = false)
25     {
26     char **list_(NULL);
27     int size(0);
28    
29     _tforeach (const Type_, item, list)
30     {
31     list_ = list_ ? std::realloc(list_, ++size) : std::malloc(++size);
32     list_[_index] = const_cast<char *>(item->c_str());
33     }
34    
35     Playlist(list_, size, enqueue);
36    
37     if (list_)
38     std::free(list_);
39     }
40    
41     void Playlist(char **list, int size, bool enqueue = false);
42     int GetVersion() const;
43    
44     template <typename Type_>
45     void PlaylistAdd(const Type_ &list)
46     {
47     ::GList *list_(NULL);
48    
49     _tforeach (const Type_, item, list)
50     list_ = ::g_list_append(list_, const_cast<char *>(item->c_str()));
51    
52     PlaylistAdd(list_);
53     ::g_list_free(list_);
54     }
55    
56     void PlaylistAdd(::GList *list);
57     void PlaylistDelete(int position);
58     void Play();
59     void Pause();
60     void Stop();
61     bool IsPlaying() const;
62     bool IsPaused() const;
63     int GetPlaylistPosition() const;
64     void SetPlaylistPosition(int position);
65     int GetPlaylistLength() const;
66     void PlaylistClear();
67     int GetOutputTime() const;
68     void JumpToTime(int position);
69     int GetVolume(int &left, int &right) const;
70     int GetMainVolume() const;
71     int GetBalance() const;
72     void SetVolume(int left, int right);
73     void SetMainVolume(int volume);
74     void SetBalance(int balance);
75     std::string GetSkin() const;
76     void SetSkin(std::string &skin);
77     std::string GetPlaylistFile(int position) const;
78     std::string GetPlaylistTitle(int position) const;
79     int GetPlaylistTime(int position) const;
80     void GetInfo(int &rate, int &frequency, int &channels) const;
81     void MainWindowToggle(bool show);
82     void PlaylistWindowToggle(bool show);
83     void EqualizerWindowToggle(bool show);
84     bool IsMainWindow() const;
85     bool IsPlaylistWindow() const;
86     bool IsEqualizerWindow() const;
87     void ShowPreferencesBox();
88     void ToggleAlwaysOnTop(bool always);
89     void Eject();
90     void PlaylistPrevious();
91     void PlaylistNext();
92     void PlaylistAddUrl(const std::string &url);
93     bool IsRunning() const;
94     void ToggleRepeat();
95     void ToggleShuffle();
96     bool IsRepeat() const;
97     bool IsShuffle() const;
98    
99     inline void ToggleRepeat(bool repeat)
100     {
101     if (repeat != IsRepeat())
102     ToggleRepeat();
103     }
104    
105     inline void ToggleShuffle(bool shuffle)
106     {
107     if (shuffle != IsShuffle())
108     ToggleShuffle();
109     }
110    
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);
117    
118     // XMMS 1.2.1
119     void Quit();
120    
121     // XMMS 1.2.6
122     void PlayPause();
123     void PlaylistInsertUrl(const std::string &url, int position);
124    
125     // XMMS 1.2.11
126     void PlayqueueAdd(int position);
127     void PlayqueueRemove(int position);
128     int GetPlayqueueLength(int session) const;
129     void ToggleAdvance();
130     bool IsAdvance();
131    
132     inline void ToggleAdvance(bool advance)
133     {
134     if (advance != IsAdvance())
135     ToggleAdvance();
136     }
137    
138     // BMP 0.9.7
139     void Activate();
140    
141     // Audacious 1.1
142     void ShowJumpToFileBox();
143     void PlayqueueClear();
144     bool PlayqueueIsQueued(int position) const;
145     int GetPlayqueuePosition(int position) const;
146     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);
155    
156     // Audacious 1.3
157     void PlaylistEnqueueToTemp(const std::string &string);
158     std::string GetTupleFieldData(const std::string &field, int position);
159     };
160    
161     template <>
162     void Audacious::PlaylistAdd(const std::string &item);
163    
164     #endif//_Audacious_hpp_

Properties

Name Value
svn:keywords Id