-------------------------------------------------------------------------------
 To-do list for streamtuner
-------------------------------------------------------------------------------

Stability, correctness

	- use GError domains and codes
	  there will be one error code for ABORT
	  (which isn't really an error) (APIBREAK?)

	- use threads to make a poll transfer API

	- we must have something like (APIBREAK):

		gboolean plugin_init (STPlugin *plugin, GError **err)

	  and:

		st_plugin_add_handler (STPlugin *plugin, STHandler *handler)
		st_plugin_add_action (STPlugin *plugin, const char *id, const char *label, const char *command)
			(that should add an action to the global actions
			 hash table, or increment the refcount of an already
			 existing entry in the hash table)
		st_plugin_set_about_text (STPlugin *plugin, const char *text)

	  this will allow to unload a plugin cleanly, removing
	  all its handlers and programs

Features, completeness

	- go for GNOME? atm the advantages i see of using GNOME would be:
		- GNOME-wide proxy settings
		- GNOME-wide toolbar and menu settings
		- use gnomevfs instead of st-action
		- GNOME argv parsing and --help display
		- rest of the GNOME extras, such as GNOME about dialog,
		  GNOME dialogs etc

	- write plugin API reference

	- plugins must be able to register their own settings

	- add cache settings
	- the cache code should be rewritten with performance in mind:
		- load a category-specific cache file only when refreshing
		  that category for the first time
		- save a cache file upon each reload
