137
146
void media_info_copy (const MediaInfo* self, MediaInfo* dest) {
138
dest->timestamp = self->timestamp;
139
dest->sent_access = self->sent_access;
140
dest->mrl = g_strdup (self->mrl);
141
dest->mimetype = g_strdup (self->mimetype);
142
dest->title = g_strdup (self->title);
143
dest->interpretation = g_strdup (self->interpretation);
144
dest->artist = g_strdup (self->artist);
145
dest->album = g_strdup (self->album);
157
const gchar* _tmp10_;
158
const gchar* _tmp11_;
159
const gchar* _tmp12_;
160
const gchar* _tmp13_;
161
_tmp0_ = (*self).timestamp;
162
(*dest).timestamp = _tmp0_;
163
_tmp1_ = (*self).sent_access;
164
(*dest).sent_access = _tmp1_;
165
_tmp2_ = (*self).mrl;
166
_tmp3_ = g_strdup (_tmp2_);
167
_g_free0 ((*dest).mrl);
168
(*dest).mrl = _tmp3_;
169
_tmp4_ = (*self).mimetype;
170
_tmp5_ = g_strdup (_tmp4_);
171
_g_free0 ((*dest).mimetype);
172
(*dest).mimetype = _tmp5_;
173
_tmp6_ = (*self).title;
174
_tmp7_ = g_strdup (_tmp6_);
175
_g_free0 ((*dest).title);
176
(*dest).title = _tmp7_;
177
_tmp8_ = (*self).interpretation;
178
_tmp9_ = g_strdup (_tmp8_);
179
_g_free0 ((*dest).interpretation);
180
(*dest).interpretation = _tmp9_;
181
_tmp10_ = (*self).artist;
182
_tmp11_ = g_strdup (_tmp10_);
183
_g_free0 ((*dest).artist);
184
(*dest).artist = _tmp11_;
185
_tmp12_ = (*self).album;
186
_tmp13_ = g_strdup (_tmp12_);
187
_g_free0 ((*dest).album);
188
(*dest).album = _tmp13_;
248
306
_g_object_unref0 (self->priv->zg_registry);
249
307
self->priv->zg_registry = _tmp1_;
250
308
memset (&_tmp2_, 0, sizeof (MediaInfo));
252
309
media_info_destroy (&self->priv->current_media);
253
self->priv->current_media = _tmp3_;
254
_tmp4_ = g_signal_connect_swapped (self->priv->_object, "file-opened", (GCallback) zeitgeist_dp_plugin_file_opened, self);
255
_vala_array_add1 (&self->priv->signals, &self->priv->signals_length1, &self->priv->_signals_size_, _tmp4_);
256
_tmp5_ = g_signal_connect_swapped (self->priv->_object, "file-closed", (GCallback) zeitgeist_dp_plugin_file_closed, self);
257
_vala_array_add2 (&self->priv->signals, &self->priv->signals_length1, &self->priv->_signals_size_, _tmp5_);
258
_tmp6_ = g_signal_connect_swapped (self->priv->_object, "metadata-updated", (GCallback) zeitgeist_dp_plugin_metadata_changed, self);
259
_vala_array_add3 (&self->priv->signals, &self->priv->signals_length1, &self->priv->_signals_size_, _tmp6_);
260
_tmp7_ = g_signal_connect_swapped (self->priv->_object, "notify::playing", (GCallback) zeitgeist_dp_plugin_playing_changed, self);
261
_vala_array_add4 (&self->priv->signals, &self->priv->signals_length1, &self->priv->_signals_size_, _tmp7_);
262
_tmp8_ = g_ptr_array_new ();
264
_tmp9_ = zeitgeist_event_new_full ("", ZEITGEIST_ZG_USER_ACTIVITY, "application://totem.desktop", NULL, NULL);
265
event = g_object_ref_sink (_tmp9_);
266
g_ptr_array_add (templates, event);
310
self->priv->current_media = _tmp2_;
311
_tmp3_ = self->priv->signals;
312
_tmp3__length1 = self->priv->signals_length1;
313
_tmp4_ = self->priv->_object;
314
_tmp5_ = g_signal_connect_swapped (_tmp4_, "file-opened", (GCallback) zeitgeist_dp_plugin_file_opened, self);
315
_vala_array_add1 (&self->priv->signals, &self->priv->signals_length1, &self->priv->_signals_size_, _tmp5_);
316
_tmp6_ = self->priv->signals;
317
_tmp6__length1 = self->priv->signals_length1;
318
_tmp7_ = self->priv->_object;
319
_tmp8_ = g_signal_connect_swapped (_tmp7_, "file-closed", (GCallback) zeitgeist_dp_plugin_file_closed, self);
320
_vala_array_add2 (&self->priv->signals, &self->priv->signals_length1, &self->priv->_signals_size_, _tmp8_);
321
_tmp9_ = self->priv->signals;
322
_tmp9__length1 = self->priv->signals_length1;
323
_tmp10_ = self->priv->_object;
324
_tmp11_ = g_signal_connect_swapped (_tmp10_, "metadata-updated", (GCallback) zeitgeist_dp_plugin_metadata_changed, self);
325
_vala_array_add3 (&self->priv->signals, &self->priv->signals_length1, &self->priv->_signals_size_, _tmp11_);
326
_tmp12_ = self->priv->signals;
327
_tmp12__length1 = self->priv->signals_length1;
328
_tmp13_ = self->priv->_object;
329
_tmp14_ = g_signal_connect_swapped (_tmp13_, "notify::playing", (GCallback) zeitgeist_dp_plugin_playing_changed, self);
330
_vala_array_add4 (&self->priv->signals, &self->priv->signals_length1, &self->priv->_signals_size_, _tmp14_);
331
_tmp15_ = g_ptr_array_new ();
333
_tmp16_ = zeitgeist_event_new_full ("", ZEITGEIST_ZG_USER_ACTIVITY, "application://totem.desktop", NULL, NULL);
334
_tmp17_ = g_object_ref_sink (_tmp16_);
337
g_ptr_array_add (_tmp18_, event);
268
339
templates = NULL;
269
_tmp11_ = zeitgeist_data_source_new_full ("org.gnome.Totem,dataprovider", "Totem dataprovider", "Logs access/leave events for media files played with Totem", _tmp10_);
270
ds = g_object_ref_sink (_tmp11_);
271
_tmp12_ = _g_object_ref0 (ds);
272
zeitgeist_data_source_registry_register_data_source (self->priv->zg_registry, _tmp12_, NULL, NULL, NULL);
340
_tmp20_ = zeitgeist_data_source_new_full ("org.gnome.Totem,dataprovider", "Totem dataprovider", "Logs access/leave events for media files played with Totem", _tmp19_);
341
_tmp21_ = g_object_ref_sink (_tmp20_);
343
_tmp22_ = self->priv->zg_registry;
344
_tmp23_ = _g_object_ref0 (ds);
345
zeitgeist_data_source_registry_register_data_source (_tmp22_, _tmp23_, NULL, NULL, NULL);
273
346
_g_object_unref0 (ds);
274
347
_g_object_unref0 (event);
275
348
_g_ptr_array_free0 (templates);
279
352
static void zeitgeist_dp_plugin_real_deactivate (PeasActivatable* base) {
280
353
ZeitgeistDpPlugin * self;
281
359
self = (ZeitgeistDpPlugin*) base;
282
zeitgeist_dp_plugin_file_closed (self, self->priv->_object);
360
_tmp0_ = self->priv->_object;
361
zeitgeist_dp_plugin_file_closed (self, _tmp0_);
362
_tmp1_ = self->priv->signals;
363
_tmp1__length1 = self->priv->signals_length1;
284
gulong* id_collection;
285
int id_collection_length1;
287
id_collection = self->priv->signals;
288
id_collection_length1 = self->priv->signals_length1;
289
for (id_it = 0; id_it < self->priv->signals_length1; id_it = id_it + 1) {
365
gulong* id_collection = NULL;
366
gint id_collection_length1 = 0;
367
gint _id_collection_size_ = 0;
369
id_collection = _tmp1_;
370
id_collection_length1 = _tmp1__length1;
371
for (id_it = 0; id_it < _tmp1__length1; id_it = id_it + 1) {
291
373
id = id_collection[id_it];
293
g_signal_handler_disconnect (self->priv->_object, id);
377
_tmp2_ = self->priv->_object;
379
g_signal_handler_disconnect (_tmp2_, _tmp3_);
297
383
self->priv->signals = (g_free (self->priv->signals), NULL);
298
384
self->priv->signals = NULL;
299
385
self->priv->signals_length1 = 0;
300
self->priv->_signals_size_ = 0;
301
if (self->priv->media_info_timeout != 0) {
302
g_source_remove (self->priv->media_info_timeout);
386
self->priv->_signals_size_ = self->priv->signals_length1;
387
_tmp4_ = self->priv->media_info_timeout;
388
if (_tmp4_ != ((guint) 0)) {
390
_tmp5_ = self->priv->media_info_timeout;
391
g_source_remove (_tmp5_);
304
if (self->priv->timeout_id != 0) {
305
g_source_remove (self->priv->timeout_id);
393
_tmp6_ = self->priv->timeout_id;
394
if (_tmp6_ != ((guint) 0)) {
396
_tmp7_ = self->priv->timeout_id;
397
g_source_remove (_tmp7_);
307
399
self->priv->media_info_timeout = (guint) 0;
308
400
self->priv->timeout_id = (guint) 0;
325
417
static void zeitgeist_dp_plugin_restart_watcher (ZeitgeistDpPlugin* self, guint interval) {
327
421
g_return_if_fail (self != NULL);
328
if (self->priv->timeout_id != 0) {
329
g_source_remove (self->priv->timeout_id);
422
_tmp0_ = self->priv->timeout_id;
423
if (_tmp0_ != ((guint) 0)) {
425
_tmp1_ = self->priv->timeout_id;
426
g_source_remove (_tmp1_);
331
_tmp0_ = g_timeout_add_full (G_PRIORITY_DEFAULT, interval, _zeitgeist_dp_plugin_timeout_cb_gsource_func, g_object_ref (self), g_object_unref);
332
self->priv->timeout_id = _tmp0_;
429
_tmp3_ = g_timeout_add_full (G_PRIORITY_DEFAULT, _tmp2_, _zeitgeist_dp_plugin_timeout_cb_gsource_func, g_object_ref (self), g_object_unref);
430
self->priv->timeout_id = _tmp3_;
343
441
static void zeitgeist_dp_plugin_file_opened (ZeitgeistDpPlugin* self, const gchar* mrl, TotemObject* totem) {
344
MediaInfo _tmp0_ = {0};
345
MediaInfo _tmp1_ = {0};
444
MediaInfo _tmp3_ = {0};
347
447
GTimeVal cur_time = {0};
349
451
g_return_if_fail (self != NULL);
350
452
g_return_if_fail (mrl != NULL);
351
453
g_return_if_fail (totem != NULL);
352
if (self->priv->current_media.mrl != NULL) {
353
zeitgeist_dp_plugin_file_closed (self, totem);
454
_tmp0_ = self->priv->current_media;
456
if (_tmp1_ != NULL) {
459
zeitgeist_dp_plugin_file_closed (self, _tmp2_);
355
memset (&_tmp0_, 0, sizeof (MediaInfo));
461
memset (&_tmp3_, 0, sizeof (MediaInfo));
357
462
media_info_destroy (&self->priv->current_media);
358
self->priv->current_media = _tmp1_;
359
_tmp2_ = g_strdup (mrl);
463
self->priv->current_media = _tmp3_;
465
_tmp5_ = g_strdup (_tmp4_);
360
466
_g_free0 (self->priv->current_media.mrl);
361
self->priv->current_media.mrl = _tmp2_;
467
self->priv->current_media.mrl = _tmp5_;
362
468
g_get_current_time (&cur_time);
363
_tmp3_ = zeitgeist_timestamp_from_timeval (&cur_time);
364
self->priv->current_media.timestamp = _tmp3_;
365
if (self->priv->media_info_timeout == 0) {
367
_tmp4_ = g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) 250, _zeitgeist_dp_plugin_wait_for_media_info_gsource_func, g_object_ref (self), g_object_unref);
368
self->priv->media_info_timeout = _tmp4_;
470
_tmp7_ = zeitgeist_timestamp_from_timeval (&_tmp6_);
471
self->priv->current_media.timestamp = _tmp7_;
472
_tmp8_ = self->priv->media_info_timeout;
473
if (_tmp8_ == ((guint) 0)) {
475
_tmp9_ = g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) 250, _zeitgeist_dp_plugin_wait_for_media_info_gsource_func, g_object_ref (self), g_object_unref);
476
self->priv->media_info_timeout = _tmp9_;
369
477
zeitgeist_dp_plugin_restart_watcher (self, (guint) 15000);
374
482
static void zeitgeist_dp_plugin_file_closed (ZeitgeistDpPlugin* self, TotemObject* totem) {
375
483
gboolean _tmp0_ = FALSE;
376
489
g_return_if_fail (self != NULL);
377
490
g_return_if_fail (totem != NULL);
378
if (self->priv->current_media.sent_access) {
379
_tmp0_ = self->priv->current_media.mrl != NULL;
491
_tmp1_ = self->priv->current_media;
492
_tmp2_ = _tmp1_.sent_access;
496
_tmp3_ = self->priv->current_media;
498
_tmp0_ = _tmp4_ != NULL;
384
504
GTimeVal cur_time = {0};
386
507
g_get_current_time (&cur_time);
387
_tmp1_ = zeitgeist_timestamp_from_timeval (&cur_time);
388
self->priv->current_media.timestamp = _tmp1_;
509
_tmp7_ = zeitgeist_timestamp_from_timeval (&_tmp6_);
510
self->priv->current_media.timestamp = _tmp7_;
389
511
zeitgeist_dp_plugin_send_event_to_zg (self, TRUE);
390
512
_g_free0 (self->priv->current_media.mrl);
391
513
self->priv->current_media.mrl = NULL;
393
if (self->priv->media_info_timeout != 0) {
394
g_source_remove (self->priv->media_info_timeout);
515
_tmp8_ = self->priv->media_info_timeout;
516
if (_tmp8_ != ((guint) 0)) {
518
_tmp9_ = self->priv->media_info_timeout;
519
g_source_remove (_tmp9_);
396
521
self->priv->media_info_timeout = (guint) 0;
397
if (self->priv->timeout_id != 0) {
398
g_source_remove (self->priv->timeout_id);
522
_tmp10_ = self->priv->timeout_id;
523
if (_tmp10_ != ((guint) 0)) {
525
_tmp11_ = self->priv->timeout_id;
526
g_source_remove (_tmp11_);
400
528
self->priv->timeout_id = (guint) 0;
404
532
static void zeitgeist_dp_plugin_metadata_changed (ZeitgeistDpPlugin* self, const gchar* artist, const gchar* title, const gchar* album, guint track_num, TotemObject* totem) {
405
534
g_return_if_fail (self != NULL);
406
535
g_return_if_fail (totem != NULL);
407
if (self->priv->media_info_timeout != 0) {
536
_tmp0_ = self->priv->media_info_timeout;
537
if (_tmp0_ != ((guint) 0)) {
411
_tmp0_ = g_strdup (artist);
545
_tmp2_ = g_strdup (_tmp1_);
412
546
_g_free0 (self->priv->current_media.artist);
413
self->priv->current_media.artist = _tmp0_;
414
_tmp1_ = g_strdup (title);
547
self->priv->current_media.artist = _tmp2_;
549
_tmp4_ = g_strdup (_tmp3_);
415
550
_g_free0 (self->priv->current_media.title);
416
self->priv->current_media.title = _tmp1_;
417
_tmp2_ = g_strdup (album);
551
self->priv->current_media.title = _tmp4_;
553
_tmp6_ = g_strdup (_tmp5_);
418
554
_g_free0 (self->priv->current_media.album);
419
self->priv->current_media.album = _tmp2_;
555
self->priv->current_media.album = _tmp6_;
424
560
static gboolean zeitgeist_dp_plugin_timeout_cb (ZeitgeistDpPlugin* self) {
425
561
gboolean result = FALSE;
426
563
g_return_val_if_fail (self != NULL, FALSE);
427
if (self->priv->media_info_timeout != 0) {
428
gchar* _tmp0_ = NULL;
429
g_source_remove (self->priv->media_info_timeout);
564
_tmp0_ = self->priv->media_info_timeout;
565
if (_tmp0_ != ((guint) 0)) {
568
gchar* _tmp3_ = NULL;
569
_tmp1_ = self->priv->media_info_timeout;
570
g_source_remove (_tmp1_);
430
571
self->priv->media_info_timeout = (guint) 0;
431
_tmp0_ = totem_get_short_title (self->priv->_object);
572
_tmp2_ = self->priv->_object;
573
_tmp3_ = totem_get_short_title (_tmp2_);
432
574
_g_free0 (self->priv->current_media.title);
433
self->priv->current_media.title = _tmp0_;
575
self->priv->current_media.title = _tmp3_;
434
576
self->priv->timeout_id = (guint) 0;
435
577
zeitgeist_dp_plugin_wait_for_media_info (self);
443
585
static void zeitgeist_dp_plugin_query_media_mimetype_data_free (gpointer _data) {
444
ZeitgeistDpPluginQueryMediaMimetypeData* data;
446
_g_free0 (data->current_mrl);
447
_g_object_unref0 (data->self);
448
g_slice_free (ZeitgeistDpPluginQueryMediaMimetypeData, data);
586
ZeitgeistDpPluginQueryMediaMimetypeData* _data_;
588
_g_free0 (_data_->current_mrl);
589
_g_object_unref0 (_data_->self);
590
g_slice_free (ZeitgeistDpPluginQueryMediaMimetypeData, _data_);
452
594
static void zeitgeist_dp_plugin_query_media_mimetype (ZeitgeistDpPlugin* self, const gchar* current_mrl, GAsyncReadyCallback _callback_, gpointer _user_data_) {
453
595
ZeitgeistDpPluginQueryMediaMimetypeData* _data_;
596
ZeitgeistDpPlugin* _tmp0_;
454
599
_data_ = g_slice_new0 (ZeitgeistDpPluginQueryMediaMimetypeData);
455
600
_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, zeitgeist_dp_plugin_query_media_mimetype);
456
601
g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, zeitgeist_dp_plugin_query_media_mimetype_data_free);
457
_data_->self = _g_object_ref0 (self);
458
_data_->current_mrl = g_strdup (current_mrl);
602
_tmp0_ = _g_object_ref0 (self);
603
_data_->self = _tmp0_;
604
_tmp1_ = current_mrl;
605
_tmp2_ = g_strdup (_tmp1_);
606
_data_->current_mrl = _tmp2_;
459
607
zeitgeist_dp_plugin_query_media_mimetype_co (_data_);
485
633
g_assert_not_reached ();
488
data->_tmp0_ = g_strdup (data->current_mrl);
489
data->mrl = data->_tmp0_;
491
data->_tmp1_ = g_file_new_for_uri (data->mrl);
492
data->f = data->_tmp1_;
494
g_file_query_info_async (data->f, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE, 0, G_PRIORITY_DEFAULT_IDLE, NULL, zeitgeist_dp_plugin_query_media_mimetype_ready, data);
498
data->_tmp2_ = g_file_query_info_finish (data->f, data->_res_, &data->_inner_error_);
499
data->fi = data->_tmp2_;
500
if (data->_inner_error_ != NULL) {
501
goto __catch0_g_error;
503
if (g_strcmp0 (data->self->priv->current_media.mrl, data->mrl) != 0) {
506
data->_tmp4_ = totem_object_is_playing (data->self->priv->_object);
507
data->_tmp3_ = !data->_tmp4_;
510
_g_object_unref0 (data->fi);
511
_g_object_unref0 (data->f);
512
_g_free0 (data->mrl);
513
if (data->_state_ == 0) {
514
g_simple_async_result_complete_in_idle (data->_async_result);
636
_data_->_tmp0_ = _data_->current_mrl;
637
_data_->_tmp1_ = g_strdup (_data_->_tmp0_);
638
_data_->mrl = _data_->_tmp1_;
639
_data_->_tmp2_ = _data_->mrl;
640
_data_->_tmp3_ = NULL;
641
_data_->_tmp3_ = g_file_new_for_uri (_data_->_tmp2_);
642
_data_->f = _data_->_tmp3_;
644
_data_->_tmp4_ = _data_->f;
646
g_file_query_info_async (_data_->_tmp4_, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE, 0, G_PRIORITY_DEFAULT_IDLE, NULL, zeitgeist_dp_plugin_query_media_mimetype_ready, _data_);
649
_data_->_tmp5_ = NULL;
650
_data_->_tmp5_ = g_file_query_info_finish (_data_->_tmp4_, _data_->_res_, &_data_->_inner_error_);
651
_data_->fi = _data_->_tmp5_;
652
if (_data_->_inner_error_ != NULL) {
653
goto __catch0_g_error;
655
_data_->_tmp7_ = _data_->self->priv->current_media;
656
_data_->_tmp8_ = _data_->_tmp7_.mrl;
657
_data_->_tmp9_ = _data_->mrl;
658
if (g_strcmp0 (_data_->_tmp8_, _data_->_tmp9_) != 0) {
659
_data_->_tmp6_ = TRUE;
516
g_simple_async_result_complete (data->_async_result);
518
g_object_unref (data->_async_result);
661
_data_->_tmp10_ = _data_->self->priv->_object;
662
_data_->_tmp11_ = FALSE;
663
_data_->_tmp11_ = totem_object_is_playing (_data_->_tmp10_);
664
_data_->_tmp6_ = !_data_->_tmp11_;
666
_data_->_tmp12_ = _data_->_tmp6_;
667
if (_data_->_tmp12_) {
668
_g_object_unref0 (_data_->fi);
669
_g_object_unref0 (_data_->f);
670
_g_free0 (_data_->mrl);
671
if (_data_->_state_ == 0) {
672
g_simple_async_result_complete_in_idle (_data_->_async_result);
674
g_simple_async_result_complete (_data_->_async_result);
676
g_object_unref (_data_->_async_result);
679
_data_->_tmp13_ = _data_->fi;
680
_data_->_tmp14_ = NULL;
681
_data_->_tmp14_ = g_file_info_get_content_type (_data_->_tmp13_);
682
_data_->_tmp15_ = g_strdup (_data_->_tmp14_);
683
_g_free0 (_data_->self->priv->current_media.mimetype);
684
_data_->self->priv->current_media.mimetype = _data_->_tmp15_;
685
zeitgeist_dp_plugin_send_event_to_zg (_data_->self, FALSE);
686
_data_->self->priv->current_media.sent_access = TRUE;
687
_g_object_unref0 (_data_->fi);
522
data->_tmp5_ = g_file_info_get_content_type (data->fi);
523
data->_tmp6_ = g_strdup (data->_tmp5_);
524
_g_free0 (data->self->priv->current_media.mimetype);
525
data->self->priv->current_media.mimetype = data->_tmp6_;
526
zeitgeist_dp_plugin_send_event_to_zg (data->self, FALSE);
527
data->self->priv->current_media.sent_access = TRUE;
528
_g_object_unref0 (data->fi);
530
690
__catch0_g_error:
532
data->err = data->_inner_error_;
533
data->_inner_error_ = NULL;
534
_g_error_free0 (data->err);
692
_data_->err = _data_->_inner_error_;
693
_data_->_inner_error_ = NULL;
694
_g_error_free0 (_data_->err);
537
if (data->_inner_error_ != NULL) {
538
_g_object_unref0 (data->f);
539
_g_free0 (data->mrl);
540
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, data->_inner_error_->message, g_quark_to_string (data->_inner_error_->domain), data->_inner_error_->code);
541
g_clear_error (&data->_inner_error_);
697
if (_data_->_inner_error_ != NULL) {
698
_g_object_unref0 (_data_->f);
699
_g_free0 (_data_->mrl);
700
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
701
g_clear_error (&_data_->_inner_error_);
544
_g_object_unref0 (data->f);
545
_g_free0 (data->mrl);
546
if (data->_state_ == 0) {
547
g_simple_async_result_complete_in_idle (data->_async_result);
704
_g_object_unref0 (_data_->f);
705
_g_free0 (_data_->mrl);
706
if (_data_->_state_ == 0) {
707
g_simple_async_result_complete_in_idle (_data_->_async_result);
549
g_simple_async_result_complete (data->_async_result);
709
g_simple_async_result_complete (_data_->_async_result);
551
g_object_unref (data->_async_result);
711
g_object_unref (_data_->_async_result);
556
716
static gboolean zeitgeist_dp_plugin_wait_for_media_info (ZeitgeistDpPlugin* self) {
557
717
gboolean result = FALSE;
558
718
gboolean _tmp0_ = FALSE;
559
722
g_return_val_if_fail (self != NULL, FALSE);
560
if (self->priv->current_media.title != NULL) {
562
_tmp1_ = totem_object_is_playing (self->priv->_object);
723
_tmp1_ = self->priv->current_media;
724
_tmp2_ = _tmp1_.title;
725
if (_tmp2_ != NULL) {
727
gboolean _tmp4_ = FALSE;
728
_tmp3_ = self->priv->_object;
729
_tmp4_ = totem_object_is_playing (_tmp3_);
568
736
GValue val = {0};
569
GtkWidget* _tmp2_ = NULL;
738
GtkWidget* _tmp7_ = NULL;
571
739
BaconVideoWidget* video;
573
const gchar* _tmp5_ = NULL;
576
_tmp2_ = totem_get_video_widget (self->priv->_object);
578
video = BACON_IS_VIDEO_WIDGET (_tmp3_) ? ((BaconVideoWidget*) _tmp3_) : NULL;
579
bacon_video_widget_get_metadata (video, BVW_INFO_HAS_VIDEO, &_tmp4_);
740
BaconVideoWidget* _tmp8_;
742
const gchar* _tmp10_ = NULL;
743
gboolean _tmp11_ = FALSE;
744
const gchar* _tmp12_;
747
const gchar* _tmp15_;
749
_tmp6_ = self->priv->_object;
750
_tmp7_ = totem_get_video_widget (_tmp6_);
751
video = BACON_IS_VIDEO_WIDGET (_tmp7_) ? ((BaconVideoWidget*) _tmp7_) : NULL;
753
bacon_video_widget_get_metadata (_tmp8_, BVW_INFO_HAS_VIDEO, &_tmp9_);
580
754
G_IS_VALUE (&val) ? (g_value_unset (&val), NULL) : NULL;
582
_tmp6_ = g_value_get_boolean (&val);
584
_tmp5_ = ZEITGEIST_NFO_VIDEO;
756
_tmp11_ = g_value_get_boolean (&val);
758
_tmp10_ = ZEITGEIST_NFO_VIDEO;
586
_tmp5_ = ZEITGEIST_NFO_AUDIO;
760
_tmp10_ = ZEITGEIST_NFO_AUDIO;
588
_tmp7_ = g_strdup (_tmp5_);
763
_tmp13_ = g_strdup (_tmp12_);
589
764
_g_free0 (self->priv->current_media.interpretation);
590
self->priv->current_media.interpretation = _tmp7_;
591
zeitgeist_dp_plugin_query_media_mimetype (self, self->priv->current_media.mrl, NULL, NULL);
592
if (self->priv->timeout_id != 0) {
593
g_source_remove (self->priv->timeout_id);
765
self->priv->current_media.interpretation = _tmp13_;
766
_tmp14_ = self->priv->current_media;
767
_tmp15_ = _tmp14_.mrl;
768
zeitgeist_dp_plugin_query_media_mimetype (self, _tmp15_, NULL, NULL);
769
_tmp16_ = self->priv->timeout_id;
770
if (_tmp16_ != ((guint) 0)) {
772
_tmp17_ = self->priv->timeout_id;
773
g_source_remove (_tmp17_);
595
775
self->priv->timeout_id = (guint) 0;
596
776
self->priv->media_info_timeout = (guint) 0;
607
787
static void zeitgeist_dp_plugin_playing_changed (ZeitgeistDpPlugin* self) {
608
788
gboolean _tmp0_ = FALSE;
609
gboolean _tmp1_ = FALSE;
791
gboolean _tmp5_ = FALSE;
793
gboolean _tmp7_ = FALSE;
611
795
g_return_if_fail (self != NULL);
612
if (self->priv->media_info_timeout == 0) {
613
_tmp0_ = self->priv->current_media.sent_access == FALSE;
796
_tmp1_ = self->priv->media_info_timeout;
797
if (_tmp1_ == ((guint) 0)) {
800
_tmp2_ = self->priv->current_media;
801
_tmp3_ = _tmp2_.sent_access;
802
_tmp0_ = _tmp3_ == FALSE;
618
808
zeitgeist_dp_plugin_wait_for_media_info (self);
620
_tmp2_ = totem_object_is_playing (self->priv->_object);
622
_tmp1_ = self->priv->current_media.sent_access;
810
_tmp6_ = self->priv->_object;
811
_tmp7_ = totem_object_is_playing (_tmp6_);
815
_tmp8_ = self->priv->current_media;
816
_tmp9_ = _tmp8_.sent_access;
627
zeitgeist_dp_plugin_file_closed (self, self->priv->_object);
823
TotemObject* _tmp11_;
824
_tmp11_ = self->priv->_object;
825
zeitgeist_dp_plugin_file_closed (self, _tmp11_);
632
830
static void zeitgeist_dp_plugin_send_event_to_zg (ZeitgeistDpPlugin* self, gboolean leave_event) {
633
831
gboolean _tmp0_ = FALSE;
634
835
g_return_if_fail (self != NULL);
635
if (self->priv->current_media.mrl != NULL) {
636
_tmp0_ = self->priv->current_media.title != NULL;
836
_tmp1_ = self->priv->current_media;
838
if (_tmp2_ != NULL) {
841
_tmp3_ = self->priv->current_media;
842
_tmp4_ = _tmp3_.title;
843
_tmp0_ = _tmp4_ != NULL;
641
const gchar* _tmp1_ = NULL;
849
const gchar* _tmp6_ = NULL;
643
853
gchar* event_interpretation;
644
gchar* _tmp3_ = NULL;
855
const gchar* _tmp11_;
856
gchar* _tmp12_ = NULL;
646
const gchar* _tmp4_ = NULL;
647
ZeitgeistSubject* _tmp5_ = NULL;
859
const gchar* _tmp14_;
861
const gchar* _tmp16_;
863
const gchar* _tmp18_;
864
const gchar* _tmp19_ = NULL;
866
const gchar* _tmp21_;
867
const gchar* _tmp22_;
869
const gchar* _tmp24_;
870
ZeitgeistSubject* _tmp25_;
871
ZeitgeistSubject* _tmp26_;
648
872
ZeitgeistSubject* subject;
649
ZeitgeistEvent* _tmp6_ = NULL;
873
const gchar* _tmp27_;
874
ZeitgeistSubject* _tmp28_;
875
ZeitgeistEvent* _tmp29_;
876
ZeitgeistEvent* _tmp30_;
650
877
ZeitgeistEvent* event;
652
_tmp1_ = ZEITGEIST_ZG_LEAVE_EVENT;
878
ZeitgeistEvent* _tmp31_;
881
ZeitgeistLog* _tmp34_;
882
ZeitgeistEvent* _tmp35_;
883
_tmp7_ = leave_event;
885
_tmp6_ = ZEITGEIST_ZG_LEAVE_EVENT;
654
_tmp1_ = ZEITGEIST_ZG_ACCESS_EVENT;
887
_tmp6_ = ZEITGEIST_ZG_ACCESS_EVENT;
656
_tmp2_ = g_strdup (_tmp1_);
657
event_interpretation = _tmp2_;
658
_tmp3_ = g_path_get_dirname (self->priv->current_media.mrl);
660
_tmp4_ = zeitgeist_manifestation_for_uri (self->priv->current_media.mrl);
661
_tmp5_ = zeitgeist_subject_new_full (self->priv->current_media.mrl, self->priv->current_media.interpretation, _tmp4_, self->priv->current_media.mimetype, origin, self->priv->current_media.title, "");
662
subject = g_object_ref_sink (_tmp5_);
663
_tmp6_ = zeitgeist_event_new_full (event_interpretation, ZEITGEIST_ZG_USER_ACTIVITY, "application://totem.desktop", subject, NULL, NULL);
664
event = g_object_ref_sink (_tmp6_);
665
zeitgeist_event_set_timestamp (event, self->priv->current_media.timestamp);
666
zeitgeist_log_insert_events_no_reply (self->priv->zg_log, event, NULL, NULL);
890
_tmp9_ = g_strdup (_tmp8_);
891
event_interpretation = _tmp9_;
892
_tmp10_ = self->priv->current_media;
893
_tmp11_ = _tmp10_.mrl;
894
_tmp12_ = g_path_get_dirname (_tmp11_);
896
_tmp13_ = self->priv->current_media;
897
_tmp14_ = _tmp13_.mrl;
898
_tmp15_ = self->priv->current_media;
899
_tmp16_ = _tmp15_.interpretation;
900
_tmp17_ = self->priv->current_media;
901
_tmp18_ = _tmp17_.mrl;
902
_tmp19_ = zeitgeist_manifestation_for_uri (_tmp18_);
903
_tmp20_ = self->priv->current_media;
904
_tmp21_ = _tmp20_.mimetype;
906
_tmp23_ = self->priv->current_media;
907
_tmp24_ = _tmp23_.title;
908
_tmp25_ = zeitgeist_subject_new_full (_tmp14_, _tmp16_, _tmp19_, _tmp21_, _tmp22_, _tmp24_, "");
909
_tmp26_ = g_object_ref_sink (_tmp25_);
911
_tmp27_ = event_interpretation;
913
_tmp29_ = zeitgeist_event_new_full (_tmp27_, ZEITGEIST_ZG_USER_ACTIVITY, "application://totem.desktop", _tmp28_, NULL, NULL);
914
_tmp30_ = g_object_ref_sink (_tmp29_);
917
_tmp32_ = self->priv->current_media;
918
_tmp33_ = _tmp32_.timestamp;
919
zeitgeist_event_set_timestamp (_tmp31_, _tmp33_);
920
_tmp34_ = self->priv->zg_log;
922
zeitgeist_log_insert_events_no_reply (_tmp34_, _tmp35_, NULL, NULL);
667
923
_g_object_unref0 (event);
668
924
_g_object_unref0 (subject);
669
925
_g_free0 (origin);
742
1002
static const GTypeInfo g_define_type_info = { sizeof (ZeitgeistDpPluginClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) zeitgeist_dp_plugin_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ZeitgeistDpPlugin), 0, (GInstanceInitFunc) zeitgeist_dp_plugin_instance_init, NULL };
743
1003
static const GInterfaceInfo peas_activatable_info = { (GInterfaceInitFunc) zeitgeist_dp_plugin_peas_activatable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
744
1004
zeitgeist_dp_plugin_type_id = g_type_module_register_type (module, G_TYPE_OBJECT, "ZeitgeistDpPlugin", &g_define_type_info, 0);
745
g_type_module_add_interface (module, zeitgeist_dp_plugin_type_id, PEAS_TYPE_ACTIVATABLE, &peas_activatable_info);
1005
g_type_module_add_interface (module, zeitgeist_dp_plugin_type_id, peas_activatable_get_type (), &peas_activatable_info);
746
1006
return zeitgeist_dp_plugin_type_id;