Exemple #1
0
static const char *
mex_channel_get_metadata (MexContent         *content,
                          MexContentMetadata  key)
{
  MexChannel *channel = MEX_CHANNEL (content);
  MexChannelPrivate *priv = channel ->priv;

  switch (key)
    {
    case MEX_CONTENT_METADATA_TITLE:
      return priv->name;
      break;
    case MEX_CONTENT_METADATA_STREAM:
      return priv->uri;
    case MEX_CONTENT_METADATA_STILL:
      return priv->thumbnail_uri;
    case MEX_CONTENT_METADATA_MIMETYPE:
      return "x-mex-channel";
    case MEX_CONTENT_METADATA_STATION_LOGO:
      return priv->logo_uri;
    default:
      g_warning ("Can't provide metadata for %s on a MexChannel",
                 mex_content_metadata_key_to_string (key));
    }

  return NULL;
}
static MexProgram *
parse_program (gchar *line)
{
  MexProgram *program;
  gchar *field;
  guint i;

  program = mex_program_new (NULL);
  /* n - 4 because we've already parsed date, start, end, duration */
  for (i = 0; i < G_N_ELEMENTS (field2key) - 4; i++)
    {
      field = cut_first_field_out (&line);
      if (field == NULL)
        {
          g_object_unref (program);
          return NULL;
        }

      if (strcmp (field, "") == 0)
        continue;

      if (field2key[i] == MEX_CONTENT_METADATA_NONE)
        continue;

      MEX_NOTE (EPG, "metadata %s: %s",
                 mex_content_metadata_key_to_string (field2key[i]), field);

      mex_program_set_metadata (program, field2key[i], field);
    }

  return program;
}
Exemple #3
0
static void
set_metadata_to_media (GrlMedia           *media,
                       MexContentMetadata  mex_key,
                       const gchar        *value)
{
  int      ival;
  float    fval;
  GrlKeyID grl_key = _get_grl_key_from_mex (mex_key);

  if (!grl_key) {
    g_warning ("No grilo key to handle %s",
               mex_content_metadata_key_to_string (mex_key));
    return;
  }

  switch (G_PARAM_SPEC (grl_key)->value_type) {
  case G_TYPE_STRING:
    grl_data_set_string (GRL_DATA (media), grl_key, value);
    break;

  case G_TYPE_INT:
    ival = atoi (value);
    grl_data_set_int (GRL_DATA (media), grl_key, ival);
    break;

  case G_TYPE_FLOAT:
    fval = atof (value);
    grl_data_set_float (GRL_DATA (media), grl_key, fval);
    break;
  }
}
static void
content_notify_cb (GObject      *content,
                   GParamSpec   *pspec,
                   MexViewModel *view)
{
  MexViewModelPrivate *priv = view->priv;
  const gchar *filter_key;
  const gchar *group_key;
  const gchar *order_by_key;

  group_key = mex_content_metadata_key_to_string (priv->group_by_key);
  order_by_key = mex_content_metadata_key_to_string (priv->order_by_key);
  filter_key = mex_content_metadata_key_to_string (priv->filter_by_key);

  /* refresh the external list when one of the keys has changed */
  if (g_str_equal (pspec->name, group_key)
      || g_str_equal (pspec->name, order_by_key)
      || g_str_equal (pspec->name, filter_key))
    {
      /* TODO: update only the items which have changed */
      mex_view_model_refresh_external_items (view);
    }
}
Exemple #5
0
void
mex_grilo_set_media_content_metadata (GrlMedia           *media,
                                      MexContentMetadata  mex_key,
                                      const gchar        *value)
{
  int      ival;
  float    fval;
  GrlKeyID grl_key;

  g_return_if_fail (GRL_IS_MEDIA (media));
  g_return_if_fail (mex_key < MEX_CONTENT_METADATA_LAST_ID);

  grl_key = _get_grl_key_from_mex (mex_key);

  if (!grl_key) {
    g_warning ("No grilo key to handle %s",
               mex_content_metadata_key_to_string (mex_key));
    return;
  }

  switch (grl_metadata_key_get_type (grl_key)) {
  case G_TYPE_STRING:
    grl_data_set_string (GRL_DATA (media), grl_key, value);
    break;

  case G_TYPE_INT:
    ival = atoi (value);
    grl_data_set_int (GRL_DATA (media), grl_key, ival);
    break;

  case G_TYPE_FLOAT:
    fval = atof (value);
    grl_data_set_float (GRL_DATA (media), grl_key, fval);
    break;
  }
}