~ubuntu-branches/ubuntu/wily/grilo/wily-proposed

« back to all changes in this revision

Viewing changes to src/data/grl-media.c

  • Committer: Package Import Robot
  • Author(s): Alberto Garcia
  • Date: 2014-08-26 20:41:54 UTC
  • mfrom: (1.2.6)
  • Revision ID: package-import@ubuntu.com-20140826204154-56guk7gff3bwkooj
Tags: 0.2.11-1
* New upstream release.
* debian/libgrilo-0.2-1.symbols: update.
* Install the Grilo test UI and Grilo launch binaries:
  - debian/control: add build dependency on libgtk-3-dev and update
    description.
  - debian/libgrilo-0.2-bin.install: install the binaries.
* debian/rules:
  - Enable parallel builds.
  - Don't override dh_install, it's no longer necessary.
* debian/patches/manpages.patch:
  - Add manpages for all commands.

Show diffs side-by-side

added added

removed removed

Lines of Context:
42
42
#define RATING_MAX  5.00
43
43
#define SERIAL_STRING_ALLOC 100
44
44
 
45
 
static void grl_media_dispose (GObject *object);
46
45
static void grl_media_finalize (GObject *object);
47
46
 
48
47
G_DEFINE_TYPE (GrlMedia, grl_media, GRL_TYPE_DATA);
52
51
{
53
52
  GObjectClass *gobject_class = (GObjectClass *)klass;
54
53
 
55
 
  gobject_class->dispose = grl_media_dispose;
56
54
  gobject_class->finalize = grl_media_finalize;
57
55
}
58
56
 
62
60
}
63
61
 
64
62
static void
65
 
grl_media_dispose (GObject *object)
66
 
{
67
 
  G_OBJECT_CLASS (grl_media_parent_class)->dispose (object);
68
 
}
69
 
 
70
 
static void
71
63
grl_media_finalize (GObject *object)
72
64
{
73
65
  GRL_DEBUG ("grl_media_finalize (%s)",
107
99
void
108
100
grl_media_set_rating (GrlMedia *media, gfloat rating, gfloat max)
109
101
{
110
 
  gfloat normalized_value = (rating * RATING_MAX) / max;
 
102
  gfloat normalized_value;
 
103
 
 
104
  g_return_if_fail (GRL_IS_MEDIA (media));
 
105
 
 
106
  normalized_value = (rating * RATING_MAX) / max;
111
107
  grl_data_set_float (GRL_DATA (media),
112
108
                      GRL_METADATA_KEY_RATING,
113
109
                      normalized_value);
126
122
void
127
123
grl_media_set_url_data (GrlMedia *media, const gchar *url, const gchar *mime)
128
124
{
129
 
  GrlRelatedKeys *relkeys = grl_related_keys_new ();
 
125
  GrlRelatedKeys *relkeys;
 
126
 
 
127
  g_return_if_fail (GRL_IS_MEDIA (media));
 
128
 
 
129
  relkeys = grl_related_keys_new ();
130
130
  grl_related_keys_set_string (relkeys, GRL_METADATA_KEY_URL, url);
131
131
  grl_related_keys_set_string (relkeys, GRL_METADATA_KEY_MIME, mime);
132
132
  grl_data_set_related_keys (GRL_DATA (media), relkeys, 0);
145
145
void
146
146
grl_media_add_url_data (GrlMedia *media, const gchar *url, const gchar *mime)
147
147
{
148
 
  GrlRelatedKeys *relkeys = grl_related_keys_new ();
 
148
  GrlRelatedKeys *relkeys;
 
149
 
 
150
  g_return_if_fail (GRL_IS_MEDIA (media));
 
151
 
 
152
  relkeys = grl_related_keys_new ();
149
153
  grl_related_keys_set_string (relkeys, GRL_METADATA_KEY_URL, url);
150
154
  grl_related_keys_set_string (relkeys, GRL_METADATA_KEY_MIME, mime);
151
155
  grl_data_add_related_keys (GRL_DATA (media), relkeys);
544
548
  if (query) {
545
549
    registry = grl_registry_get_default ();
546
550
    keys = grl_registry_get_metadata_keys (registry);
547
 
    /* This is a hack: we do it because we know GrlKeyId are actually integers,
 
551
    /* This is a hack: we do it because we know GrlKeyID are actually integers,
548
552
       and assigned sequentially (0 is for invalid key). This saves us to use a
549
553
       hashtable to store the counter per key */
550
554
    grlkey_count = g_new0 (guint, g_list_length(keys) + 1);
848
852
                           const GDateTime *publication_date,
849
853
                           const gchar *certificate)
850
854
{
851
 
  GrlRelatedKeys *relkeys = grl_related_keys_new ();
 
855
  GrlRelatedKeys *relkeys;
 
856
 
 
857
  g_return_if_fail (GRL_IS_MEDIA (media));
 
858
 
 
859
  relkeys = grl_related_keys_new ();
 
860
 
852
861
  grl_related_keys_set_string (relkeys,
853
862
                               GRL_METADATA_KEY_REGION,
854
863
                               region);
878
887
                           const GDateTime *publication_date,
879
888
                           const gchar *certificate)
880
889
{
881
 
  GrlRelatedKeys *relkeys = grl_related_keys_new ();
 
890
  GrlRelatedKeys *relkeys;
 
891
 
 
892
  g_return_if_fail (GRL_IS_MEDIA (media));
 
893
 
 
894
  relkeys = grl_related_keys_new ();
882
895
  grl_related_keys_set_string (relkeys,
883
896
                               GRL_METADATA_KEY_REGION,
884
897
                               region);
1192
1205
const gchar *
1193
1206
grl_media_get_url_data_nth (GrlMedia *media, guint index, gchar **mime)
1194
1207
{
1195
 
  GrlRelatedKeys *relkeys =
1196
 
    grl_data_get_related_keys (GRL_DATA (media), GRL_METADATA_KEY_URL, index);
 
1208
  GrlRelatedKeys *relkeys;
 
1209
 
 
1210
  g_return_val_if_fail (GRL_IS_MEDIA (media), NULL);
 
1211
 
 
1212
  relkeys = grl_data_get_related_keys (GRL_DATA (media), GRL_METADATA_KEY_URL, index);
1197
1213
 
1198
1214
  if (!relkeys) {
1199
1215
    return NULL;
1233
1249
const gchar *
1234
1250
grl_media_get_author_nth (GrlMedia *media, guint index)
1235
1251
{
1236
 
  GrlRelatedKeys *relkeys =
 
1252
  GrlRelatedKeys *relkeys;
 
1253
 
 
1254
  g_return_val_if_fail (GRL_IS_MEDIA (media), NULL);
 
1255
 
 
1256
  relkeys =
1237
1257
    grl_data_get_related_keys (GRL_DATA (media),
1238
1258
                               GRL_METADATA_KEY_AUTHOR,
1239
1259
                               index);
1313
1333
const gchar *
1314
1334
grl_media_get_thumbnail_nth (GrlMedia *media, guint index)
1315
1335
{
1316
 
  GrlRelatedKeys *relkeys =
 
1336
  GrlRelatedKeys *relkeys;
 
1337
 
 
1338
  g_return_val_if_fail (GRL_IS_MEDIA (media), NULL);
 
1339
 
 
1340
  relkeys =
1317
1341
    grl_data_get_related_keys (GRL_DATA (media),
1318
1342
                               GRL_METADATA_KEY_THUMBNAIL,
1319
1343
                               index);
1356
1380
const guint8 *
1357
1381
grl_media_get_thumbnail_binary_nth (GrlMedia *media, gsize *size, guint index)
1358
1382
{
1359
 
  GrlRelatedKeys *relkeys =
 
1383
  GrlRelatedKeys *relkeys;
 
1384
 
 
1385
  g_return_val_if_fail (GRL_IS_MEDIA (media), NULL);
 
1386
 
 
1387
  relkeys =
1360
1388
    grl_data_get_related_keys (GRL_DATA (media),
1361
1389
                               GRL_METADATA_KEY_THUMBNAIL,
1362
1390
                               index);
1488
1516
                               const GDateTime **publication_date,
1489
1517
                               const gchar **certificate)
1490
1518
{
1491
 
    GrlRelatedKeys *relkeys =
1492
 
      grl_data_get_related_keys (GRL_DATA (media),
1493
 
                                 GRL_METADATA_KEY_PUBLICATION_DATE,
1494
 
                                 index);
1495
 
 
1496
 
    if (!relkeys) {
1497
 
      return NULL;
1498
 
    }
1499
 
 
1500
 
    if (publication_date) {
1501
 
      *publication_date = grl_related_keys_get_boxed
1502
 
                (relkeys, GRL_METADATA_KEY_PUBLICATION_DATE);
1503
 
    }
1504
 
 
1505
 
    if (certificate) {
1506
 
      *certificate = grl_related_keys_get_string
1507
 
                (relkeys, GRL_METADATA_KEY_CERTIFICATE);
1508
 
    }
1509
 
 
1510
 
    return grl_related_keys_get_string (relkeys, GRL_METADATA_KEY_REGION);
 
1519
  GrlRelatedKeys *relkeys;
 
1520
 
 
1521
  g_return_val_if_fail (GRL_IS_MEDIA (media), NULL);
 
1522
 
 
1523
  relkeys =
 
1524
    grl_data_get_related_keys (GRL_DATA (media),
 
1525
                               GRL_METADATA_KEY_PUBLICATION_DATE,
 
1526
                               index);
 
1527
 
 
1528
  if (!relkeys) {
 
1529
    return NULL;
 
1530
  }
 
1531
 
 
1532
  if (publication_date) {
 
1533
    *publication_date = grl_related_keys_get_boxed
 
1534
              (relkeys, GRL_METADATA_KEY_PUBLICATION_DATE);
 
1535
  }
 
1536
 
 
1537
  if (certificate) {
 
1538
    *certificate = grl_related_keys_get_string
 
1539
              (relkeys, GRL_METADATA_KEY_CERTIFICATE);
 
1540
  }
 
1541
 
 
1542
  return grl_related_keys_get_string (relkeys, GRL_METADATA_KEY_REGION);
1511
1543
}
1512
1544
 
1513
1545
/**
1638
1670
const gchar *
1639
1671
grl_media_get_player_nth (GrlMedia *media, guint index)
1640
1672
{
1641
 
  GrlRelatedKeys *relkeys =
 
1673
  GrlRelatedKeys *relkeys;
 
1674
 
 
1675
  g_return_val_if_fail (GRL_IS_MEDIA (media), NULL);
 
1676
 
 
1677
  relkeys =
1642
1678
    grl_data_get_related_keys (GRL_DATA (media),
1643
1679
                               GRL_METADATA_KEY_EXTERNAL_PLAYER,
1644
1680
                               index);
1678
1714
const gchar *
1679
1715
grl_media_get_external_url_nth (GrlMedia *media, guint index)
1680
1716
{
1681
 
  GrlRelatedKeys *relkeys =
 
1717
  GrlRelatedKeys *relkeys;
 
1718
 
 
1719
  g_return_val_if_fail (GRL_IS_MEDIA (media), NULL);
 
1720
 
 
1721
  relkeys =
1682
1722
    grl_data_get_related_keys (GRL_DATA (media),
1683
1723
                               GRL_METADATA_KEY_EXTERNAL_URL,
1684
1724
                               index);
1794
1834
grl_media_get_keyword_nth (GrlMedia *media,
1795
1835
                           guint index)
1796
1836
{
1797
 
  GrlRelatedKeys *const relkeys =
 
1837
  GrlRelatedKeys *relkeys;
 
1838
 
 
1839
  g_return_val_if_fail (GRL_IS_MEDIA (media), NULL);
 
1840
 
 
1841
  relkeys =
1798
1842
    grl_data_get_related_keys (GRL_DATA (media),
1799
1843
                               GRL_METADATA_KEY_KEYWORD,
1800
1844
                               index);