[rhythmbox] add gtk-doc for refstring, removable media, static playlist, streaming



commit 41e3c46dc6f36612290e7c0337020455bd5b4e18
Author: Jonathan Matthew <jonathan d14n org>
Date:   Sun Mar 21 11:34:08 2010 +1000

    add gtk-doc for refstring, removable media, static playlist, streaming

 doc/reference/rhythmbox-sections.txt     |   24 +++----
 lib/rb-async-queue-watch.c               |    3 +
 lib/rb-text-helpers.c                    |    3 +
 rhythmdb/rb-refstring.c                  |   97 +++++++++++++++++++++++++
 rhythmdb/rhythmdb-query.c                |  100 ++++++++++++++++++++++++++-
 rhythmdb/rhythmdb.h                      |    4 +-
 shell/rb-history.c                       |   30 ++++++--
 sources/rb-removable-media-source.c      |  114 ++++++++++++++++++++++++++++++
 sources/rb-removable-media-source.h      |    2 +-
 sources/rb-static-playlist-source.c      |   94 ++++++++++++++++++++++++-
 sources/rb-static-playlist-source.h      |   11 ++-
 sources/rb-streaming-source.c            |   48 +++++++++++--
 sources/rb-streaming-source.h            |   15 ++--
 tests/test-rhythmdb-tree-serialization.c |    6 +-
 widgets/rb-dialog.c                      |    3 +
 15 files changed, 507 insertions(+), 47 deletions(-)
---
diff --git a/doc/reference/rhythmbox-sections.txt b/doc/reference/rhythmbox-sections.txt
index a933e67..90ade41 100644
--- a/doc/reference/rhythmbox-sections.txt
+++ b/doc/reference/rhythmbox-sections.txt
@@ -446,7 +446,11 @@ RBRemovableMediaSource
 RBRemovableMediaSourceClass
 rb_removable_media_source_build_dest_uri
 rb_removable_media_source_track_added
+rb_removable_media_source_track_add_error
 rb_removable_media_source_get_mime_types
+rb_removable_media_source_get_format_descriptions
+rb_removable_media_source_should_paste
+rb_removable_media_source_should_paste_no_duplicate
 <SUBSECTION Standard>
 RB_REMOVABLE_MEDIA_SOURCE
 RB_IS_REMOVABLE_MEDIA_SOURCE
@@ -1100,18 +1104,6 @@ rb_refstring_get_type
 </SECTION>
 
 <SECTION>
-<FILE>rb-query-creator-private</FILE>
-CriteriaCreateWidget
-CriteriaSetWidgetData
-CriteriaGetWidgetData
-num_property_options
-num_sort_options
-DEFAULT_SORTING_COLUMN
-DEFAULT_SORTING_ORDER
-get_box_widget_at_pos
-</SECTION>
-
-<SECTION>
 <FILE>rb-dialog</FILE>
 rb_error_dialog
 rb_file_chooser_new
@@ -1338,7 +1330,9 @@ RB_IMPORT_ERRORS_SOURCE_GET_CLASS
 
 <SECTION>
 <FILE>rb-streaming-source</FILE>
-RBStreamingSourcePrivate
+<TITLE>RBStreamingSource</TITLE>
+RBStreamingSource
+RBStreamingSourceClass
 rb_streaming_source_get_progress
 rb_streaming_source_set_streaming_title
 rb_streaming_source_set_streaming_artist
@@ -1351,6 +1345,7 @@ rb_streaming_source_get_type
 RB_STREAMING_SOURCE_CLASS
 RB_IS_STREAMING_SOURCE_CLASS
 RB_STREAMING_SOURCE_GET_CLASS
+RBStreamingSourcePrivate
 </SECTION>
 
 <SECTION>
@@ -1374,6 +1369,9 @@ RB_AUTO_PLAYLIST_SOURCE_GET_CLASS
 
 <SECTION>
 <FILE>rb-static-playlist-source</FILE>
+<TITLE>RBStaticPlaylistSource</TITLE>
+RBStaticPlaylistSource
+RBStaticPlaylistSourceClass
 rb_static_playlist_source_new
 rb_static_playlist_source_new_from_xml
 rb_static_playlist_source_load_from_xml
diff --git a/lib/rb-async-queue-watch.c b/lib/rb-async-queue-watch.c
index ce6b33c..02eda10 100644
--- a/lib/rb-async-queue-watch.c
+++ b/lib/rb-async-queue-watch.c
@@ -33,6 +33,9 @@
 /**
  * SECTION:rb-async-queue-watch
  * @short_description: GSource for watching a GAsyncQueue in the main loop
+ *
+ * This provides a way to feed work items to the main loop using a #GAsyncQueue
+ * without polling it.
  */
 
 /**
diff --git a/lib/rb-text-helpers.c b/lib/rb-text-helpers.c
index b397bda..40d3846 100644
--- a/lib/rb-text-helpers.c
+++ b/lib/rb-text-helpers.c
@@ -33,6 +33,9 @@
 /**
  * SECTION:rb-text-helpers
  * @short_description: text direction (LTR/RTL) functions
+ *
+ * Provides some helper functions for constructing strings that
+ * may include both left-to-right and right-to-left text.
  */
 
 /* unicode direction markup characters
diff --git a/rhythmdb/rb-refstring.c b/rhythmdb/rb-refstring.c
index a2a42a6..6e18ed2 100644
--- a/rhythmdb/rb-refstring.c
+++ b/rhythmdb/rb-refstring.c
@@ -55,6 +55,11 @@ rb_refstring_free (RBRefString *refstr)
 	g_free (refstr);
 }
 
+/**
+ * rb_refstring_system_init:
+ *
+ * Sets up the refstring system.  Called on startup.
+ */
 void
 rb_refstring_system_init ()
 {
@@ -64,6 +69,16 @@ rb_refstring_system_init ()
 					       NULL, (GDestroyNotify) rb_refstring_free);
 }
 
+/**
+ * rb_refstring_new:
+ * @init: string to intern
+ *
+ * Returns an #RBRefString for the specified string.
+ * If one already exists, its reference count is incremented and it is
+ * returned.  Otherwise, a new #RBRefString is created and returned.
+ *
+ * Return value: #RBRefString for @init
+ */
 RBRefString *
 rb_refstring_new (const char *init)
 {
@@ -90,6 +105,16 @@ rb_refstring_new (const char *init)
 	return ret;
 }
 
+/**
+ * rb_refstring_find:
+ * @init: string to find
+ *
+ * Returns an existing #RBRefString for @init if one exists,
+ * otherwise returns NULL.  If an existing refstring is found,
+ * its reference count is increased.
+ *
+ * Return value: existing #RBRefString, or NULL
+ */
 RBRefString *
 rb_refstring_find (const char *init)
 {
@@ -105,6 +130,13 @@ rb_refstring_find (const char *init)
 	return ret;
 }
 
+/**
+ * rb_refstring_unref:
+ * @val: #RBRefString to unref
+ *
+ * Drops a reference to an #RBRefString.  If this is the last
+ * reference, the string will be freed.
+ */
 void
 rb_refstring_unref (RBRefString *val)
 {
@@ -123,6 +155,12 @@ rb_refstring_unref (RBRefString *val)
 	}
 }
 
+/**
+ * rb_refstring_system_shutdown:
+ *
+ * Frees all data associated with the refstring system.
+ * Only called on shutdown.
+ */
 void
 rb_refstring_system_shutdown (void)
 {
@@ -130,6 +168,15 @@ rb_refstring_system_shutdown (void)
 	g_mutex_free (rb_refstrings_mutex);
 }
 
+/**
+ * rb_refstring_ref:
+ * @val: a #RBRefString to reference
+ *
+ * Increases the reference count for an existing #RBRefString.
+ * The refstring is returned for convenience.
+ *
+ * Return value: the same refstring
+ */
 RBRefString *
 rb_refstring_ref (RBRefString *val)
 {
@@ -142,6 +189,14 @@ rb_refstring_ref (RBRefString *val)
 	return val;
 }
 
+/**
+ * rb_refstring_get:
+ * @val: an #RBRefString
+ *
+ * Returns the actual string for a #RBRefString.
+ *
+ * Return value: underlying string, must not be freed
+ */
 const char *
 rb_refstring_get (const RBRefString *val)
 {
@@ -155,6 +210,17 @@ rb_refstring_get (const RBRefString *val)
  * get called often.
  */
 
+/**
+ * rb_refstring_get_folded:
+ * @val: an #RBRefString
+ *
+ * Returns the case-folded version of the string underlying @val.
+ * The case-folded string is cached inside the #RBRefString for
+ * speed.  See @rb_search_fold for information on case-folding
+ * strings.
+ *
+ * Return value: case-folded string, must not be freed
+ */
 const char *
 rb_refstring_get_folded (RBRefString *val)
 {
@@ -182,6 +248,18 @@ rb_refstring_get_folded (RBRefString *val)
 	return string;
 }
 
+/**
+ * rb_refstring_get_sort_key:
+ * @val: an #RBRefString
+ *
+ * Returns the sort key version of the string underlying @val.
+ * The sort key string is cached inside the #RBRefString for speed.
+ * Sort key strings are not generally human readable, so don't display
+ * them anywhere.  See @g_utf8_collate_key_for_filename for information
+ * on sort keys.
+ *
+ * Return value: sort key string, must not be freed.
+ */
 const char *
 rb_refstring_get_sort_key (RBRefString *val)
 {
@@ -213,6 +291,14 @@ rb_refstring_get_sort_key (RBRefString *val)
 	return string;
 }
 
+/**
+ * rb_refstring_hash:
+ * @p: an #RBRefString
+ *
+ * Hash function suitable for use with @GHashTable.
+ *
+ * Return value: hash value for the string underlying @p
+ */
 guint
 rb_refstring_hash (gconstpointer p)
 {
@@ -220,6 +306,17 @@ rb_refstring_hash (gconstpointer p)
 	return g_str_hash (rb_refstring_get (ref));
 }
 
+/**
+ * rb_refstring_equal:
+ * @ap: an #RBRefString
+ * @bp: another #RBRefstring
+ *
+ * Key equality function suitable for use with #GHashTable.
+ * Equality checks for #RBRefString are just pointer comparisons,
+ * since there can only be one refstring for a given string.
+ *
+ * Return value: %TRUE if the strings are the same
+ */
 gboolean
 rb_refstring_equal (gconstpointer ap, gconstpointer bp)
 {
diff --git a/rhythmdb/rhythmdb-query.c b/rhythmdb/rhythmdb-query.c
index ea990fb..dfd5098 100644
--- a/rhythmdb/rhythmdb-query.c
+++ b/rhythmdb/rhythmdb-query.c
@@ -54,6 +54,7 @@
 #define RB_PARSE_YEAR_EQUALS RB_PARSE_EQUALS
 #define RB_PARSE_YEAR_GREATER RB_PARSE_GREATER
 #define RB_PARSE_YEAR_LESS RB_PARSE_LESS
+
 /**
  * rhythmdb_query_copy:
  * @array: the query to copy.
@@ -76,6 +77,13 @@ rhythmdb_query_copy (GPtrArray *array)
 	return ret;
 }
 
+/**
+ * rhythmdb_query_concatenate:
+ * @query1: query to append to
+ * @query2: query to append
+ *
+ * Appends @query2 to @query1.
+ */
 void
 rhythmdb_query_concatenate (GPtrArray *query1, GPtrArray *query2)
 {
@@ -101,6 +109,16 @@ rhythmdb_query_concatenate (GPtrArray *query1, GPtrArray *query2)
 	}
 }
 
+/**
+ * rhythmdb_query_parse_valist:
+ * @db: the #RhythmDB
+ * @args: the arguments to parse
+ *
+ * Converts a va_list into a parsed query in the form of a @GPtrArray.
+ * See @rhythmdb_query_parse for more information on the parsing process.
+ *
+ * Return value: converted query
+ */
 GPtrArray *
 rhythmdb_query_parse_valist (RhythmDB *db, va_list args)
 {
@@ -230,6 +248,16 @@ rhythmdb_query_append (RhythmDB *db, GPtrArray *query, ...)
 	va_end (args);
 }
 
+/**
+ * rhythmdb_query_append_params:
+ * @db: the #RhythmDB
+ * @query: the query to append to
+ * @type: query type
+ * @prop: query property
+ * @value: query value
+ *
+ * Appends a new query term to @query.
+ */
 void
 rhythmdb_query_append_params (RhythmDB *db, GPtrArray *query,
 			      RhythmDBQueryType type, RhythmDBPropType prop, const GValue *value)
@@ -273,7 +301,7 @@ rhythmdb_query_append_params (RhythmDB *db, GPtrArray *query,
  * @query: a query.
  *
  * Frees the query @query
- **/
+ */
 void
 rhythmdb_query_free (GPtrArray *query)
 {
@@ -373,6 +401,19 @@ write_encoded_gvalue (RhythmDB *db,
 	g_free (quoted);
 }
 
+/**
+ * rhythmdb_read_encoded_property:
+ * @db: the #RhythmDB
+ * @content: encoded property value
+ * @propid: property ID
+ * @val: returns the property value
+ *
+ * Converts a string containing a property value into a #GValue
+ * containing the native form of the property value.  For boolean
+ * and numeric properties, this converts the string to a number.
+ * For #RHYTHMDB_PROP_TYPE, this looks up the entry type by name.
+ * For strings, no conversion is required.
+ */
 void
 rhythmdb_read_encoded_property (RhythmDB *db,
 				const char *content,
@@ -433,6 +474,15 @@ rhythmdb_read_encoded_property (RhythmDB *db,
 	}
 }
 
+/**
+ * rhythmdb_query_serialize:
+ * @db: the #RhythmDB
+ * @query: query to serialize
+ * @parent: XML node to attach the query to
+ *
+ * Converts @query into XML form as a child of @parent.  It can be converted
+ * back into a query by passing @parent to @rhythmdb_query_deserialize.
+ */
 void
 rhythmdb_query_serialize (RhythmDB *db, GPtrArray *query,
 			  xmlNodePtr parent)
@@ -518,6 +568,15 @@ rhythmdb_query_serialize (RhythmDB *db, GPtrArray *query,
 	}
 }
 
+/**
+ * rhythmdb_query_deserialize:
+ * @db: the #RhythmDB
+ * @parent: parent XML node of serialized query
+ *
+ * Converts a serialized query back into a @GPtrArray query.
+ *
+ * Return value: deserialized query.
+ */
 GPtrArray *
 rhythmdb_query_deserialize (RhythmDB *db, xmlNodePtr parent)
 {
@@ -629,6 +688,26 @@ rhythmdb_query_deserialize (RhythmDB *db, xmlNodePtr parent)
  *    actually implements. e.g. RHYTHMDB_QUERY_YEAR_*
  **/
 
+/**
+ * rhythmdb_query_preprocess:
+ * @db: the #RhythmDB
+ * @query: query to preprocess
+ *
+ * Preprocesses a query to prepare it for execution.  This has two main
+ * roles: to perform expensive data transformations once per query, rather
+ * than once per entry, and converting criteria to lower-level forms that
+ * are implemented by the database backend.
+ *
+ * For RHYTHMDB_PROP_SEARCH_MATCH, this converts the search terms into
+ * an array of case-folded words.
+ *
+ * When matching against case-folded properties such as
+ * #RHYTHMDB_PROP_TITLE_FOLDED, this case-folds the query value.
+ *
+ * When performing year-based criteria such as #RHYTHMDB_QUERY_PROP_YEAR_LESS,
+ * it converts the year into the Julian date such that a simple numeric
+ * comparison will work.
+ */
 void
 rhythmdb_query_preprocess (RhythmDB *db, GPtrArray *query)
 {
@@ -740,6 +819,16 @@ rhythmdb_query_preprocess (RhythmDB *db, GPtrArray *query)
 	}
 }
 
+/**
+ * rhythmdb_query_append_prop_multiple:
+ * @db: the #RhythmDB
+ * @query: the query to append to
+ * @propid: property ID to match
+ * @items: #GList of values to match against
+ *
+ * Appends a set of criteria to a query to match against any of the values
+ * listed in @items.
+ */
 void
 rhythmdb_query_append_prop_multiple (RhythmDB *db, GPtrArray *query, RhythmDBPropType propid, GList *items)
 {
@@ -781,6 +870,15 @@ rhythmdb_query_append_prop_multiple (RhythmDB *db, GPtrArray *query, RhythmDBPro
 			       RHYTHMDB_QUERY_END);
 }
 
+/**
+ * rhythmdb_query_is_time_relative
+ * @db: the #RhythmDB
+ * @query: the query to check
+ *
+ * Checks if a query contains any time-relative criteria.
+ *
+ * Return value: %TRUE if time-relative criteria found
+ */
 gboolean
 rhythmdb_query_is_time_relative (RhythmDB *db, GPtrArray *query)
 {
diff --git a/rhythmdb/rhythmdb.h b/rhythmdb/rhythmdb.h
index 56bce41..498c9a9 100644
--- a/rhythmdb/rhythmdb.h
+++ b/rhythmdb/rhythmdb.h
@@ -473,9 +473,9 @@ RhythmDBQuery *	rhythmdb_query_copy			(RhythmDBQuery *array);
 void		rhythmdb_query_preprocess		(RhythmDB *db, RhythmDBQuery *query);
 
 void		rhythmdb_query_serialize		(RhythmDB *db, RhythmDBQuery *query,
-							 xmlNodePtr node);
+							 xmlNodePtr parent);
 
-RhythmDBQuery *	rhythmdb_query_deserialize		(RhythmDB *db, xmlNodePtr node);
+RhythmDBQuery *	rhythmdb_query_deserialize		(RhythmDB *db, xmlNodePtr parent);
 
 char *		rhythmdb_query_to_string		(RhythmDB *db, RhythmDBQuery *query);
 
diff --git a/shell/rb-history.c b/shell/rb-history.c
index f91e896..e8b9564 100644
--- a/shell/rb-history.c
+++ b/shell/rb-history.c
@@ -139,6 +139,8 @@ rb_history_class_init (RBHistoryClass *klass)
  * @destroyer: function to call when removing an entry from the history
  * @destroy_userdata: data to pass to @destroyer
  *
+ * Creates a new history instance.
+ *
  * Return value: a new #RBHistory
  */
 RBHistory *
@@ -286,7 +288,9 @@ rb_history_set_maximum_size (RBHistory *hist, guint maximum_size)
  * rb_history_length:
  * @hist: a #RBHistory
  *
- * Return value: the number of entries in the history
+ * Returns the number of entries in the history.
+ *
+ * Return value: number of entries
  */
 guint
 rb_history_length (RBHistory *hist)
@@ -300,7 +304,9 @@ rb_history_length (RBHistory *hist)
  * rb_history_first:
  * @hist: a #RBHistory
  *
- * Return value: the first entry in the history
+ * Returns the first entry in the history.
+ *
+ * Return value: first entry
  */
 RhythmDBEntry *
 rb_history_first (RBHistory *hist)
@@ -316,7 +322,9 @@ rb_history_first (RBHistory *hist)
  * rb_history_previous:
  * @hist: a #RBHistory
  *
- * Return value: the #RhythmDBEntry before the current position
+ * Returns the #RhythmDBEntry before the current position.
+ *
+ * Return value: previous entry
  */
 RhythmDBEntry *
 rb_history_previous (RBHistory *hist)
@@ -333,7 +341,9 @@ rb_history_previous (RBHistory *hist)
  * rb_history_current:
  * @hist: a #RBHistory
  *
- * Return value: the current #RhythmDBEntry, or NULL if there is no current position
+ * Returns the current #RhythmDBEntry, or NULL if there is no current position
+ *
+ * Return value: current entry or NULL
  */
 RhythmDBEntry *
 rb_history_current (RBHistory *hist)
@@ -347,7 +357,9 @@ rb_history_current (RBHistory *hist)
  * rb_history_next:
  * @hist: a #RBHistory
  *
- * Return value: the #RhythmDBEntry after the current position
+ * Returns the #RhythmDBEntry after the current position
+ *
+ * Return value: next entry
  */
 RhythmDBEntry *
 rb_history_next (RBHistory *hist)
@@ -363,7 +375,9 @@ rb_history_next (RBHistory *hist)
  * rb_history_last:
  * @hist: a #RBHistory
  *
- * Return value: the last #RhythmDBEntry in the history
+ * Returns the last #RhythmDBEntry in the history
+ *
+ * Return value: last entry
  */
 RhythmDBEntry *
 rb_history_last (RBHistory *hist)
@@ -677,7 +691,9 @@ rb_history_dump (RBHistory *hist)
  * @hist: a #RBHistory
  * @entry: a #RhythmDBEntry to check for
  *
- * Return value: TRUE if the entry is present in the history list.
+ * Returns %TRUE if the entry is present in the history list.
+ *
+ * Return value: %TRUE if found
  */
 gboolean
 rb_history_contains_entry (RBHistory *hist, RhythmDBEntry *entry)
diff --git a/sources/rb-removable-media-source.c b/sources/rb-removable-media-source.c
index 6d2284a..4154361 100644
--- a/sources/rb-removable-media-source.c
+++ b/sources/rb-removable-media-source.c
@@ -27,6 +27,16 @@
  *
  */
 
+/**
+ * SECTION:rb-removable-media-source
+ * @short_description: Base class for sources representing removable media
+ *
+ * This class provides support for transferring (and transcoding) entries to
+ * the device using drag and drop or cut and paste.  The implementation must
+ * at minimum provide methods for returning a list of supported media types,
+ * and for constructing destination URIs for transfers.
+ */
+
 #include <config.h>
 
 #include <string.h>
@@ -117,6 +127,11 @@ rb_removable_media_source_class_init (RBRemovableMediaSourceClass *klass)
 
 	klass->impl_should_paste = impl_should_paste;
 
+	/**
+	 * RBRemovableMediaSource:volume
+	 *
+	 * The #GVolume object that the source represents (optional)
+	 */
 	g_object_class_install_property (object_class,
 					 PROP_VOLUME,
 					 g_param_spec_object ("volume",
@@ -124,6 +139,11 @@ rb_removable_media_source_class_init (RBRemovableMediaSourceClass *klass)
 							      "GIO Volume",
 							      G_TYPE_VOLUME,
 							      G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+	/**
+	 * RBRemovableMediaSource:mount
+	 *
+	 * The #GMount object that the source represents
+	 */
 	g_object_class_install_property (object_class,
 					 PROP_MOUNT,
 					 g_param_spec_object ("mount",
@@ -593,6 +613,24 @@ impl_receive_drag (RBSource *asource, GtkSelectionData *data)
 	return TRUE;
 }
 
+/**
+ * rb_removable_media_source_build_dest_uri:
+ * @source: an #RBRemovableMediaSource
+ * @entry: the #RhythmDBEntry to build a URI for
+ * @mimetype: destination media type
+ * @extension: extension associated with destination media type
+ *
+ * Constructs a URI to use as the destination for a transfer or transcoding
+ * operation.  The URI may be on the device itself, if the device is mounted
+ * into the normal filesystem or through gvfs, or it may be a temporary
+ * location used to store the file before uploading it to the device.
+ *
+ * The destination URI should conform to the device's normal URI format,
+ * and should use the provided extension instead of the extension from
+ * the source entry.
+ *
+ * Return value: constructed URI
+ */
 char *
 rb_removable_media_source_build_dest_uri (RBRemovableMediaSource *source,
 					  RhythmDBEntry *entry,
@@ -622,6 +660,21 @@ rb_removable_media_source_build_dest_uri (RBRemovableMediaSource *source,
 	return uri;
 }
 
+/**
+ * rb_removable_media_source_get_mime_types:
+ * @source: an #RBRemovableMediaSource
+ *
+ * Returns a #GList of allocated media type strings describing the
+ * formats supported by the device.  If possible, these should be
+ * sorted in order of preference, as the first entry in the list
+ * for which an encoder is available will be used.
+ *
+ * Common media types include "audio/mpeg" for MP3, "application/ogg"
+ * for Ogg Vorbis, "audio/x-flac" for FLAC, and "audio/x-aac" for
+ * MP4/AAC.
+ *
+ * Return value: list of media types
+ */
 GList *
 rb_removable_media_source_get_mime_types (RBRemovableMediaSource *source)
 {
@@ -633,6 +686,16 @@ rb_removable_media_source_get_mime_types (RBRemovableMediaSource *source)
 		return NULL;
 }
 
+/**
+ * rb_removable_media_source_get_format_descriptions:
+ * @source: a #RBRemovableMediaSource
+ *
+ * Returns a #GList of allocated media format descriptions for
+ * the formats supported by the device.  The list and the strings
+ * it holds must be freed by the caller.
+ *
+ * Return value: list of descriptions.
+ */
 GList *
 rb_removable_media_source_get_format_descriptions (RBRemovableMediaSource *source)
 {
@@ -660,6 +723,17 @@ rb_removable_media_source_get_format_descriptions (RBRemovableMediaSource *sourc
 	return desc;
 }
 
+/**
+ * rb_removablem_media_source_should_paste_no_duplicate:
+ * @source: an #RBRemovableMediaSource
+ * @entry: a #RhythmDBEntry to consider pasting
+ *
+ * This implementation of #rb_removable_media_should_paste checks for
+ * an existing entry on the device that matches the title, album, artist,
+ * and track number of the entry being considered.
+ *
+ * Return value: %TRUE if the entry should be transferred to the device.
+ */
 gboolean
 rb_removable_media_source_should_paste_no_duplicate (RBRemovableMediaSource *source,
 						     RhythmDBEntry *entry)
@@ -722,6 +796,18 @@ impl_should_paste (RBRemovableMediaSource *source, RhythmDBEntry *entry)
 	return should_paste;
 }
 
+/**
+ * rb_removable_media_source_should_paste:
+ * @source: an #RBRemovableMediaSource
+ * @entry: a #RhythmDBEntry to consider pasting
+ *
+ * Checks whether @entry should be transferred to the device.
+ * The source can check whether a matching entry already exists on the device,
+ * for instance.  See @rb_removable_media_source_should_paste_no_duplicate
+ * a useful implementation.
+ *
+ * Return value: %TRUE if the entry should be transferred to the device
+ */
 gboolean
 rb_removable_media_source_should_paste (RBRemovableMediaSource *source,
 					RhythmDBEntry *entry)
@@ -731,6 +817,22 @@ rb_removable_media_source_should_paste (RBRemovableMediaSource *source,
 	return klass->impl_should_paste (source, entry);
 }
 
+/**
+ * rb_removable_media_source_track_added:
+ * @source: an #RBRemovableMediaSource
+ * @entry: the source #RhythmDBEntry for the transfer
+ * @uri: the destination URI
+ * @filesize: size of the destination file
+ * @mimetype: media type of the destination file
+ *
+ * This is called when a transfer to the device has completed.
+ * If the source's impl_track_added method returns %TRUE, the destination
+ * URI will be added to the database using the entry type for the device.
+ *
+ * If the source uses a temporary area as the destination for transfers,
+ * it can instead upload the destination file to the device and create an
+ * entry for it, then return %FALSE.
+ */
 void
 rb_removable_media_source_track_added (RBRemovableMediaSource *source,
 				       RhythmDBEntry *entry,
@@ -761,6 +863,18 @@ rb_removable_media_source_track_added (RBRemovableMediaSource *source,
 	}
 }
 
+/**
+ * rb_removable_media_source_track_add_error:
+ * @source: an #RBRemovableMediaSource
+ * @entry: the source #RhythmDBEntry for the transfer
+ * @uri: the destination URI
+ * @error: the transfer error information
+ *
+ * This is called when a transfer fails.  If the source's
+ * impl_track_add_error implementation returns %TRUE, an error dialog
+ * will be displayed to the user containing the error message, unless
+ * the error indicates that the destination file already exists.
+ */
 void
 rb_removable_media_source_track_add_error (RBRemovableMediaSource *source,
 					   RhythmDBEntry *entry,
diff --git a/sources/rb-removable-media-source.h b/sources/rb-removable-media-source.h
index 60b3818..4deac13 100644
--- a/sources/rb-removable-media-source.h
+++ b/sources/rb-removable-media-source.h
@@ -83,7 +83,7 @@ char*		rb_removable_media_source_build_dest_uri 	(RBRemovableMediaSource *source
 void		rb_removable_media_source_track_added		(RBRemovableMediaSource *source,
 								 RhythmDBEntry *entry,
 								 const char *uri,
-								 guint64 dest_size,
+								 guint64 filesize,
 								 const char *mimetype);
 void		rb_removable_media_source_track_add_error	(RBRemovableMediaSource *source,
 								 RhythmDBEntry *entry,
diff --git a/sources/rb-static-playlist-source.c b/sources/rb-static-playlist-source.c
index 2caaa2a..6310bba 100644
--- a/sources/rb-static-playlist-source.c
+++ b/sources/rb-static-playlist-source.c
@@ -27,6 +27,21 @@
  *
  */
 
+/**
+ * SECTION:rb-static-playlist-source
+ * @short_description: Manually defined playlist class
+ *
+ * Static playlists are not defined by a query, but instead by manually selected
+ * and ordered tracks.
+ *
+ * This class is used for static playlists built from the user's library, and is
+ * also a base class for the play queue and for playlists on devices and network
+ * shares.
+ *
+ * It has some ability to track locations that are not yet present in the database
+ * and to add them to the playlist once they are added.
+ */
+
 #include "config.h"
 
 #include <string.h>
@@ -336,6 +351,18 @@ rb_static_playlist_source_constructed (GObject *object)
 	gtk_widget_show_all (GTK_WIDGET (source));
 }
 
+/**
+ * rb_static_playlist_source_new:
+ * @shell: the #RBShell
+ * @name: the playlist name
+ * @sorting_name: the sorting name for the playlist (GConf key friendly)
+ * @local: if %TRUE, the playlist is local to the library
+ * @entry_type: type of database entries that can be added to the playlist.
+ *
+ * Creates a new static playlist source.
+ *
+ * Return value: new playlist.
+ */
 RBSource *
 rb_static_playlist_source_new (RBShell *shell, const char *name, const char *sorting_name, gboolean local, RhythmDBEntryType entry_type)
 {
@@ -389,6 +416,13 @@ rb_static_playlist_source_get_property (GObject *object,
 	}
 }
 
+/**
+ * rb_static_playlist_source_load_from_xml:
+ * @source: an #RBStaticPlaylistSource
+ * @node: XML node to load from
+ *
+ * Loads the playlist contents from the specified XML document node.
+ */
 void
 rb_static_playlist_source_load_from_xml (RBStaticPlaylistSource *source, xmlNodePtr node)
 {
@@ -410,6 +444,15 @@ rb_static_playlist_source_load_from_xml (RBStaticPlaylistSource *source, xmlNode
 	}
 }
 
+/**
+ * rb_static_playlist_source_new_from_xml:
+ * @shell: the #RBShell
+ * @node: XML node containing playlist entries
+ *
+ * Constructs a new playlist from the given XML document node.
+ *
+ * Return value: playlist read from XML
+ */
 RBSource *
 rb_static_playlist_source_new_from_xml (RBShell *shell, xmlNodePtr node)
 {
@@ -745,6 +788,16 @@ _add_location_cb (GFile *file,
 	return TRUE;	
 }
 
+/**
+ * rb_static_playlist_source_add_location:
+ * @source: an #RBStaticPlaylistSource
+ * @location: location (URI) to add to the playlist
+ * @index: position at which to add the location (-1 to add at the end)
+ *
+ * If the location matches an entry in the database, the entry is added
+ * to the playlist.  Otherwise, if it identifies a directory, the contents
+ * of that directory are added.
+ */
 void
 rb_static_playlist_source_add_location (RBStaticPlaylistSource *source,
 					const char *location,
@@ -767,6 +820,14 @@ rb_static_playlist_source_add_location (RBStaticPlaylistSource *source,
 
 }
 
+/**
+ * rb_static_playlist_source_add_locations:
+ * @source: an #RBStaticPlaylistSource
+ * @locations: a #GList of strings to add
+ *
+ * Adds the locations specified in @locations to the playlist.
+ * See @rb_static_playlist_source_add_location for details.
+ */
 void
 rb_static_playlist_source_add_locations (RBStaticPlaylistSource *source,
 					 GList *locations)
@@ -779,6 +840,15 @@ rb_static_playlist_source_add_locations (RBStaticPlaylistSource *source,
 	}
 }
 
+/**
+ * rb_static_playlist_source_remove_location:
+ * @source: an #RBStaticPlaylistSource
+ * @location: location to remove
+ *
+ * Removes the specified location from the playlist.  This affects both
+ * the location map and the query model, whether an entry exists for the
+ * location or not.
+ */
 void
 rb_static_playlist_source_remove_location (RBStaticPlaylistSource *source,
 					   const char *location)
@@ -801,6 +871,14 @@ rb_static_playlist_source_remove_location (RBStaticPlaylistSource *source,
 	}
 }
 
+/**
+ * rb_static_playlist_source_add_entry:
+ * @source: an #RBStaticPlaylistSource
+ * @entry: entry to add to the playlist
+ * @index: position at which to add it (-1 to add at the end)
+ *
+ * Adds the specified entry to the playlist.
+ */
 void
 rb_static_playlist_source_add_entry (RBStaticPlaylistSource *source,
 				     RhythmDBEntry *entry,
@@ -812,6 +890,13 @@ rb_static_playlist_source_add_entry (RBStaticPlaylistSource *source,
 	rb_static_playlist_source_add_location_internal (source, location, index);
 }
 
+/**
+ * rb_static_playlist_source_remove_entry:
+ * @source: an #RBStaticPlaylistSource
+ * @entry: the entry to remove
+ *
+ * Removes the specified entry from the playlist.
+ */
 void
 rb_static_playlist_source_remove_entry (RBStaticPlaylistSource *source,
 					RhythmDBEntry *entry)
@@ -822,6 +907,14 @@ rb_static_playlist_source_remove_entry (RBStaticPlaylistSource *source,
 	rb_static_playlist_source_remove_location (source, location);
 }
 
+/**
+ * rb_static_playlist_source_move_entry:
+ * @source: an #RBStaticPlaylistSource
+ * @entry: the entry to move
+ * @index: new location for the entry
+ *
+ * Moves an entry within the playlist.
+ */
 void
 rb_static_playlist_source_move_entry (RBStaticPlaylistSource *source,
 				      RhythmDBEntry *entry,
@@ -909,4 +1002,3 @@ impl_want_uri (RBSource *source, const char *uri)
 
 	return 0;
 }
-
diff --git a/sources/rb-static-playlist-source.h b/sources/rb-static-playlist-source.h
index aa1f61a..02320ba 100644
--- a/sources/rb-static-playlist-source.h
+++ b/sources/rb-static-playlist-source.h
@@ -45,15 +45,18 @@ G_BEGIN_DECLS
 #define RB_IS_STATIC_PLAYLIST_SOURCE_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), RB_TYPE_STATIC_PLAYLIST_SOURCE))
 #define RB_STATIC_PLAYLIST_SOURCE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), RB_TYPE_STATIC_PLAYLIST_SOURCE, RBStaticPlaylistSourceClass))
 
-typedef struct
+typedef struct _RBStaticPlaylistSource RBStaticPlaylistSource;
+typedef struct _RBStaticPlaylistSourceClass RBStaticPlaylistSourceClass;
+
+struct _RBStaticPlaylistSource
 {
 	RBPlaylistSource parent;
-} RBStaticPlaylistSource;
+};
 
-typedef struct
+struct _RBStaticPlaylistSourceClass
 {
 	RBPlaylistSourceClass parent;
-} RBStaticPlaylistSourceClass;
+};
 
 GType		rb_static_playlist_source_get_type 	(void);
 
diff --git a/sources/rb-streaming-source.c b/sources/rb-streaming-source.c
index 3027e1e..4bb8d6e 100644
--- a/sources/rb-streaming-source.c
+++ b/sources/rb-streaming-source.c
@@ -27,12 +27,12 @@
  *
  */
 
-/*
- * base class for streaming sources (internet radio, last.fm streams)
- * provides handling of:
- *  - buffering signals (done)
- *  - streaming song metadata (done)
- *  - possibly updating play count etc.?
+/**
+ * SECTION:rb-streaming-source
+ * @short_description: Base class for streaming sources such as internet radio
+ *
+ * This class provides handling of buffering signals and streaming song metadata
+ * common to different types of sources that play continuous streaming media.
  */
 
 #include "config.h"
@@ -82,7 +82,7 @@ static void extra_metadata_gather_cb (RhythmDB *db,
 				      RBStringValueMap *data,
 				      RBStreamingSource *source);
 
-struct RBStreamingSourcePrivate
+struct _RBStreamingSourcePrivate
 {
 	RhythmDB *db;
 
@@ -200,6 +200,15 @@ impl_handle_eos (RBSource *asource)
 	return RB_SOURCE_EOF_RETRY;
 }
 
+/**
+ * rb_streaming_source_get_progress:
+ * @source: a #RBStreamingSource
+ * @text: returns buffering status text
+ * @progress: returns buffering progress fraction
+ *
+ * Provides status text and progress fraction suitable for use in
+ * a streaming source's @rb_source_get_status method.
+ */
 void
 rb_streaming_source_get_progress (RBStreamingSource *source, char **text, float *progress)
 {
@@ -383,6 +392,14 @@ set_streaming_metadata (RBStreamingSource *source,
 						      source);
 }
 
+/**
+ * rb_streaming_source_set_streaming_title:
+ * @source: a #RBStreamingSource
+ * @title: the new streaming song title
+ *
+ * Updates the streaming song title.  Call this when an updated
+ * streaming song title is received from the stream.
+ */
 void
 rb_streaming_source_set_streaming_title (RBStreamingSource *source,
 					 const char *title)
@@ -394,6 +411,14 @@ rb_streaming_source_set_streaming_title (RBStreamingSource *source,
 				title);
 }
 
+/**
+ * rb_streaming_source_set_streaming_artist:
+ * @source: a #RBStreamingSource
+ * @artist: the new streaming song artist name
+ *
+ * Updates the streaming song artist name.  Call this when an updated
+ * streaming song artist name is received from the stream.
+ */
 void
 rb_streaming_source_set_streaming_artist (RBStreamingSource *source,
 					  const char *artist)
@@ -405,6 +430,14 @@ rb_streaming_source_set_streaming_artist (RBStreamingSource *source,
 				artist);
 }
 
+/**
+ * rb_streaming_source_set_streaming_album:
+ * @source: a #RBStreamingSource
+ * @album: the new streaming song album name
+ *
+ * Updates the streaming song album name.  Call this when an updated
+ * streaming song album name is received from the stream.
+ */
 void
 rb_streaming_source_set_streaming_album (RBStreamingSource *source,
 					 const char *album)
@@ -471,4 +504,3 @@ playing_entry_changed_cb (RBShellPlayer *player,
 
 	g_object_unref (backend);
 }
-
diff --git a/sources/rb-streaming-source.h b/sources/rb-streaming-source.h
index 9929eb6..e75f051 100644
--- a/sources/rb-streaming-source.h
+++ b/sources/rb-streaming-source.h
@@ -39,25 +39,27 @@ G_BEGIN_DECLS
 #define RB_IS_STREAMING_SOURCE_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), RB_TYPE_STREAMING_SOURCE))
 #define RB_STREAMING_SOURCE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), RB_TYPE_STREAMING_SOURCE, RBStreamingSourceClass))
 
-typedef struct RBStreamingSourcePrivate RBStreamingSourcePrivate;
+typedef struct _RBStreamingSource RBStreamingSource;
+typedef struct _RBStreamingSourceClass RBStreamingSourceClass;
+typedef struct _RBStreamingSourcePrivate RBStreamingSourcePrivate;
 
-typedef struct
+struct _RBStreamingSource
 {
 	RBSource parent;
 
 	RBStreamingSourcePrivate *priv;
-} RBStreamingSource;
+};
 
-typedef struct
+struct _RBStreamingSourceClass
 {
 	RBSourceClass parent;
-} RBStreamingSourceClass;
+};
 
 GType		rb_streaming_source_get_type	(void);
 
 /* methods for subclasses */
 void		rb_streaming_source_get_progress (RBStreamingSource *source,
-						  char **progress_text,
+						  char **text,
 						  float *progress);
 void		rb_streaming_source_set_streaming_title (RBStreamingSource *source,
 							 const char *title);
@@ -69,4 +71,3 @@ void		rb_streaming_source_set_streaming_album (RBStreamingSource *source,
 G_END_DECLS
 
 #endif /* __RB_STREAMING_SOURCE_H */
-
diff --git a/tests/test-rhythmdb-tree-serialization.c b/tests/test-rhythmdb-tree-serialization.c
index d8420ee..f22dbc4 100644
--- a/tests/test-rhythmdb-tree-serialization.c
+++ b/tests/test-rhythmdb-tree-serialization.c
@@ -120,7 +120,7 @@ main (int argc, char **argv)
 
 	db = rhythmdb_tree_new ("test.xml");
 
-	/**
+	/*
 	 *  TEST 1: Save with no entries
 	 */
 	g_print ("Test 1\n");
@@ -135,7 +135,7 @@ main (int argc, char **argv)
 	rhythmdb_read_unlock (db);
 	g_print ("Test 1: PASS\n");
 
-	/**
+	/*
 	 *  TEST 2: Save with a single entry
 	 */
 	g_print ("Test 1\n");
@@ -149,7 +149,7 @@ main (int argc, char **argv)
 
 	rhythmdb_write_unlock (db);
 
-	/**
+	/*
 	 * THE END
 	 */
 	rhythmdb_shutdown (db);
diff --git a/widgets/rb-dialog.c b/widgets/rb-dialog.c
index 884f9af..a076806 100644
--- a/widgets/rb-dialog.c
+++ b/widgets/rb-dialog.c
@@ -45,6 +45,9 @@
 /**
  * SECTION:rb-dialog
  * @short_description: helper functions for creating gtk+ dialog windows
+ *
+ * This provides a couple of shortcuts for creating dialogs.  If you want
+ * to annoy the user by displaying an error message, this is the way to do it.
  */
 
 /**



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]