예제 #1
0
/**
  * mex_media_controls_get_enqueued:
  * @controls: The MexMediaControls widget
  * @current_content: MexContent that the player is currently playing
  *
  * If the media controls has been given a queue model then return the next
  * MexContent in the queue model.
  *
  * Return value: The next content in the queue or NULL
  */
MexContent *
mex_media_controls_get_enqueued (MexMediaControls *controls,
                                 MexContent *current_content)
{
    MexMediaControlsPrivate *priv;
    MexModel *queue;
    MexContent *content = NULL;

    if (!MEX_IS_MEDIA_CONTROLS (controls) || !MEX_IS_CONTENT (current_content))
        return NULL;

    priv = controls->priv;

    if (priv->is_queue_model == FALSE)
        return NULL;

    queue = mex_proxy_get_model (priv->proxy);
    if (queue)
    {
        gint idx, length;

        idx = mex_model_index (queue, current_content);
        length = mex_model_get_length (queue);

        if (idx++ > length)
            return NULL;

        content = mex_model_get_content (queue, idx);
    }

    return content;
}
예제 #2
0
static void
mex_proxy_get_property (GObject    *object,
                        guint       property_id,
                        GValue     *value,
                        GParamSpec *pspec)
{
  MexProxy *proxy = MEX_PROXY (object);

  switch (property_id)
    {
    case PROP_MODEL:
      g_value_set_object (value, mex_proxy_get_model (proxy));
      break;

    case PROP_TYPE:
      g_value_set_gtype (value, mex_proxy_get_object_type (proxy));
      break;

    case PROP_LIMIT:
      g_value_set_uint (value, mex_proxy_get_limit (proxy));
      break;

    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
    }
}