void add_media_renderer (MafwRenderer *renderer) { GtkTreeModel *model; GtkTreeIter iter; const char *uuid; uuid = mafw_extension_get_uuid(MAFW_EXTENSION(renderer)); if (uuid == NULL) return; model = gtk_combo_box_get_model (GTK_COMBO_BOX (renderer_combo)); if (!find_renderer (model, uuid, &iter)) { g_signal_connect(renderer, "state-changed", G_CALLBACK(state_changed_cb), NULL); g_signal_connect(renderer, "media-changed", G_CALLBACK(media_changed_cb), NULL); g_signal_connect(renderer, "property-changed", G_CALLBACK(property_changed_cb), NULL); g_signal_connect(renderer, "metadata-changed", G_CALLBACK(renderer_metadata_changed_cb), NULL); g_signal_connect(renderer, "error", G_CALLBACK(renderer_error_cb), NULL); g_signal_connect(renderer, "playlist-changed", G_CALLBACK(renderer_playlist_changed_cb), NULL); append_media_renderer_to_tree (renderer, uuid); } }
int red_dispatcher_add_renderer(const char *name) { RendererInfo *inf; if (num_renderers == RED_MAX_RENDERERS || !(inf = find_renderer(name))) { return FALSE; } renderers[num_renderers++] = inf->id; return TRUE; }
static void state_changed_cb(MafwRenderer *renderer, MafwPlayState state, gpointer user_data) { const gchar *uuid; GtkTreeModel *model; GtkTreeIter iter; mtg_print_signal (MAFW_EXTENSION (renderer), "Renderer::state-changed", "state:%s (%d)\n", state_to_string (state), state); uuid = mafw_extension_get_uuid(MAFW_EXTENSION(renderer)); model = gtk_combo_box_get_model (GTK_COMBO_BOX (renderer_combo)); g_assert (model != NULL); if (find_renderer (model, uuid, &iter)) { set_state (model, &iter, state); } }
void remove_media_renderer (MafwRenderer *renderer) { MafwRenderer *info; GtkComboBox *combo; GtkTreeModel *model; GtkTreeIter iter; const char *uuid; info = MAFW_RENDERER (renderer); combo = GTK_COMBO_BOX (renderer_combo); uuid = mafw_extension_get_uuid (MAFW_EXTENSION(info)); if (uuid == NULL) return; model = gtk_combo_box_get_model (combo); if (find_renderer (model, uuid, &iter)) { if (gtk_list_store_remove (GTK_LIST_STORE (model), &iter)) gtk_combo_box_set_active (combo, 0); } }