ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/truck/DashInterface/Display.cpp
(Generate patch)

Comparing:
SteeringWheelRemote/Audacious.cpp (file contents), Revision 12 by douglas, 2007-05-13T04:38:16-07:00 vs.
GPS/GPS.cpp (file contents), Revision 25 by douglas, 2008-02-09T01:39:22-08:00

# Line 1 | Line 1
1 < // Beep Remote
1 > // GPS
2   //
3   // Douglas Thrift
4   //
5   // $Id$
6  
7 < #include <cxx/standard.hh>
7 > #include <cerrno>
8 > #include <iostream>
9 > #include <sstream>
10  
11 < #include <audacious/beepctrl.h>
11 > #include <posix.hpp>
12  
13 < #include "Audacious.hpp"
13 > #include "GPS.hpp"
14  
15 < void Audacious::Playlist(char **list, int size, bool enqueue)
15 > namespace GPS
16   {
15        ::xmms_remote_playlist(session, list, size, enqueue);
16 }
17
18 int Audacious::GetVersion() const
19 {
20        return ::xmms_remote_get_version(session);
21 }
17  
18 < void Audacious::PlaylistAdd(::GList *list)
18 > Error::Error()
19   {
20 <        ::xmms_remote_playlist_add(session, list);
26 < }
20 >        std::ostringstream message;
21  
22 < void Audacious::PlaylistDelete(int position)
29 < {
30 <        ::xmms_remote_playlist_delete(session, position);
31 < }
22 >        message << _B("GPS[#") << errno << _B("] ");
23  
24 < void Audacious::Play()
25 < {
26 <        ::xmms_remote_play(session);
27 < }
24 >        switch (errno)
25 >        {
26 >        case NL_NOSERVICE:
27 >                message << _B("can't get service entry");
28  
29 < void Audacious::Pause()
30 < {
31 <        ::xmms_remote_pause(session);
41 < }
29 >                break;
30 >        case NL_NOHOST:
31 >                message << _B("can't get host entry");
32  
33 < void Audacious::Stop()
34 < {
35 <        ::xmms_remote_stop(session);
46 < }
33 >                break;
34 >        case NL_NOPROTO:
35 >                message << _B("can't get protocol entry");
36  
37 < bool Audacious::IsPlaying() const
38 < {
39 <        return ::xmms_remote_is_playing(session);
51 < }
37 >                break;
38 >        case NL_NOSOCK:
39 >                message << _B("can't create socket");
40  
41 < bool Audacious::IsPaused() const
42 < {
43 <        return ::xmms_remote_is_paused(session);
56 < }
41 >                break;
42 >        case NL_NOSOCKOPT:
43 >                message << _B("error SETSOCKOPT SO_REUSEADDR");
44  
45 < int Audacious::GetPlaylistPosition() const
46 < {
47 <        return ::xmms_remote_get_playlist_pos(session);
61 < }
45 >                break;
46 >        case NL_NOCONNECT:
47 >                message << _B("can't connect to host");
48  
49 < void Audacious::SetPlaylistPosition(int position)
50 < {
65 <        ::xmms_remote_set_playlist_pos(session, position);
66 < }
49 >                break;
50 >        }
51  
52 < int Audacious::GetPlaylistLength() const
69 < {
70 <        return ::xmms_remote_get_playlist_length(session);
52 >        this->message = message.str();
53   }
54  
55 < void Audacious::PlaylistClear()
55 > GPS::GPS(const std::string &host, const std::string &port) : gps(::gps_open(host.c_str(), port.c_str()))
56   {
57 <        return ::xmms_remote_playlist_clear(session);
57 >        if (gps == NULL)
58 >                throw Error();
59   }
60  
61 < int Audacious::GetOutputTime() const
61 > void GPS::Poll()
62   {
63 <        return ::xmms_remote_get_output_time(session);
63 >        Posix::CheckError(::gps_poll(gps));
64   }
65  
66 < void Audacious::JumpToTime(int position)
66 > void GPS::Query(const std::string &query)
67   {
68 <        ::xmms_remote_jump_to_time(session, position);
68 >        Posix::CheckError(::gps_query(gps, query.c_str()));
69   }
70  
88 void Audacious::GetVolume(int& left, int& right) const
89 {
90        ::xmms_remote_get_volume(session, &left, &right);
91 }
92
93 int Audacious::GetMainVolume() const
94 {
95        return ::xmms_remote_get_main_volume(session);
96 }
97
98 int Audacious::GetBalance() const
99 {
100        return ::xmms_remote_get_balance(session);
101 }
102
103 void Audacious::SetVolume(int left, int right)
104 {
105        ::xmms_remote_set_volume(session, left, right);
106 }
107
108 void Audacious::SetMainVolume(int volume)
109 {
110        ::xmms_remote_set_main_volume(session, volume);
111 }
112
113 void Audacious::SetBalance(int balance)
114 {
115        ::xmms_remote_set_balance(session, balance);
116 }
117
118 cse::String Audacious::GetSkin() const
119 {
120        return ::xmms_remote_get_skin(session);
121 }
122
123 void Audacious::SetSkin(const cse::String &skin)
124 {
125        ::xmms_remote_set_skin(session, const_cast<char*>(skin.NullTerminate()));
126 }
127
128 cse::String Audacious::GetPlaylistFile(int position) const
129 {
130        return ::xmms_remote_get_playlist_file(session, position);
131 }
132
133 cse::String Audacious::GetPlaylistTitle(int position) const
134 {
135        return ::xmms_remote_get_playlist_title(session, position);
136 }
137
138 int Audacious::GetPlaylistTime(int position) const
139 {
140        return ::xmms_remote_get_playlist_time(session, position);
141 }
142
143 void Audacious::GetInfo(int &rate, int &frequency, int &channels) const
144 {
145        ::xmms_remote_get_info(session, &rate, &frequency, &channels);
146 }
147
148 void Audacious::MainWindowToggle(bool show)
149 {
150        ::xmms_remote_main_win_toggle(session, show);
151 }
152
153 void Audacious::PlaylistWindowToggle(bool show)
154 {
155        ::xmms_remote_pl_win_toggle(session, show);
156 }
157
158 void Audacious::EqualizerWindowToggle(bool show)
159 {
160        ::xmms_remote_eq_win_toggle(session, show);
161 }
162
163 bool Audacious::IsMainWindow() const
164 {
165        return ::xmms_remote_is_main_win(session);
166 }
167
168 bool Audacious::IsPlaylistWindow() const
169 {
170        return ::xmms_remote_is_pl_win(session);
171 }
172
173 bool Audacious::IsEqualizerWindow() const
174 {
175        return ::xmms_remote_is_eq_win(session);
176 }
177
178 void Audacious::ShowPreferencesBox()
179 {
180        ::xmms_remote_show_prefs_box(session);
181 }
182
183 void Audacious::ToggleAlwaysOnTop(bool always)
184 {
185        ::xmms_remote_toggle_aot(session, always);
186 }
187
188 void Audacious::Eject()
189 {
190        ::xmms_remote_eject(session);
191 }
192
193 void Audacious::PlaylistPrevious()
194 {
195        ::xmms_remote_playlist_prev(session);
196 }
197
198 void Audacious::PlaylistNext()
199 {
200        ::xmms_remote_playlist_next(session);
201 }
202
203 void Audacious::PlaylistAddUrl(const cse::String &url)
204 {
205        ::xmms_remote_playlist_add_url_string(session, const_cast<char*>(url.NullTerminate()));
206 }
207
208 bool Audacious::IsRunning() const
209 {
210        return ::xmms_remote_is_running(session);
211 }
212
213 void Audacious::ToggleRepeat()
214 {
215        ::xmms_remote_toggle_repeat(session);
216 }
217
218 void Audacious::ToggleShuffle()
219 {
220        ::xmms_remote_toggle_shuffle(session);
221 }
222
223 bool Audacious::IsRepeat() const
224 {
225        return ::xmms_remote_is_repeat(session);
226 }
227
228 bool Audacious::IsShuffle() const
229 {
230        return ::xmms_remote_is_shuffle(session);
231 }
232
233 void Audacious::GetEqualizer(float& preamp, float bands[10]) const
234 {
235        float* bands_;
236
237        ::xmms_remote_get_eq(session, &preamp, &bands_);
238
239        _forall (uint8_t, index, 0, 10)
240                bands[index] = bands[index];
241
242        ::g_free(bands_);
243 }
244
245 float Audacious::GetEqualizerPreamp() const
246 {
247        return ::xmms_remote_get_eq_preamp(session);
248 }
249
250 float Audacious::GetEqualizerBand(int band) const
251 {
252        return ::xmms_remote_get_eq_band(session, band);
253 }
254
255 void Audacious::SetEqualizer(float preamp, float bands[10])
256 {
257        ::xmms_remote_set_eq(session, preamp, bands);
258 }
259
260 void Audacious::SetEqualizerPreamp(float preamp)
261 {
262        ::xmms_remote_set_eq_preamp(session, preamp);
263 }
264
265 void Audacious::SetEqualizerBand(int band, float value)
266 {
267        ::xmms_remote_set_eq_band(session, band, value);
268 }
269
270 // XMMS 1.2.1
271 void Audacious::Quit()
272 {
273        ::xmms_remote_quit(session);
274 }
275
276 // XMMS 1.2.6
277 void Audacious::PlayPause()
278 {
279        ::xmms_remote_play_pause(session);
280 }
281
282 void Audacious::PlaylistInsertUrl(const cse::String &url, int position)
283 {
284        ::xmms_remote_playlist_ins_url_string(session, const_cast<char*>(url.NullTerminate()), position);
285 }
286
287 // XMMS 1.2.11
288 void Audacious::PlayqueueAdd(int position)
289 {
290        ::xmms_remote_playqueue_add(session, position);
291 }
292
293 void Audacious::PlayqueueRemove(int position)
294 {
295        ::xmms_remote_playqueue_remove(session, position);
296 }
297
298 int Audacious::GetPlayqueueLength() const
299 {
300        return ::xmms_remote_get_playqueue_length(session);
301 }
302
303 void Audacious::ToggleAdvance()
304 {
305        ::xmms_remote_toggle_advance(session);
306 }
307
308 bool Audacious::IsAdvance() const
309 {
310        return ::xmms_remote_is_advance(session);
311 }
312
313 // BMP 0.9.7
314 void Audacious::Activate()
315 {
316        ::xmms_remote_activate(session);
317 }
318
319 // Audacious 1.1
320 void Audacious::ShowJumpToFileBox()
321 {
322        ::xmms_remote_show_jtf_box(session);
323 }
324
325 void Audacious::PlayqueueClear()
326 {
327        ::xmms_remote_playqueue_clear(session);
328 }
329
330 bool Audacious::PlayqueueIsQueued(int position) const
331 {
332        return ::xmms_remote_playqueue_is_queued(session, position);
333 }
334
335 int Audacious::GetPlayqueuePosition(int position) const
336 {
337        return ::xmms_remote_get_playqueue_position(session, position);
338 }
339
340 int Audacious::GetPlayqueueQueuePosition(int position) const
341 {
342        return ::xmms_remote_get_playqueue_queue_position(session, position);
343 }
344
345 // Audacious 1.2
346 void Audacious::SetSessionUri(const cse::String &uri)
347 {
348        ::audacious_set_session_uri(const_cast<char *>(uri.NullTerminate()));
349 }
350
351 cse::String Audacious::GetSessionUri() const
352 {
353        return ::audacious_get_session_uri(session);
354 }
355
356 void Audacious::SetSessionType(Type type)
357 {
358        ::audacious_set_session_type(type);
359 }
360
361 // Audacious 1.3
362 void Audacious::PlaylistEnqueueToTemp(const cse::String &string)
363 {
364        ::xmms_remote_playlist_enqueue_to_temp(session, const_cast<char *>(string.NullTerminate()));
365 }
366
367 cse::String Audacious::GetTupleFieldData(const cse::String &field, int position)
368 {
369        return ::audacious_get_tuple_field_data(session, const_cast<char *>(field.NullTerminate()), position);
71   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines