2008-01-11  Graham Cobb  <g+770@cobb.uk.net>

	* src/lastfm.c (HANDSHAKE_URI): Move to V1.2 of Audioscrobbler
	Realtime Submission Protocol (last.fm)

	* src/main.c (main): Create menu not menubar in chinook

2007-11-06  Graham Cobb  <g+770@cobb.uk.net>

	* src/main.c (main): changes for hildonprogram/hildonwindow in chinook

2007-11-04  Graham Cobb  <g+770@cobb.uk.net>

	* debian/rules (DEB_CONFIGURE_USER_FLAGS): use --enable-gpe

	* configure.ac, src/Makefile.am, src/main.c: build and compile
	changes for new hildon libraries in chinook

2007-07-23  Graham Cobb  <g+770@cobb.uk.net>

	* mkinstalldirs: add file

	* debian/rules: add options for maemo builds
	(this assumes the debian directory is not used for anything else)

2007-06-07  Florian Boor  <florian@linuxtogo.org>

	* Release 0.2
	* Rename configure.in to configure.ac like in all other bits.
	* Update i18n support in build tools to work with desktop file 
        and to pass distcheck.
	* refresh POTFILES.in

2007-02-25  Neal H. Walfield  <neal@gnu.org>

	* src/playlist.c (meta_data_reader): If possible, just set to
	GST_STATE_PAUSED to get the stream tags.  Break out of the loop
	once we reach our target state.

	(play_list_add_recursive): More aggressively yield.  Don't
	consider m3u files.

	* src/main.c (playlist_state_changed_cb): Simplify.
	(main): Call the quite menu item "Quit", not close.  Make the
	label containing the currently playing song ellipsizable.

2007-02-24  Neal H. Walfield  <neal@gnu.org>

	* src/main.c (playlist_add_cb): Use a file chooser.  Take an
	additional argument to determine whether to choose a file or a
	directory.
	(playlist_add_file_cb): New function.
	(playlist_add_directory_cb): New function.
	(main): Don't provide just an import menu item.  Provide both
	import file and an import directory items.
	[IS_HILDON]: Don't display a file menu.  Just add the menu items
	to the main menu.
	* src/starling.h: Remove field fs.

2007-02-23  Neal H. Walfield  <neal@gnu.org>

	* src/main.c: Include
	<hildon-fm/hildon-widgets/hildon-file-chooser-dialog.h>.
	(fs_cancel_cb): Remove function.
	(fs_accept_cb): Remove function.  Move body from here...
	(playlist_add_cb): ... to here.  Port to Maemo.

	(key_press_event) [IS_HILDON]: Make fullscreen button a play/pause
	button.  Map F8 to previous.

	* src/playlist.c [IS_HILDON]: Add field source.
	(play_list_play): Move playbin creation from here...
	(playbin_ensure): ... to this new function.
	[IS_HILDON]: Don't use a playbin but our own "special" pipeline.
	(play_list_set_sink) [IS_HILDON]: Don't do anything.
	[! IS_HILDON]: Ensure PL->PLAYBIN is valid.
	[IS_HILDON]: Set the "location" property on PL->SOURCE.

	(meta_data_reader): Don't reference PL.  Decode into a fakesink.
	Unref the bus.

	(play_list_bus_cb): Correctly case PL->PLAYBIN to a GST_OBJECT.

	* data/Makefile.am (desktop_DATA): Don't install starling.desktop
	on hildon.
	(pixmapdir): New variable.
	(pixmap_DATA): Likewise.
	(EXTRA_DIST): Add bass.png.
	* data/bass.png: New file, stolen from gpe-icons/default/bass.png.
	* data/starling.desktop.in (Icon): Change to bass.png.

2007-02-23  Neal H. Walfield  <neal@gnu.org>

	* configure.in: Don't require libsoup-2.2 version 2.2.94 or
	greater; just depend on libsoup-2.2.

	* Makefile.am (EXTRA_DIST): Add debian/changelog, debian/compat,
	debian/control and debian/rules.

	* debian/compat: Change it to 4.

	* debian/control (Build-Depends): Add it.
	(Depends): Correctly enumerate them.

	* hildon/Makefile.am (install-data-hook): Make
	$(DESTDIR)/etc/others-menu if it doesn't exist.

	* hildon/com.nokia.starling.service.in (Exec): It's
	@prefix@/bin/starling, not @prefix@/starling.
	* hildon/starling.desktop.in (Exec): Likewise.

2007-02-23  Neal H. Walfield  <neal@gnu.org>

	* src/main.c: Include <glib.h>.
	(main): Put the playlist in ~/.starling, not ~/.gpe.  Ensure this
	directory exists.

2007-02-23  Neal H. Walfield  <neal@gnu.org>

	* src/errorbox.c (starling_error_box): It's GTK_BUTTONS_OK, not
	GTK_RESPONSE_OK.

2007-02-22  Neal H. Walfield  <neal@gnu.org>

	* debian/changelog: New file.
	* debian/compat: New file.
	* debian/control: New file.
	* debian/rules: New file.

2007-02-22  Neal H. Walfield  <neal@gnu.org>

	* configure.in: Determine GLIB_GENMARSHAL after checking for
	pkg-config.

	* src/Makefile.am (starling_SOURCES): Don't forget a trailing \.

2007-02-22  Neal H. Walfield  <neal@gnu.org>

	* hildon/Makefile.am (install-data-hook): Respect $(DESTDIR).

2007-02-22  Neal H. Walfield  <neal@gnu.org>

	* configure.in: Use AC_CHECK_LIB, not AC_CHECK_FUNC, to check for
	hildon.  Generate hildon/starling.desktop
	hildon/com.nokia.starling.service hildon/Makefile.
	* Makefile.am [HILDON] (SUBDIRS): Add hildon.
	* hildon/Makefile.am: New file.
	* hildon/com.nokia.starling.service.in: Likewise.
	* hildon/starling.desktop.in: Likewise.

	* src/callbacks.h: Remove file.
	* src/callbacks.c: Remove file and move contents...
	* src/main.c: ... to this file.  Don't include include
	"callbacks.h".  Include "utils.h" and <gdk/gdkkeysyms.h>.
	(scroll_to_current): New function.
	(key_press_event): Likewise.
	(main): Change open, random, remove selected and clear all to the
	menu.  Add a quit menu entry.  Display the title and artist in the
	title bar.  Add a jump to button to the right of the title and
	artist display.
	(playlist_next_cb): Scroll to the new entry.
	(playlist_prev_cb): Likewise.
	* src/Makefile.am (starling_SOURCES): Remove callbacks.h and
	callbacks.c.
	* src/starling.h (struct _Starling): Remove files notebook, stop,
	next, prev, up, down, add, clear, save and remove.  Add field
	treeview_window.
	[IS_HILDON] (struct _Starling): Add field fullscreen.

	* src/config.c (config_save): Only save ST->FS_LAST_PATH if
	non-NULL.

	* src/playlist.c (play_list_random_next): If empty, immediately
	return 0.

2007-02-22  Neal H. Walfield  <neal@gnu.org>

	* src/main.c: Don't include "interface.h".
	* src/callbacks.c: Likewise.
	
2007-02-22  Neal H. Walfield  <neal@gnu.org>

	* src/Makefile.am (starling_SOURCES): Remove interface.c and
	interface.h.
	* src/interface.h: Remove file.
	* src/interface.c: Remove file and move contents...
	* src/main.c: ... into this file.
	[IS_HILDON]: Include <hildon-widgets/hildon-app.h>,
	<hildon-widgets/hildon-appview.h> and <libosso.h>.
	[IS_HILDON] (APPLICATION_DBUS_SERVICE): Define.
	[IS_HILDON] (main): Initialize osso.  Use basic Hildon widgets
	where appropriate.  Use a toolbar for the previous, play/pause,
	next and random buttons.  Update users.  Likewise for the position
	scale.  Split ST->TIME into ST->POSITION and ST->DURATION.  Join
	the artist and title labels.
	* src/starling.h: Don't include <gtk/gtkwidget.h> or
	<gtk/gtkliststore.h>.  Include <gtk/gtk.h>.  Remove field time,
	add fields position and duration.  Remove field artist and bolded.
	* src/config.c (config_save): Get the random mode correctly.
	* src/callbacks.c (playlist_state_changed_cb): Don't change the
	play/pause button's image.  Update the play/pause buttons state as
	required.  Render the title correctly.

	* src/playlist.h (play_list_unpause): New prototype.
	* src/playlist.c (play_list_unpause): New function.
	* src/callbacks.c (playlist_playpause_cb): Don't just toggle the
	state; call either play_list_unpause or play_list_pause as a
	function of the button's state.
	
	* src/playlist.c (play_list_init): Don't initialize PL->POSITION
	to -1.
	(play_list_bus_cb): Only emit the changed signal if we have
	reached the target state.
	(play_list_seek): Ignore request if no stream is loaded.
	(play_list_query_duration): Don't return success if we haven't
	loaded a stream.
	(struct _PlayList): Add field last_state.
	(play_list_pause): If already playing, do nothing.
	(play_list_unpause): If already paused, do nothing.
	(play_list_bus_cb): Save state in PL->LAST_STATE.

	* src/callbacks.c (playlist_move_up_cb): Check that the swap is
	valid.
	(playlist_move_down_cb): Likewise.
	(scale_update_cb): If we fail to get the duration, just return.
	(playlist_state_changed_cb): If ARTIST or TITLE is NULL, don't
	fetch the lyrics.  On a new song, reset ST->CURRENT_LENGTH,
	ST->HAS_LYRICS and ST->ENQUEUED.

	* src/lastfm.h: Include "starling.h", not "startling.h".

	* src/lyrics.h: Include <libsoup/soup.h>.

	* src/config.c (KEY_WIDTH): New define.
	(KEY_HEIGHT): Likewise.
	(config_load): Correctly free memory.  Restore the size of the
	main window.
	(config_save): Save the size of the main window.

2007-02-22  Neal H. Walfield  <neal@gnu.org>

	* configure.in (starling_localedir): Don't use this.
	(PACKAGE_LOCALE_DIR): ... use this.
	(ENABLE_HILDON, IS_HILDON): Define according to whether we detect
	hildon.
	(GTK_CFLAGS): Don't AC_SUBST.
	(SQLITE_CFLAGS): Likewise.
	(LIBSOUP_CFLAGS): Likewise.
	(GPE_CFLAGS): Likewise.
	(DEPS_CFLAGS): AC_SUBST instead.
	(GTK_LIBS): Don't AC_SUBST.
	(SQLITE_LIBS): Likewise.
	(LIBSOUP_LIBS): Likewise.
	(GPE_LIBS): Likewise.
	(DEPS_LIBS): AC_SUBST instead.
	* src/Makefile.am (starling_LDADD): New variable.
	(noinst_HEADERS): Fold this...
	(starling_SOURCES): ... into this.
	(INCLUDES): Define.
	(starling_CFLAGS): Don't define.
	(starling_LDADD): Change to just $(DEPS_LIBS).

2007-02-22  Neal H. Walfield  <neal@gnu.org>

	* src/playlist.h: Rewrite.
	* src/playlist.c: Rewrite to make PlayList implement GtkTreeModel
	and, rather than keep everything in memory, use an sqlite DB as
	its backend.
	* src/stream.h: Remove file.
	* src/stream.c: Likewise.
	* src/Makefile.am (starling_SOURCES): Remove stream.c.
	(noinst_HEADERS): Remove stream.h.
	* src/callbacks.c: Don't include <gtk/gtkfilesel.h>,
	<gtk/gtktogglebutton.h>, <gtk/gtkrange.h>, <gtk/gtktreeview.h>,
	<gtk/gtkmain.h>, <gtk/gtkdialog.h>, <gtk/gtkentry.h>,
	<gtk/gtklabel.h>, <gtk/gtkstock.h> or <gtk/gtktextview.h>.
	Include <gtk/gtk.h> and "errorbox.h".
	(fs_accept_cb): Report errors.
	(playlist_remove_cb): Only remove selected rows.
	(playlist_activated_cb): Use play_list_goto.
	(playlist_playpause_cb): Use play_list_play_pause_toggle.
	(scale_update_cb): Use play_list_get_info.
	(new_tag_cb): Remove function.
	(new_stream_cb): Likewise.
	(deleted_stream_cb): Likewise.
	(playlist_cleared_cb): Likewise.
	(playlist_swap_cb): Likewise.
	(playlist_bold_item): Likewise.
	(callbacks_setup): Don't listen for the "new-stream",
	"deleted-stream", "cleared" or "swap" signals on ST->PL.
	* src/config.c (KEYLOADPLAYLIST): Don't define.
	(DEFKEYLOADPLAYLIST): Likewise.
	(config_init): Don't set the KEYLOADPLAYLIST group.
	(config_load): Don't read the KEYLOADPLAYLIST group.
	* src/interface.h: Don't enumerate columns.
	(player_init): Don't declare.
	* src/interface.c Don't include <gtk/gtkwindow.h>,
	<gtk/gtkstock.h>, <gtk/gtkhscale.h>, <gtk/gtkcellrenderertext.h>,
	<gtk/gtkscrolledwindow.h>, <gtk/gtklabel.h>, <gtk/gtkhbox.h>,
	<gtk/gtkvbox.h>, <gtk/gtkcheckbutton.h>, <gtk/gtkvseparator.h>,
	<gtk/gtkhseparator.h>, <gtk/gtkalignment.h>, <gtk/gtktreeview.h>,
	<gtk/gtknotebook.h>, <gtk/gtktextview.h> or <gtk/gtkentry.h>.
	Include <string.h> and <gtk/gtk.h>.
	(title_data_func): New function.
	(interface_init): Use ST->PL as the tree view.  Use
	title_data_func to render the cells.
	(player_init): Move from here...
	* src/main.c (main): ... into this function.  Use it before
	calling interface_init.
	Include "starling.h".
	* src/utils.h: Don't include "stream.h".
	(pretty_stream_name): Remove prototype.
	* src/utils.c (escape_spaces): Remove function.

	* NEWS: New file.

2007-02-19  Neal H. Walfield  <neal@gnu.org>

	* configure.in: Check for gstreamer-plugins-base-0.10.

	* src/main.c: Include <locale.h>.

	* src/errorbox.c: Include <stdio.h>.

	* src/callbacks.h (CALLBACKS_H): It's CALLBACKS_H, not
	cALLBACKS_H.

