static void rb_iradio_source_class_init (RBIRadioSourceClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); RBDisplayPageClass *page_class = RB_DISPLAY_PAGE_CLASS (klass); RBSourceClass *source_class = RB_SOURCE_CLASS (klass); object_class->dispose = rb_iradio_source_dispose; object_class->constructed = rb_iradio_source_constructed; object_class->set_property = rb_iradio_source_set_property; object_class->get_property = rb_iradio_source_get_property; page_class->show_popup = impl_show_popup; page_class->get_status = impl_get_status; source_class->impl_can_copy = (RBSourceFeatureFunc) rb_false_function; source_class->impl_can_delete = (RBSourceFeatureFunc) rb_true_function; source_class->impl_can_pause = (RBSourceFeatureFunc) rb_false_function; source_class->impl_delete = impl_delete; source_class->impl_get_entry_view = impl_get_entry_view; source_class->impl_search = impl_search; source_class->impl_song_properties = impl_song_properties; source_class->impl_want_uri = impl_want_uri; source_class->impl_add_uri = impl_add_uri; g_object_class_override_property (object_class, PROP_SHOW_BROWSER, "show-browser"); g_type_class_add_private (klass, sizeof (RBIRadioSourcePrivate)); }
static void rb_missing_files_source_class_init (RBMissingFilesSourceClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); RBSourceClass *source_class = RB_SOURCE_CLASS (klass); object_class->dispose = rb_missing_files_source_dispose; object_class->constructed = rb_missing_files_source_constructed; object_class->set_property = rb_missing_files_source_set_property; object_class->get_property = rb_missing_files_source_get_property; source_class->impl_can_browse = (RBSourceFeatureFunc) rb_false_function; source_class->impl_get_entry_view = impl_get_entry_view; source_class->impl_can_rename = (RBSourceFeatureFunc) rb_false_function; source_class->impl_can_cut = (RBSourceFeatureFunc) rb_false_function; source_class->impl_can_delete = (RBSourceFeatureFunc) rb_true_function; source_class->impl_can_move_to_trash = (RBSourceFeatureFunc) rb_false_function; source_class->impl_can_copy = (RBSourceFeatureFunc) rb_false_function; source_class->impl_can_add_to_queue = (RBSourceFeatureFunc) rb_false_function; source_class->impl_delete = impl_delete; source_class->impl_song_properties = impl_song_properties; source_class->impl_try_playlist = (RBSourceFeatureFunc) rb_false_function; source_class->impl_can_pause = (RBSourceFeatureFunc) rb_false_function; source_class->impl_get_status = impl_get_status; g_type_class_add_private (klass, sizeof (RBMissingFilesSourcePrivate)); }
static void rb_grilo_source_class_init (RBGriloSourceClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); RBDisplayPageClass *page_class = RB_DISPLAY_PAGE_CLASS (klass); RBSourceClass *source_class = RB_SOURCE_CLASS (klass); object_class->constructed = rb_grilo_source_constructed; object_class->dispose = rb_grilo_source_dispose; object_class->finalize = rb_grilo_source_finalize; object_class->set_property = impl_set_property; object_class->get_property = impl_get_property; page_class->delete_thyself = impl_delete_thyself; page_class->selected = impl_selected; page_class->deselected = impl_deselected; source_class->impl_get_entry_view = impl_get_entry_view; g_object_class_install_property (object_class, PROP_GRILO_SOURCE, g_param_spec_object ("grilo-source", "grilo source", "grilo source object", GRL_TYPE_SOURCE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); g_type_class_add_private (klass, sizeof (RBGriloSourcePrivate)); }
static void rb_audiocd_source_class_init (RBAudioCdSourceClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); RBSourceClass *source_class = RB_SOURCE_CLASS (klass); RBBrowserSourceClass *browser_source_class = RB_BROWSER_SOURCE_CLASS (klass); object_class->constructed = rb_audiocd_source_constructed; object_class->dispose = rb_audiocd_source_dispose; object_class->finalize = rb_audiocd_source_finalize; object_class->set_property = impl_set_property; object_class->get_property = impl_get_property; /* don't bother showing the browser/search bits */ source_class->impl_can_browse = (RBSourceFeatureFunc) rb_false_function; source_class->impl_can_paste = (RBSourceFeatureFunc) rb_false_function; source_class->impl_can_cut = (RBSourceFeatureFunc) rb_false_function; source_class->impl_can_copy = (RBSourceFeatureFunc) rb_true_function; source_class->impl_show_popup = impl_show_popup; source_class->impl_delete_thyself = impl_delete_thyself; source_class->impl_get_ui_actions = impl_get_ui_actions; source_class->impl_uri_is_source = impl_uri_is_source; source_class->impl_try_playlist = (RBSourceFeatureFunc) rb_true_function; /* shouldn't need this. */ source_class->impl_want_uri = impl_want_uri; /* add the browser below the album info section */ browser_source_class->impl_pack_paned = impl_pack_paned; g_object_class_override_property (object_class, PROP_SEARCH_TYPE, "search-type"); g_type_class_add_private (klass, sizeof (RBAudioCdSourcePrivate)); }
static void rb_mtp_source_class_init (RBMtpSourceClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); RBDisplayPageClass *page_class = RB_DISPLAY_PAGE_CLASS (klass); RBSourceClass *source_class = RB_SOURCE_CLASS (klass); RBMediaPlayerSourceClass *mps_class = RB_MEDIA_PLAYER_SOURCE_CLASS (klass); object_class->constructed = rb_mtp_source_constructed; object_class->dispose = rb_mtp_source_dispose; object_class->finalize = rb_mtp_source_finalize; object_class->set_property = rb_mtp_source_set_property; object_class->get_property = rb_mtp_source_get_property; page_class->selected = impl_selected; source_class->can_delete = (RBSourceFeatureFunc) rb_true_function; source_class->can_paste = (RBSourceFeatureFunc) rb_true_function; source_class->can_move_to_trash = (RBSourceFeatureFunc) rb_false_function; source_class->can_copy = (RBSourceFeatureFunc) rb_true_function; source_class->can_cut = (RBSourceFeatureFunc) rb_false_function; source_class->delete_selected = impl_delete_selected; source_class->paste = impl_paste; source_class->uri_is_source = impl_uri_is_source; mps_class->get_entries = impl_get_entries; mps_class->get_capacity = impl_get_capacity; mps_class->get_free_space = impl_get_free_space; mps_class->delete_entries = impl_delete_entries; mps_class->show_properties = impl_show_properties; g_object_class_install_property (object_class, PROP_RAW_DEVICE, g_param_spec_pointer ("raw-device", "raw-device", "libmtp raw device", G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); #if defined(HAVE_GUDEV) g_object_class_install_property (object_class, PROP_UDEV_DEVICE, g_param_spec_object ("udev-device", "udev-device", "GUdev device object", G_UDEV_TYPE_DEVICE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); #else g_object_class_install_property (object_class, PROP_UDI, g_param_spec_string ("udi", "udi", "udi", NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); #endif g_object_class_override_property (object_class, PROP_DEVICE_SERIAL, "serial"); g_type_class_add_private (klass, sizeof (RBMtpSourcePrivate)); }
static void rb_generic_player_source_class_init (RBGenericPlayerSourceClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); RBSourceClass *source_class = RB_SOURCE_CLASS (klass); RBRemovableMediaSourceClass *rms_class = RB_REMOVABLE_MEDIA_SOURCE_CLASS (klass); object_class->set_property = impl_set_property; object_class->get_property = impl_get_property; object_class->constructor = impl_constructor; object_class->dispose = impl_dispose; object_class->finalize = impl_finalize; source_class->impl_show_popup = impl_show_popup; source_class->impl_delete_thyself = impl_delete_thyself; source_class->impl_can_delete = impl_can_delete; source_class->impl_delete = impl_delete; source_class->impl_can_move_to_trash = impl_can_move_to_trash; source_class->impl_move_to_trash = impl_move_to_trash; source_class->impl_can_paste = impl_can_paste; source_class->impl_get_status = impl_get_status; rms_class->impl_build_dest_uri = impl_build_dest_uri; rms_class->impl_get_mime_types = impl_get_mime_types; rms_class->impl_should_paste = rb_removable_media_source_should_paste_no_duplicate; klass->impl_get_mount_path = default_get_mount_path; klass->impl_load_playlists = default_load_playlists; klass->impl_uri_from_playlist_uri = default_uri_from_playlist_uri; klass->impl_uri_to_playlist_uri = default_uri_to_playlist_uri; g_object_class_install_property (object_class, PROP_ERROR_ENTRY_TYPE, g_param_spec_boxed ("error-entry-type", "Error entry type", "Entry type to use for import error entries added by this source", RHYTHMDB_TYPE_ENTRY_TYPE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); g_object_class_install_property (object_class, PROP_IGNORE_ENTRY_TYPE, g_param_spec_boxed ("ignore-entry-type", "Ignore entry type", "Entry type to use for ignore entries added by this source", RHYTHMDB_TYPE_ENTRY_TYPE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); g_object_class_install_property (object_class, PROP_DEVICE_INFO, g_param_spec_object ("device-info", "device info", "device information object", MPID_TYPE_DEVICE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); g_type_class_add_private (klass, sizeof (RBGenericPlayerSourcePrivate)); }
static void rb_mtp_source_class_init (RBMtpSourceClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); RBSourceClass *source_class = RB_SOURCE_CLASS (klass); RBRemovableMediaSourceClass *rms_class = RB_REMOVABLE_MEDIA_SOURCE_CLASS (klass); RBBrowserSourceClass *browser_source_class = RB_BROWSER_SOURCE_CLASS (klass); object_class->constructor = rb_mtp_source_constructor; object_class->dispose = rb_mtp_source_dispose; object_class->finalize = rb_mtp_source_finalize; object_class->set_property = rb_mtp_source_set_property; object_class->get_property = rb_mtp_source_get_property; source_class->impl_can_browse = (RBSourceFeatureFunc) rb_true_function; source_class->impl_get_browser_key = impl_get_browser_key; source_class->impl_can_rename = (RBSourceFeatureFunc) rb_true_function; source_class->impl_can_delete = (RBSourceFeatureFunc) rb_true_function; source_class->impl_can_paste = (RBSourceFeatureFunc) rb_true_function; source_class->impl_can_move_to_trash = (RBSourceFeatureFunc) rb_false_function; source_class->impl_can_copy = (RBSourceFeatureFunc) rb_true_function; source_class->impl_can_cut = (RBSourceFeatureFunc) rb_false_function; source_class->impl_show_popup = impl_show_popup; source_class->impl_get_ui_actions = impl_get_ui_actions; source_class->impl_delete = impl_delete; source_class->impl_copy = impl_copy; browser_source_class->impl_get_paned_key = impl_get_paned_key; rms_class->impl_track_added = impl_track_added; rms_class->impl_build_dest_uri = impl_build_dest_uri; rms_class->impl_get_mime_types = impl_get_mime_types; rms_class->impl_should_paste = rb_removable_media_source_should_paste_no_duplicate; g_object_class_install_property (object_class, PROP_LIBMTP_DEVICE, g_param_spec_pointer ("libmtp-device", "libmtp-device", "libmtp device", G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); g_object_class_install_property (object_class, PROP_UDI, g_param_spec_string ("udi", "udi", "udi", NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); g_type_class_add_private (klass, sizeof (RBMtpSourcePrivate)); }
static void rb_podcast_main_source_class_init (RBPodcastMainSourceClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); RBSourceClass *source_class = RB_SOURCE_CLASS (klass); object_class->dispose = impl_dispose; object_class->constructed = impl_constructed; source_class->impl_get_config_widget = impl_get_config_widget; source_class->impl_want_uri = impl_want_uri; source_class->impl_add_uri = impl_add_uri; g_type_class_add_private (klass, sizeof (RBPodcastMainSourcePrivate)); }
static void rb_generic_player_playlist_source_class_init (RBGenericPlayerPlaylistSourceClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); RBSourceClass *source_class = RB_SOURCE_CLASS (klass); RBPlaylistSourceClass *playlist_class = RB_PLAYLIST_SOURCE_CLASS (klass); RBDisplayPageClass *page_class = RB_DISPLAY_PAGE_CLASS (klass); object_class->dispose = impl_dispose; object_class->finalize = impl_finalize; object_class->get_property = impl_get_property; object_class->set_property = impl_set_property; page_class->can_remove = impl_can_remove; page_class->remove = impl_remove; source_class->can_move_to_trash = (RBSourceFeatureFunc) rb_false_function; playlist_class->save_contents_to_xml = impl_save_to_xml; playlist_class->mark_dirty = impl_mark_dirty; g_object_class_install_property (object_class, PROP_PLAYER_SOURCE, g_param_spec_object ("player-source", "player-source", "player source", RB_TYPE_GENERIC_PLAYER_SOURCE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); g_object_class_install_property (object_class, PROP_PLAYLIST_PATH, g_param_spec_string ("playlist-path", "playlist-path", "path to playlist file", NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); g_object_class_install_property (object_class, PROP_DEVICE_ROOT, g_param_spec_string ("device-root", "device-root", "path to root of the device", NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); g_type_class_add_private (klass, sizeof (RBGenericPlayerPlaylistSourcePrivate)); }
static void rb_import_errors_source_class_init (RBImportErrorsSourceClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); RBSourceClass *source_class = RB_SOURCE_CLASS (klass); object_class->dispose = rb_import_errors_source_dispose; object_class->constructed = rb_import_errors_source_constructed; object_class->get_property = impl_get_property; object_class->set_property = impl_set_property; source_class->impl_can_browse = (RBSourceFeatureFunc) rb_false_function; source_class->impl_get_entry_view = impl_get_entry_view; source_class->impl_can_rename = (RBSourceFeatureFunc) rb_false_function; source_class->impl_can_cut = (RBSourceFeatureFunc) rb_false_function; source_class->impl_can_delete = (RBSourceFeatureFunc) rb_true_function; source_class->impl_can_move_to_trash = (RBSourceFeatureFunc) rb_true_function; source_class->impl_can_copy = (RBSourceFeatureFunc) rb_false_function; source_class->impl_can_add_to_queue = (RBSourceFeatureFunc) rb_false_function; source_class->impl_delete = impl_delete; source_class->impl_try_playlist = (RBSourceFeatureFunc) rb_false_function; source_class->impl_can_pause = (RBSourceFeatureFunc) rb_false_function; source_class->impl_get_status = impl_get_status; g_object_class_install_property (object_class, PROP_NORMAL_ENTRY_TYPE, g_param_spec_object ("normal-entry-type", "Normal entry type", "Entry type for successfully imported entries of this type", RHYTHMDB_TYPE_ENTRY_TYPE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); g_object_class_install_property (object_class, PROP_IGNORE_ENTRY_TYPE, g_param_spec_object ("ignore-entry-type", "Ignore entry type", "Entry type for entries of this type to be ignored", RHYTHMDB_TYPE_ENTRY_TYPE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); g_type_class_add_private (klass, sizeof (RBImportErrorsSourcePrivate)); }
static void impl_get_status (RBSource *source, char **text, char **progress_text, float *progress) { RBGenericPlayerSourcePrivate *priv = GENERIC_PLAYER_SOURCE_GET_PRIVATE (source); /* get default status text first */ RB_SOURCE_CLASS (rb_generic_player_source_parent_class)->impl_get_status (source, text, progress_text, progress); /* override with bits of import status */ if (priv->import_job != NULL) { int total; int imported; total = rhythmdb_import_job_get_total (priv->import_job); imported = rhythmdb_import_job_get_imported (priv->import_job); g_free (*progress_text); *progress_text = g_strdup_printf (_("Importing (%d/%d)"), imported, total); *progress = ((float)imported / (float)total); } }
static void rb_static_playlist_source_class_init (RBStaticPlaylistSourceClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); RBDisplayPageClass *page_class = RB_DISPLAY_PAGE_CLASS (klass); RBSourceClass *source_class = RB_SOURCE_CLASS (klass); RBPlaylistSourceClass *playlist_class = RB_PLAYLIST_SOURCE_CLASS (klass); object_class->constructed = rb_static_playlist_source_constructed; object_class->dispose = rb_static_playlist_source_dispose; object_class->finalize = rb_static_playlist_source_finalize; object_class->set_property = rb_static_playlist_source_set_property; object_class->get_property = rb_static_playlist_source_get_property; page_class->receive_drag = impl_receive_drag; source_class->impl_can_cut = (RBSourceFeatureFunc) rb_true_function; source_class->impl_can_paste = (RBSourceFeatureFunc) rb_true_function; source_class->impl_can_delete = (RBSourceFeatureFunc) rb_true_function; source_class->impl_cut = impl_cut; source_class->impl_paste = impl_paste; source_class->impl_delete = impl_delete; source_class->impl_search = impl_search; source_class->impl_reset_filters = impl_reset_filters; source_class->impl_can_browse = (RBSourceFeatureFunc) rb_true_function; source_class->impl_get_property_views = impl_get_property_views; source_class->impl_get_search_actions = impl_get_search_actions; source_class->impl_want_uri = impl_want_uri; playlist_class->impl_save_contents_to_xml = impl_save_contents_to_xml; g_object_class_override_property (object_class, PROP_BASE_QUERY_MODEL, "base-query-model"); g_object_class_override_property (object_class, PROP_SHOW_BROWSER, "show-browser"); g_type_class_add_private (klass, sizeof (RBStaticPlaylistSourcePrivate)); }
static void impl_delete_thyself (RBSource *source) { GList *pl; GList *p; RBGenericPlayerSourcePrivate *priv = GENERIC_PLAYER_SOURCE_GET_PRIVATE (source); /* take a copy of the list first, as playlist_deleted_cb modifies priv->playlists */ pl = g_list_copy (priv->playlists); for (p = pl; p != NULL; p = p->next) { RBSource *playlist = RB_SOURCE (p->data); rb_source_delete_thyself (playlist); } g_list_free (priv->playlists); g_list_free (pl); priv->playlists = NULL; if (priv->import_errors != NULL) { rb_source_delete_thyself (priv->import_errors); priv->import_errors = NULL; } RB_SOURCE_CLASS (rb_generic_player_source_parent_class)->impl_delete_thyself (source); }
static void rb_media_player_source_class_init (RBMediaPlayerSourceClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); RBDisplayPageClass *page_class = RB_DISPLAY_PAGE_CLASS (klass); RBSourceClass *source_class = RB_SOURCE_CLASS (klass); RBBrowserSourceClass *browser_source_class = RB_BROWSER_SOURCE_CLASS (klass); object_class->dispose = rb_media_player_source_dispose; object_class->set_property = rb_media_player_source_set_property; object_class->get_property = rb_media_player_source_get_property; object_class->constructed = rb_media_player_source_constructed; page_class->receive_drag = impl_receive_drag; page_class->delete_thyself = impl_delete_thyself; source_class->can_cut = (RBSourceFeatureFunc) rb_false_function; source_class->can_copy = (RBSourceFeatureFunc) rb_true_function; source_class->can_paste = (RBSourceFeatureFunc) rb_false_function; source_class->can_delete = (RBSourceFeatureFunc) rb_false_function; source_class->get_delete_label = impl_get_delete_label; source_class->delete_selected = NULL; browser_source_class->has_drop_support = (RBBrowserSourceFeatureFunc) rb_false_function; klass->get_entries = NULL; klass->get_capacity = NULL; klass->get_free_space = NULL; klass->add_playlist = NULL; klass->remove_playlists = NULL; klass->show_properties = NULL; g_object_class_install_property (object_class, PROP_DEVICE_SERIAL, g_param_spec_string ("serial", "serial", "device serial number", NULL, G_PARAM_READABLE)); /** * RBMediaPlayerSource:encoding-target: * * The #GstEncodingTarget for this device */ g_object_class_install_property (object_class, PROP_ENCODING_TARGET, g_param_spec_object ("encoding-target", "encoding target", "GstEncodingTarget", GST_TYPE_ENCODING_TARGET, G_PARAM_READWRITE)); /** * RBMediaPlayerSource:encoding-settings * * The #GSettings instance holding encoding settings for this device */ g_object_class_install_property (object_class, PROP_ENCODING_SETTINGS, g_param_spec_object ("encoding-settings", "encoding settings", "GSettings holding encoding settings", G_TYPE_SETTINGS, G_PARAM_READWRITE)); g_type_class_add_private (klass, sizeof (RBMediaPlayerSourcePrivate)); }
static void rb_mtp_source_class_init (RBMtpSourceClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); RBSourceClass *source_class = RB_SOURCE_CLASS (klass); RBRemovableMediaSourceClass *rms_class = RB_REMOVABLE_MEDIA_SOURCE_CLASS (klass); RBBrowserSourceClass *browser_source_class = RB_BROWSER_SOURCE_CLASS (klass); RBMediaPlayerSourceClass *mps_class = RB_MEDIA_PLAYER_SOURCE_CLASS (klass); object_class->constructed = rb_mtp_source_constructed; object_class->dispose = rb_mtp_source_dispose; object_class->finalize = rb_mtp_source_finalize; object_class->set_property = rb_mtp_source_set_property; object_class->get_property = rb_mtp_source_get_property; source_class->impl_can_browse = (RBSourceFeatureFunc) rb_true_function; source_class->impl_get_browser_key = impl_get_browser_key; source_class->impl_can_rename = (RBSourceFeatureFunc) rb_true_function; source_class->impl_can_delete = (RBSourceFeatureFunc) rb_true_function; source_class->impl_can_paste = (RBSourceFeatureFunc) rb_true_function; source_class->impl_can_move_to_trash = (RBSourceFeatureFunc) rb_false_function; source_class->impl_can_copy = (RBSourceFeatureFunc) rb_true_function; source_class->impl_can_cut = (RBSourceFeatureFunc) rb_false_function; source_class->impl_show_popup = impl_show_popup; source_class->impl_get_ui_actions = impl_get_ui_actions; source_class->impl_delete = impl_delete; browser_source_class->impl_get_paned_key = impl_get_paned_key; rms_class->impl_track_added = impl_track_added; rms_class->impl_track_add_error = impl_track_add_error; rms_class->impl_build_dest_uri = impl_build_dest_uri; rms_class->impl_get_mime_types = impl_get_mime_types; rms_class->impl_should_paste = rb_removable_media_source_should_paste_no_duplicate; rms_class->impl_can_eject = impl_can_eject; rms_class->impl_eject = impl_eject; mps_class->impl_get_entries = impl_get_entries; mps_class->impl_get_capacity = impl_get_capacity; mps_class->impl_get_free_space = impl_get_free_space; mps_class->impl_delete_entries = impl_delete_entries; mps_class->impl_show_properties = impl_show_properties; g_object_class_install_property (object_class, PROP_RAW_DEVICE, g_param_spec_pointer ("raw-device", "raw-device", "libmtp raw device", G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); #if defined(HAVE_GUDEV) g_object_class_install_property (object_class, PROP_UDEV_DEVICE, g_param_spec_object ("udev-device", "udev-device", "GUdev device object", G_UDEV_TYPE_DEVICE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); #else g_object_class_install_property (object_class, PROP_UDI, g_param_spec_string ("udi", "udi", "udi", NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); #endif g_object_class_override_property (object_class, PROP_DEVICE_SERIAL, "serial"); g_type_class_add_private (klass, sizeof (RBMtpSourcePrivate)); }
static void rb_generic_player_source_class_init (RBGenericPlayerSourceClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); RBDisplayPageClass *page_class = RB_DISPLAY_PAGE_CLASS (klass); RBSourceClass *source_class = RB_SOURCE_CLASS (klass); RBMediaPlayerSourceClass *mps_class = RB_MEDIA_PLAYER_SOURCE_CLASS (klass); object_class->set_property = impl_set_property; object_class->get_property = impl_get_property; object_class->constructed = impl_constructed; object_class->dispose = impl_dispose; page_class->show_popup = impl_show_popup; page_class->delete_thyself = impl_delete_thyself; page_class->get_status = impl_get_status; page_class->selected = impl_selected; source_class->impl_can_delete = impl_can_delete; source_class->impl_delete = impl_delete; source_class->impl_can_move_to_trash = (RBSourceFeatureFunc) rb_false_function; source_class->impl_can_paste = impl_can_paste; source_class->impl_paste = impl_paste; mps_class->impl_get_entries = impl_get_entries; mps_class->impl_get_capacity = impl_get_capacity; mps_class->impl_get_free_space = impl_get_free_space; mps_class->impl_delete_entries = impl_delete_entries; mps_class->impl_show_properties = impl_show_properties; mps_class->impl_add_playlist = impl_add_playlist; mps_class->impl_remove_playlists = impl_remove_playlists; klass->impl_get_mount_path = default_get_mount_path; klass->impl_load_playlists = default_load_playlists; klass->impl_uri_from_playlist_uri = default_uri_from_playlist_uri; klass->impl_uri_to_playlist_uri = default_uri_to_playlist_uri; g_object_class_install_property (object_class, PROP_ERROR_ENTRY_TYPE, g_param_spec_object ("error-entry-type", "Error entry type", "Entry type to use for import error entries added by this source", RHYTHMDB_TYPE_ENTRY_TYPE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); g_object_class_install_property (object_class, PROP_IGNORE_ENTRY_TYPE, g_param_spec_object ("ignore-entry-type", "Ignore entry type", "Entry type to use for ignore entries added by this source", RHYTHMDB_TYPE_ENTRY_TYPE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); g_object_class_install_property (object_class, PROP_DEVICE_INFO, g_param_spec_object ("device-info", "device info", "device information object", MPID_TYPE_DEVICE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); g_object_class_install_property (object_class, PROP_MOUNT, g_param_spec_object ("mount", "mount", "GMount object", G_TYPE_MOUNT, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); g_type_class_add_private (klass, sizeof (RBGenericPlayerSourcePrivate)); }
static void rb_android_source_class_init (RBAndroidSourceClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); RBDisplayPageClass *page_class = RB_DISPLAY_PAGE_CLASS (klass); RBSourceClass *source_class = RB_SOURCE_CLASS (klass); RBMediaPlayerSourceClass *mps_class = RB_MEDIA_PLAYER_SOURCE_CLASS (klass); object_class->set_property = impl_set_property; object_class->get_property = impl_get_property; object_class->constructed = impl_constructed; object_class->dispose = impl_dispose; object_class->finalize = impl_finalize; page_class->delete_thyself = impl_delete_thyself; page_class->selected = impl_selected; source_class->can_delete = impl_can_delete; source_class->delete_selected = impl_delete_selected; source_class->can_move_to_trash = (RBSourceFeatureFunc) rb_false_function; source_class->can_paste = impl_can_paste; source_class->paste = impl_paste; source_class->want_uri = rb_device_source_want_uri; source_class->uri_is_source = rb_device_source_uri_is_source; mps_class->get_entries = impl_get_entries; mps_class->get_capacity = impl_get_capacity; mps_class->get_free_space = impl_get_free_space; mps_class->delete_entries = impl_delete_entries; mps_class->show_properties = impl_show_properties; g_object_class_install_property (object_class, PROP_ERROR_ENTRY_TYPE, g_param_spec_object ("error-entry-type", "Error entry type", "Entry type to use for import error entries added by this source", RHYTHMDB_TYPE_ENTRY_TYPE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); g_object_class_install_property (object_class, PROP_IGNORE_ENTRY_TYPE, g_param_spec_object ("ignore-entry-type", "Ignore entry type", "Entry type to use for ignore entries added by this source", RHYTHMDB_TYPE_ENTRY_TYPE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); g_object_class_install_property (object_class, PROP_DEVICE_INFO, g_param_spec_object ("device-info", "device info", "device information object", MPID_TYPE_DEVICE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); g_object_class_install_property (object_class, PROP_MOUNT, g_param_spec_object ("mount", "mount", "GMount object", G_TYPE_MOUNT, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); g_object_class_install_property (object_class, PROP_GUDEV_DEVICE, g_param_spec_object ("gudev-device", "gudev-device", "GUdev device object", G_UDEV_TYPE_DEVICE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); g_object_class_override_property (object_class, PROP_DEVICE_SERIAL, "serial"); g_type_class_add_private (klass, sizeof (RBAndroidSourcePrivate)); }
static void rb_playlist_source_class_init (RBPlaylistSourceClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); RBSourceClass *source_class = RB_SOURCE_CLASS (klass); RBDisplayPageClass *page_class = RB_DISPLAY_PAGE_CLASS (klass); object_class->dispose = rb_playlist_source_dispose; object_class->finalize = rb_playlist_source_finalize; object_class->constructed = rb_playlist_source_constructed; object_class->set_property = rb_playlist_source_set_property; object_class->get_property = rb_playlist_source_get_property; source_class->impl_get_entry_view = impl_get_entry_view; source_class->impl_can_rename = (RBSourceFeatureFunc) rb_true_function; source_class->impl_can_cut = (RBSourceFeatureFunc) rb_false_function; source_class->impl_can_copy = (RBSourceFeatureFunc) rb_true_function; source_class->impl_can_delete = (RBSourceFeatureFunc) rb_false_function; source_class->impl_can_add_to_queue = (RBSourceFeatureFunc) rb_true_function; source_class->impl_can_move_to_trash = (RBSourceFeatureFunc) rb_true_function; source_class->impl_song_properties = impl_song_properties; source_class->impl_get_delete_label = impl_get_delete_label; page_class->can_remove = impl_can_remove; page_class->remove = impl_remove; klass->impl_show_entry_view_popup = default_show_entry_view_popup; klass->impl_mark_dirty = default_mark_dirty; /** * RBPlaylistSource:db: * * The #RhythmDB instance */ g_object_class_install_property (object_class, PROP_DB, g_param_spec_object ("db", "db", "rhythmdb instance", RHYTHMDB_TYPE, G_PARAM_READABLE)); /** * RBPlaylistSource:dirty: * * Whether the playlist has been changed since it was last saved * to disk. */ g_object_class_install_property (object_class, PROP_DIRTY, g_param_spec_boolean ("dirty", "dirty", "whether this playlist should be saved", FALSE, G_PARAM_READABLE)); /** * RBPlaylistSource:is-local: * * Whether the playlist is attached to the local library. * Remote DAAP playlists, for example, are not local. */ g_object_class_install_property (object_class, PROP_LOCAL, g_param_spec_boolean ("is-local", "is-local", "whether this playlist is attached to the local library", TRUE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); g_type_class_add_private (klass, sizeof (RBPlaylistSourcePrivate)); }