~ubuntu-branches/ubuntu/oneiric/rhythmbox/oneiric

« back to all changes in this revision

Viewing changes to plugins/daap/rb-dacp-player.c

  • Committer: Bazaar Package Importer
  • Author(s): Rico Tzschichholz
  • Date: 2011-07-29 16:41:38 UTC
  • mto: This revision was merged to the branch mainline in revision 191.
  • Revision ID: james.westby@ubuntu.com-20110729164138-wwicy8nqalm18ck7
Tags: upstream-2.90.1~20110802
ImportĀ upstreamĀ versionĀ 2.90.1~20110802

Show diffs side-by-side

added added

removed removed

Lines of Context:
47
47
struct _RBDACPPlayerPrivate {
48
48
        RBShell *shell;
49
49
        RBShellPlayer *shell_player;
 
50
        RBSource *play_queue;
50
51
};
51
52
 
52
53
static void rb_dacp_player_get_property (GObject *object, guint prop_id,
101
102
        dacp_player->cue_play            = rb_dacp_player_cue_play;
102
103
}
103
104
 
104
 
G_DEFINE_TYPE_WITH_CODE (RBDACPPlayer, rb_dacp_player, G_TYPE_OBJECT,
105
 
                         G_IMPLEMENT_INTERFACE (DACP_TYPE_PLAYER, rb_dacp_player_iface_init))
 
105
G_DEFINE_DYNAMIC_TYPE_EXTENDED (RBDACPPlayer,
 
106
                                rb_dacp_player,
 
107
                                G_TYPE_OBJECT,
 
108
                                0,
 
109
                                G_IMPLEMENT_INTERFACE_DYNAMIC (DACP_TYPE_PLAYER,
 
110
                                                               rb_dacp_player_iface_init))
106
111
 
107
112
static void
108
113
rb_dacp_player_init (RBDACPPlayer *object)
153
158
}
154
159
 
155
160
static void
 
161
rb_dacp_player_class_finalize (RBDACPPlayerClass *klass)
 
162
{
 
163
}
 
164
 
 
165
static void
156
166
rb_dacp_player_get_property (GObject *object,
157
167
                             guint prop_id,
158
168
                             GValue *value,
178
188
                        break;
179
189
                case PROP_REPEAT_STATE:
180
190
                        rb_shell_player_get_playback_state (player->priv->shell_player, &shuffle, &repeat);
181
 
                        g_value_set_enum (value, repeat ? REPEAT_ALL : REPEAT_NONE);
 
191
                        g_value_set_enum (value, repeat ? DACP_REPEAT_ALL : DACP_REPEAT_NONE);
182
192
                        break;
183
193
                case PROP_PLAY_STATE:
184
194
                        entry = rb_shell_player_get_playing_entry (player->priv->shell_player);
185
195
                        if (entry) {
186
196
                                g_object_get (player->priv->shell_player, "playing", &playing, NULL);
187
 
                                g_value_set_enum (value, playing ? PLAY_PLAYING : PLAY_PAUSED);
 
197
                                g_value_set_enum (value, playing ? DACP_PLAY_PLAYING : DACP_PLAY_PAUSED);
188
198
                                rhythmdb_entry_unref (entry);
189
199
                        } else {
190
 
                                g_value_set_enum (value, PLAY_STOPPED);
 
200
                                g_value_set_enum (value, DACP_PLAY_STOPPED);
191
201
                        }
192
202
                        break;
193
203
                case PROP_VOLUME:
224
234
                        break;
225
235
                case PROP_REPEAT_STATE:
226
236
                        rb_shell_player_get_playback_state (player->priv->shell_player, &shuffle, &repeat);
227
 
                        rb_shell_player_set_playback_state (player->priv->shell_player, shuffle, g_value_get_enum (value) != REPEAT_NONE);
 
237
                        rb_shell_player_set_playback_state (player->priv->shell_player, shuffle, g_value_get_enum (value) != DACP_REPEAT_NONE);
228
238
                        break;
229
239
                case PROP_VOLUME:
230
240
                        volume = ((double) g_value_get_ulong (value))  / 100.0;
260
270
        player = RB_DACP_PLAYER (g_object_new (RB_TYPE_DACP_PLAYER, NULL));
261
271
 
262
272
        player->priv->shell = g_object_ref (shell);
263
 
        player->priv->shell_player = g_object_ref (rb_shell_get_player (shell));
 
273
        g_object_get (shell,
 
274
                      "shell-player", &player->priv->shell_player,
 
275
                      "queue-source", &player->priv->play_queue,
 
276
                      NULL);
 
277
 
264
278
        g_signal_connect_object (player->priv->shell_player,
265
279
                                 "playing-song-changed",
266
280
                                 G_CALLBACK (playing_song_changed),
324
338
static void
325
339
rb_dacp_player_cue_clear (DACPPlayer *player)
326
340
{
327
 
        rb_shell_clear_queue (RB_DACP_PLAYER (player)->priv->shell, NULL);
 
341
        RBDACPPlayer *rbplayer;
 
342
        rbplayer = RB_DACP_PLAYER (player);
 
343
        rb_play_queue_source_clear_queue (RB_PLAY_QUEUE_SOURCE (rbplayer->priv->play_queue));
328
344
}
329
345
 
330
346
static void
335
351
 
336
352
        for (record = records; record; record = record->next) {
337
353
                gchar *location;
 
354
                RBDACPPlayer *rbplayer;
338
355
 
339
 
                g_object_get (G_OBJECT (record->data), "location", &location, NULL);
340
 
                rb_shell_add_to_queue (RB_DACP_PLAYER (player)->priv->shell, location, NULL);
 
356
                g_object_get (record->data, "location", &location, NULL);
 
357
                rbplayer = RB_DACP_PLAYER (player);
 
358
                rb_static_playlist_source_add_location (RB_STATIC_PLAYLIST_SOURCE (rbplayer->priv->play_queue),
 
359
                                                        location,
 
360
                                                        -1);
341
361
 
342
362
                if (current == index) {
343
363
                        RhythmDB *db;
358
378
                current++;
359
379
        }
360
380
}
 
381
 
 
382
void
 
383
_rb_dacp_player_register_type (GTypeModule *module)
 
384
{
 
385
        rb_dacp_player_register_type (module);
 
386
}