gint main (gint argc, gchar **argv) { g_setenv ("GRL_PLUGIN_PATH", LUA_FACTORY_PLUGIN_PATH, TRUE); g_setenv ("GRL_PLUGIN_LIST", LUA_FACTORY_ID, TRUE); g_setenv ("GRL_NET_MOCKED", LUA_FACTORY_DATA_PATH "config.ini", TRUE); g_setenv ("GRL_LUA_SOURCES_PATH", LUA_FACTORY_DATA_PATH, TRUE); grl_init (&argc, &argv); g_test_init (&argc, &argv, NULL); test_lua_factory_setup (NULL); g_test_add_func ("/lua-factory/lua-library/not-callback-simple", test_not_callback_simple); g_test_add_func ("/lua-factory/lua-library/not-callback-after-async", test_not_callback_on_async); g_test_add_func ("/lua-factory/lua-library/callback-after-end", test_callback_after_end_of_operation); g_test_add_func ("/lua-factory/lua-library/multiple-fetch", test_correct_state_on_multiple_fetch); gint result = g_test_run (); test_lua_factory_shutdown (); grl_deinit (); return result; }
static void impl_activate (PeasActivatable *plugin) { RBGriloPlugin *pi = RB_GRILO_PLUGIN (plugin); GError *error = NULL; RBShell *shell; pi->sources = g_hash_table_new_full (g_direct_hash, g_direct_equal, g_object_unref, g_object_unref); grl_init (0, NULL); pi->registry = grl_registry_get_default (); g_signal_connect (pi->registry, "source-added", G_CALLBACK (grilo_source_added_cb), pi); if (grl_registry_load_all_plugins (pi->registry, &error) == FALSE) { g_warning ("Failed to load Grilo plugins: %s", error->message); g_clear_error (&error); } g_object_get (plugin, "object", &shell, NULL); g_object_get (shell, "shell-player", &pi->shell_player, NULL); g_object_unref (shell); g_signal_connect (pi->shell_player, "playing-song-changed", G_CALLBACK (playing_song_changed_cb), pi); pi->art_store = rb_ext_db_new ("album-art"); }
void mex_grilo_init (int *p_argc, char **p_argv[]) { grl_init (p_argc, p_argv); /* grl_to_mex = g_hash_table_new (g_direct_hash, g_direct_equal); */ mex_to_grl = g_hash_table_new (g_direct_hash, g_direct_equal); _insert_grl_mex_link (GRL_METADATA_KEY_SHOW, MEX_CONTENT_METADATA_SERIES_NAME); _insert_grl_mex_link (GRL_METADATA_KEY_DESCRIPTION, MEX_CONTENT_METADATA_SYNOPSIS); _insert_grl_mex_link (GRL_METADATA_KEY_TITLE, MEX_CONTENT_METADATA_TITLE); _insert_grl_mex_link (GRL_METADATA_KEY_SEASON, MEX_CONTENT_METADATA_SEASON); _insert_grl_mex_link (GRL_METADATA_KEY_EPISODE, MEX_CONTENT_METADATA_EPISODE); _insert_grl_mex_link (GRL_METADATA_KEY_EPISODE, MEX_CONTENT_METADATA_EPISODE); _insert_grl_mex_link (GRL_METADATA_KEY_DURATION, MEX_CONTENT_METADATA_DURATION); _insert_grl_mex_link (GRL_METADATA_KEY_URL, MEX_CONTENT_METADATA_STREAM); _insert_grl_mex_link (GRL_METADATA_KEY_PUBLICATION_DATE, MEX_CONTENT_METADATA_DATE); _insert_grl_mex_link (GRL_METADATA_KEY_CREATION_DATE, MEX_CONTENT_METADATA_CREATION_DATE); _insert_grl_mex_link (GRL_METADATA_KEY_MIME, MEX_CONTENT_METADATA_MIMETYPE); _insert_grl_mex_link (GRL_METADATA_KEY_THUMBNAIL, MEX_CONTENT_METADATA_STILL); _insert_grl_mex_link (GRL_METADATA_KEY_LAST_POSITION, MEX_CONTENT_METADATA_LAST_POSITION); _insert_grl_mex_link (GRL_METADATA_KEY_PLAY_COUNT, MEX_CONTENT_METADATA_PLAY_COUNT); _insert_grl_mex_link (GRL_METADATA_KEY_LAST_PLAYED, MEX_CONTENT_METADATA_LAST_PLAYED_DATE); _insert_grl_mex_link (GRL_METADATA_KEY_WIDTH, MEX_CONTENT_METADATA_WIDTH); _insert_grl_mex_link (GRL_METADATA_KEY_HEIGHT, MEX_CONTENT_METADATA_HEIGHT); _insert_grl_mex_link (GRL_METADATA_KEY_CAMERA_MODEL, MEX_CONTENT_METADATA_CAMERA_MODEL); _insert_grl_mex_link (GRL_METADATA_KEY_ORIENTATION, MEX_CONTENT_METADATA_ORIENTATION); _insert_grl_mex_link (GRL_METADATA_KEY_FLASH_USED, MEX_CONTENT_METADATA_FLASH_USED); _insert_grl_mex_link (GRL_METADATA_KEY_EXPOSURE_TIME, MEX_CONTENT_METADATA_EXPOSURE_TIME); _insert_grl_mex_link (GRL_METADATA_KEY_ISO_SPEED, MEX_CONTENT_METADATA_ISO_SPEED); _insert_grl_mex_link (GRL_METADATA_KEY_CREATION_DATE, MEX_CONTENT_METADATA_CREATION_DATE); _insert_grl_mex_link (GRL_METADATA_KEY_ARTIST, MEX_CONTENT_METADATA_ARTIST); _insert_grl_mex_link (GRL_METADATA_KEY_ALBUM, MEX_CONTENT_METADATA_ALBUM); }
gint main (int argc, gchar *argv[]) { gchar *chosen_test_path; gchar *file_uri; GError *error = NULL; grl_init (&argc, &argv); GRL_LOG_DOMAIN_INIT (example_log_domain, "example"); if (argc != 2) { g_printf ("Usage: %s <path to browse>\n", argv[0]); return 1; } chosen_test_path = argv[1]; GFile *file = g_file_new_for_path (chosen_test_path); if (!file) { g_printf ("Invalid file/directory %s\n", argv[1]); return 1; } GFileInfo *info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_TYPE, 0, NULL, &error); if (!info) { g_printf ("Invalid file/directory information\n"); return 1; } if (g_file_info_get_file_type (info) != G_FILE_TYPE_REGULAR) { return 1; } gchar *dirname = g_path_get_dirname(chosen_test_path); config_plugins (dirname); g_free (dirname); file_uri = g_filename_to_uri (chosen_test_path, NULL, &error); g_object_unref (file); g_object_unref (info); load_plugins (file_uri); g_free (file_uri); return 0; }
GriloRegistry::GriloRegistry(QObject *parent) : QObject(parent) { grl_init(0, 0); m_registry = grl_registry_get_default(); g_signal_connect(m_registry, "source-added", G_CALLBACK(grilo_source_added), this); g_signal_connect(m_registry, "source-removed", G_CALLBACK(grilo_source_removed), this); GList *sources = grl_registry_get_sources(m_registry, FALSE); g_list_foreach(sources, connect_source, this); g_list_free(sources); }
gint main (int argc, gchar *argv[]) { GMainLoop *loop; grl_init (&argc, &argv); GRL_LOG_DOMAIN_INIT (example_log_domain, "example"); load_plugins (); /* Load Grilo plugins */ /* Run the main loop */ loop = g_main_loop_new (NULL, FALSE); g_main_loop_run (loop); grl_deinit (); return 0; }
int main(int argc, char **argv) { g_setenv ("GRL_PLUGIN_PATH", GRILO_PLUGINS_TESTS_TMDB_PLUGIN_PATH, TRUE); g_setenv ("GRL_PLUGIN_LIST", TMDB_PLUGIN_ID, TRUE); /* We must set this before calling grl_init. * See https://bugzilla.gnome.org/show_bug.cgi?id=685967#c17 */ g_setenv ("GRL_NET_MOCKED", GRILO_PLUGINS_TESTS_TMDB_DATA_PATH "empty-data.ini", TRUE); grl_init (&argc, &argv); g_test_init (&argc, &argv, NULL); #if !GLIB_CHECK_VERSION(2,32,0) g_thread_init (NULL); #endif g_test_add_func ("/tmdb/preconditions", test_preconditions); return g_test_run (); }
int main(int argc, char **argv) { g_setenv ("GRL_PLUGIN_PATH", GRILO_PLUGINS_TESTS_TMDB_PLUGIN_PATH, TRUE); g_setenv ("GRL_PLUGIN_LIST", TMDB_PLUGIN_ID, TRUE); /* We must set this before calling grl_init. * See https://bugzilla.gnome.org/show_bug.cgi?id=685967#c17 */ g_setenv ("GRL_NET_MOCKED", GRILO_PLUGINS_TESTS_TMDB_DATA_PATH "empty-data.ini", TRUE); grl_init (&argc, &argv); g_test_init (&argc, &argv, NULL); g_test_add_func ("/tmdb/missing-configuration", test_missing_configuration); gint result = g_test_run (); grl_deinit (); return result; }
void test_lua_factory_init (gint *p_argc, gchar ***p_argv, gboolean net_mocked) { g_setenv ("GRL_PLUGIN_PATH", LUA_FACTORY_PLUGIN_PATH, TRUE); g_setenv ("GRL_PLUGIN_LIST", LUA_FACTORY_ID, TRUE); g_setenv ("GRL_LUA_SOURCES_PATH", LUA_FACTORY_SOURCES_PATH, TRUE); /* For some sources it doesn't make sense to mock the network request, * mainly because is hard to track changes in the provider of data. * (e.g. if source rely on a website) */ if (net_mocked) { g_setenv ("GRL_NET_MOCKED", LUA_FACTORY_PLUGIN_TEST_DATA_PATH "config.ini", TRUE); } grl_init (p_argc, p_argv); g_test_init (p_argc, p_argv, NULL); #if !GLIB_CHECK_VERSION(2,32,0) g_thread_init (NULL); #endif }
GriloRegistry::GriloRegistry(QObject *parent) : QObject(parent), m_registry(0) { grl_init(0, 0); }
static void photos_application_startup (GApplication *application) { PhotosApplication *self = PHOTOS_APPLICATION (application); PhotosApplicationPrivate *priv = self->priv; GError *error; GSimpleAction *action; GrlRegistry *registry; GtkSettings *settings; GVariant *state; G_APPLICATION_CLASS (photos_application_parent_class) ->startup (application); gegl_init (NULL, NULL); grl_init (NULL, NULL); registry = grl_registry_get_default (); error = NULL; if (!grl_registry_load_plugin_by_id (registry, "grl-flickr", &error)) { g_warning ("Unable to load Grilo's Flickr plugin: %s", error->message); g_error_free (error); } priv->settings = g_settings_new ("org.gnome.desktop.background"); priv->resource = photos_get_resource (); g_resources_register (priv->resource); settings = gtk_settings_get_default (); g_object_set (settings, "gtk-application-prefer-dark-theme", TRUE, NULL); priv->facebook_miner = gom_miner_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION, G_DBUS_PROXY_FLAGS_NONE, "org.gnome.OnlineMiners.Facebook", "/org/gnome/OnlineMiners/Facebook", NULL, NULL); priv->flickr_miner = gom_miner_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION, G_DBUS_PROXY_FLAGS_NONE, "org.gnome.OnlineMiners.Flickr", "/org/gnome/OnlineMiners/Flickr", NULL, NULL); priv->item_mngr = photos_item_manager_dup_singleton (); /* A dummy reference to keep it alive during the lifetime of the * application. */ priv->camera_cache = photos_camera_cache_dup_singleton (); priv->mode_cntrlr = photos_mode_controller_dup_singleton (); action = g_simple_action_new ("about", NULL); g_signal_connect_swapped (action, "activate", G_CALLBACK (photos_application_about), self); g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (action)); g_object_unref (action); priv->fs_action = g_simple_action_new ("fullscreen", NULL); g_signal_connect_swapped (priv->fs_action, "activate", G_CALLBACK (photos_application_fullscreen), self); g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (priv->fs_action)); g_signal_connect_swapped (priv->mode_cntrlr, "can-fullscreen-changed", G_CALLBACK (photos_application_can_fullscreen_changed), self); state = g_variant_new ("b", FALSE); priv->gear_action = g_simple_action_new_stateful ("gear-menu", NULL, state); g_signal_connect (priv->gear_action, "activate", G_CALLBACK (photos_application_action_toggle), self); g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (priv->gear_action)); priv->open_action = g_simple_action_new ("open-current", NULL); g_signal_connect_swapped (priv->open_action, "activate", G_CALLBACK (photos_application_open_current), self); g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (priv->open_action)); priv->print_action = g_simple_action_new ("print-current", NULL); g_signal_connect_swapped (priv->print_action, "activate", G_CALLBACK (photos_application_print_current), self); g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (priv->print_action)); priv->properties_action = g_simple_action_new ("properties", NULL); g_signal_connect_swapped (priv->properties_action, "activate", G_CALLBACK (photos_application_properties), self); g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (priv->properties_action)); priv->remote_display_action = g_simple_action_new ("remote-display-current", NULL); g_signal_connect_swapped (priv->remote_display_action, "activate", G_CALLBACK (photos_application_remote_display_current), self); g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (priv->remote_display_action)); action = g_simple_action_new ("quit", NULL); g_signal_connect_swapped (action, "activate", G_CALLBACK (photos_application_quit), self); g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (action)); g_object_unref (action); state = g_variant_new ("b", FALSE); priv->search_action = g_simple_action_new_stateful ("search", NULL, state); g_signal_connect (priv->search_action, "activate", G_CALLBACK (photos_application_action_toggle), self); g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (priv->search_action)); priv->sel_all_action = g_simple_action_new ("select-all", NULL); g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (priv->sel_all_action)); priv->sel_none_action = g_simple_action_new ("select-none", NULL); g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (priv->sel_none_action)); priv->set_bg_action = g_simple_action_new ("set-background", NULL); g_signal_connect_swapped (priv->set_bg_action, "activate", G_CALLBACK (photos_application_set_bg), self); g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (priv->set_bg_action)); g_signal_connect_swapped (priv->mode_cntrlr, "window-mode-changed", G_CALLBACK (photos_application_window_mode_changed), self); photos_application_init_app_menu (self); gtk_application_add_accelerator (GTK_APPLICATION (self), "<Primary>q", "app.quit", NULL); gtk_application_add_accelerator (GTK_APPLICATION (self), "F11", "app.fullscreen", NULL); gtk_application_add_accelerator (GTK_APPLICATION (self), "F10", "app.gear-menu", NULL); gtk_application_add_accelerator (GTK_APPLICATION (self), "<Primary>p", "app.print-current", NULL); gtk_application_add_accelerator (GTK_APPLICATION (self), "<Primary>f", "app.search", NULL); gtk_application_add_accelerator (GTK_APPLICATION (self), "<Primary>a", "app.select-all", NULL); }
int main (int argc, char *argv[]) { #if !GLIB_CHECK_VERSION(2,35,0) g_type_init (); #endif grl_init (&argc, &argv); /* * Set the TMDB API key: * You must use your own TMDB API key in your own application. */ GrlRegistry *reg = grl_registry_get_default (); GrlConfig *config = grl_config_new (TMDB_PLUGIN_ID, NULL); grl_config_set_api_key (config, TMDB_KEY); grl_registry_add_config (reg, config, NULL); /* * Get the plugin: */ GError *error = NULL; gboolean plugin_loaded = grl_registry_load_plugin_by_id (reg, TMDB_PLUGIN_ID, &error); g_assert (plugin_loaded); g_assert_no_error (error); /* * Get the Grilo source: */ GrlSource *src = grl_registry_lookup_source (reg, TMDB_PLUGIN_ID); /* * Check that it has the expected capability: */ g_assert (grl_source_supported_operations (src) & GRL_OP_RESOLVE); GrlCaps *caps = grl_source_get_caps (src, GRL_OP_RESOLVE); g_assert (caps); GrlOperationOptions *options = grl_operation_options_new (caps); /* * A media item that we will give to the TMDB plugin, * to discover its details. */ GrlMedia *media = grl_media_video_new (); grl_media_set_title (media, "Sherlock Holmes"); /* * Discover what keys are provided by the source: */ const GList *keys = grl_source_supported_keys (src); const GList* l = NULL; for (l = keys; l != NULL; l = l->next) { GrlKeyID id = GPOINTER_TO_INT (l->data); g_assert (id); const gchar *name = grl_metadata_key_get_name (id); printf ("Supported key: %s\n", name); /* * Remember this for later use: * You may instead use grl_registry_lookup_metadata_key_name(). */ if (g_strcmp0 (name, "tmdb-director") == 0) { director_key = id; } } /* * Ask the TMDB plugin for the media item's details, * from the TMDB online service: */ grl_source_resolve (src, media, keys, options, resolve_cb, NULL); /* * Start the main loop so our callback can be called: */ loop = g_main_loop_new (NULL, FALSE); g_main_loop_run (loop); /* * Release objects: */ g_object_unref (media); g_object_unref (config); g_object_unref (options); /* * Deinitialize Grilo: */ grl_deinit (); }
/* Main program */ gint main (gint argc, gchar **argv) { GError *error = NULL; GOptionContext *context = NULL; gint i; context = g_option_context_new ("- run Grilo plugin as UPnP service"); g_option_context_add_main_entries (context, entries, NULL); g_option_context_add_group (context, grl_init_get_option_group ()); g_option_context_parse (context, &argc, &argv, &error); g_option_context_free (context); if (error) { g_printerr ("Invalid arguments, %s\n", error->message); g_clear_error (&error); return -1; } /* Adjust limits */ limit = CLAMP (limit, 0, G_MAXINT); if (limit == 0) { limit = G_MAXINT; } /* Initialize grilo */ grl_init (&argc, &argv); registry = grl_registry_get_default (); if (!registry) { g_printerr ("Unable to load Grilo registry\n"); return -1; } /* Register a key to store parent */ GRL_METADATA_KEY_GRILO_MS2_PARENT = grl_registry_register_metadata_key (registry, g_param_spec_string ("grilo-mediaserver2-parent", "GriloMediaServer2Parent", "Object path to parent container", NULL, G_PARAM_READWRITE), GRL_METADATA_KEY_INVALID, NULL); if (GRL_METADATA_KEY_GRILO_MS2_PARENT == GRL_METADATA_KEY_INVALID) { g_error ("Unable to register Parent key"); return 1; } /* Load configuration */ load_config (); /* Initialize <grilo-plugin, ms2-server> pairs */ servers = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); g_signal_connect (registry, "source-added", G_CALLBACK (source_added_cb), NULL); g_signal_connect (registry, "source-removed", G_CALLBACK (source_removed_cb), NULL); if (!args || !args[0]) { grl_registry_load_all_plugins (registry, TRUE, NULL); } else { for (i = 0; args[i]; i++) { grl_registry_load_plugin (registry, args[i], NULL); } } g_main_loop_run (g_main_loop_new (NULL, FALSE)); }