RBSource * rb_iradio_source_new (RBShell *shell, GObject *plugin) { RBSource *source; RhythmDBEntryType *entry_type; RhythmDB *db; GSettings *settings; g_object_get (shell, "db", &db, NULL); entry_type = rhythmdb_entry_type_get_by_name (db, "iradio"); if (entry_type == NULL) { entry_type = g_object_new (RHYTHMDB_TYPE_ENTRY_TYPE, "db", db, "name", "iradio", "save-to-disk", TRUE, "category", RHYTHMDB_ENTRY_STREAM, NULL); rhythmdb_register_entry_type (db, entry_type); } g_object_unref (db); settings = g_settings_new ("org.gnome.rhythmbox.plugins.iradio"); source = RB_SOURCE (g_object_new (RB_TYPE_IRADIO_SOURCE, "name", _("Radio"), "shell", shell, "entry-type", entry_type, "plugin", plugin, "settings", g_settings_get_child (settings, "source"), "toolbar-path", "/IRadioSourceToolBar", NULL)); g_object_unref (settings); rb_shell_register_entry_type_for_source (shell, source, entry_type); return source; }
int main (int argc, char **argv) { RhythmDB *db; char *name; int i; if (argc < 2) { name = g_build_filename (rb_user_data_dir(), "rhythmdb.xml", NULL); g_print ("using %s\n", name); } else { name = g_strdup (argv[1]); } rb_profile_start ("load test"); g_thread_init (NULL); rb_threads_init (); gtk_set_locale (); gtk_init (&argc, &argv); rb_debug_init (FALSE); rb_refstring_system_init (); rb_file_helpers_init (TRUE); GDK_THREADS_ENTER (); db = rhythmdb_tree_new ("test"); g_object_set (G_OBJECT (db), "name", name, NULL); g_free (name); for (i = 1; i <= 10; i++) { int j; rb_profile_start ("10 rhythmdb loads"); for (j = 1; j <= 10; j++) { set_waiting_signal (G_OBJECT (db), "load-complete"); rhythmdb_load (db); wait_for_signal (); rhythmdb_entry_delete_by_type (db, RHYTHMDB_ENTRY_TYPE_SONG); rhythmdb_entry_delete_by_type (db, rhythmdb_entry_type_get_by_name (db, "iradio")); rhythmdb_entry_delete_by_type (db, RHYTHMDB_ENTRY_TYPE_PODCAST_FEED); rhythmdb_entry_delete_by_type (db, RHYTHMDB_ENTRY_TYPE_PODCAST_POST); } rb_profile_end ("10 rhythmdb loads"); g_print ("completed %d loads\n", i * 10); } rhythmdb_shutdown (db); g_object_unref (G_OBJECT (db)); db = NULL; rb_file_helpers_shutdown (); rb_refstring_system_shutdown (); rb_profile_end ("load test"); return 0; }