[Musicpd-dev-team] mpdscribble for win32?

2012-02-06 Thread Bart Nagel
Hi, folks. I've just started at a new job and have been given a 
Windows box. I've managed to get MPD and a couple of clients running 
(which is going to make my life much more comfortable) but I can't 
find a win32 binary for mpdscribble. I'm not up to compiling it myself 
(in a Windows environment, anyway), so does anyone know of an existing 
binary, or is anyone willing to do me a favour and produce one? I can 
offer a small bounty if that swings it.

Thanks.

--bart

--
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
___
Musicpd-dev-team mailing list
Musicpd-dev-team@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team


Re: [Musicpd-dev-team] mpdscribble for win32?

2012-02-06 Thread Avuton Olrich
On Mon, Feb 6, 2012 at 11:18 AM, Bart Nagel b...@tremby.net wrote:
 Hi, folks. I've just started at a new job and have been given a
 Windows box. I've managed to get MPD and a couple of clients running
 (which is going to make my life much more comfortable) but I can't
 find a win32 binary for mpdscribble. I'm not up to compiling it myself
 (in a Windows environment, anyway), so does anyone know of an existing
 binary, or is anyone willing to do me a favour and produce one? I can
 offer a small bounty if that swings it.

I will tonight. No bounty, it works oob with my scripts.
-- 
avuton
--
Fortes fortuna adiuvat

--
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
___
Musicpd-dev-team mailing list
Musicpd-dev-team@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team


Re: [Musicpd-dev-team] mpdscribble for win32?

2012-02-06 Thread Bart Nagel
At 2012-02-06 13:11:36 -0800, Avuton Olrich wrote:
 On Mon, Feb 6, 2012 at 11:18 AM, Bart Nagel b...@tremby.net wrote:
  Hi, folks. I've just started at a new job and have been given a
  Windows box. I've managed to get MPD and a couple of clients running
  (which is going to make my life much more comfortable) but I can't
  find a win32 binary for mpdscribble. I'm not up to compiling it myself
  (in a Windows environment, anyway), so does anyone know of an existing
  binary, or is anyone willing to do me a favour and produce one? I can
  offer a small bounty if that swings it.
 
 I will tonight. No bounty, it works oob with my scripts.

Thanks very much!

--
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
___
Musicpd-dev-team mailing list
Musicpd-dev-team@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team


Re: [Musicpd-dev-team] mpdscribble for win32?

2012-02-06 Thread Avuton Olrich
On Mon, Feb 6, 2012 at 1:13 PM, Bart Nagel b...@tremby.net wrote:
 At 2012-02-06 13:11:36 -0800, Avuton Olrich wrote:
 On Mon, Feb 6, 2012 at 11:18 AM, Bart Nagel b...@tremby.net wrote:
  Hi, folks. I've just started at a new job and have been given a
  Windows box. I've managed to get MPD and a couple of clients running
  (which is going to make my life much more comfortable) but I can't
  find a win32 binary for mpdscribble. I'm not up to compiling it myself
  (in a Windows environment, anyway), so does anyone know of an existing
  binary, or is anyone willing to do me a favour and produce one? I can
  offer a small bounty if that swings it.

 I will tonight. No bounty, it works oob with my scripts.

 Thanks very much!

I didn't test it, but last time I tested it, it was fine. If you run
into any issues, feel free to shoot me an email.
http://sourceforge.net/projects/musicpd/files/mpdscribble/0.22/mpdscribble-0.22-win32.zip/download
-- 
avuton
--
Fortes fortuna adiuvat

--
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
___
Musicpd-dev-team mailing list
Musicpd-dev-team@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team


Re: [Musicpd-dev-team] mpdscribble for win32?

2012-02-06 Thread Bart Nagel
At 2012-02-06 18:01:10 -0800, Avuton Olrich wrote:
 On Mon, Feb 6, 2012 at 1:13 PM, Bart Nagel b...@tremby.net wrote:
  At 2012-02-06 13:11:36 -0800, Avuton Olrich wrote:
  On Mon, Feb 6, 2012 at 11:18 AM, Bart Nagel b...@tremby.net wrote:
   Hi, folks. I've just started at a new job and have been given a
   Windows box. I've managed to get MPD and a couple of clients running
   (which is going to make my life much more comfortable) but I can't
   find a win32 binary for mpdscribble. I'm not up to compiling it myself
   (in a Windows environment, anyway), so does anyone know of an existing
   binary, or is anyone willing to do me a favour and produce one? I can
   offer a small bounty if that swings it.
 
  I will tonight. No bounty, it works oob with my scripts.
 
  Thanks very much!
 
 I didn't test it, but last time I tested it, it was fine. If you run
 into any issues, feel free to shoot me an email.
 http://sourceforge.net/projects/musicpd/files/mpdscribble/0.22/mpdscribble-0.22-win32.zip/download

That's working. Thanks!

--bart

--
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
___
Musicpd-dev-team mailing list
Musicpd-dev-team@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team


Re: [Musicpd-dev-team] mpdscribble

2009-04-08 Thread Stephen Paul Weber
Somebody claiming to be Max Kellermann wrote:
 On 2009/04/07 19:01, Stephen Paul Weber singpol...@singpolyma.net wrote:
  Attached please find 5 patch files, each the output of a git show
  for 5 commits that progressively implement this feature :)
 
 Found a major problem: conn.c does not deal with more than one
 connection at a time.  There's the global variable g, which needs to
 be converted to a parameter, so we have a per-server conn object.
 
 Result:
 
  mpdscribble: src/conn.c:89: conn_initiate: Assertion `!g.pending' failed.

Attached is a patch to deal with that :)

-- 
Stephen Paul Weber, @singpolyma
Please see http://singpolyma.net for how I prefer to be contacted.
nerve perfume pogo.
commit 7c960b224524ee6471faf8f146fbf1dec3dae352
Author: Stephen Paul Weber singpol...@singpolyma.net
Date:   Wed Apr 8 17:15:28 2009 -0400

Get rid of globals for conn.c

diff --git a/src/as.c b/src/as.c
index 629d351..d87bae0 100644
--- a/src/as.c
+++ b/src/as.c
@@ -413,7 +413,7 @@ static void as_handshake(struct config_as_host *as_host)
 
 	//  notice (handshake url:\n%s, url);
 
-	if (!conn_initiate(url-str, as_handshake_callback, NULL, as_host)) {
+	if (!conn_initiate(url-str, as_handshake_callback, NULL, as_host, as_host-conn)) {
 		g_warning(something went wrong when trying to connect, 
 			  probably a bug\n);
 
@@ -472,7 +472,7 @@ as_send_now_playing(const char *artist, const char *track,
 	g_message(sending 'now playing' notification to '%s'\n, as_host-url);
 
 	if (!conn_initiate(as_host-g_nowplay_url, as_submit_callback,
-			   post_data-str, as_host)) {
+			   post_data-str, as_host, as_host-conn)) {
 		g_warning(failed to POST to %s\n, as_host-g_nowplay_url);
 
 		as_host-g_state = AS_READY;
@@ -559,7 +559,7 @@ static void as_submit(struct config_as_host *as_host)
 
 	g_submit_pending = count;
 	if (!conn_initiate(as_host-g_submit_url, as_submit_callback,
-			   post_data-str, as_host)) {
+			   post_data-str, as_host, as_host-conn)) {
 		g_warning(something went wrong when trying to connect,
 			   probably a bug\n);
 
@@ -635,9 +635,8 @@ void as_init(void)
 	g_message(loaded %i song%s from cache\n,
 		  queue_length, queue_length == 1 ?  : s);
 
-	conn_setup();
-
 	do {
+		current_host-conn = conn_setup();
 		current_host-g_session = NULL;
 		current_host-g_nowplay_url = NULL;
 		current_host-g_submit_url = NULL;
@@ -695,6 +694,4 @@ void as_cleanup(void)
 
 	g_queue_foreach(queue, free_queue_song, NULL);
 	g_queue_free(queue);
-
-	conn_cleanup();
 }
diff --git a/src/conn.c b/src/conn.c
index 6214d82..56cbff4 100644
--- a/src/conn.c
+++ b/src/conn.c
@@ -21,29 +21,13 @@
 #include conn.h
 #include file.h
 #include as.h
-#include config.h
-
-#include libsoup/soup-uri.h
-#include libsoup/soup-session-async.h
 
 #include assert.h
 #include stdlib.h
 #include stdio.h
 #include string.h
 
-struct global {
-	SoupSession *session;
-	char *base;
-	bool pending;
-	callback_t *callback;
-#ifdef HAVE_SOUP_24
-	SoupURI *proxy;
-#else
-	SoupUri *proxy;
-#endif
-};
-
-static struct global g;
+int g_thread_done = 0;
 
 static void
 #ifdef HAVE_SOUP_24
@@ -53,51 +37,62 @@ conn_callback(G_GNUC_UNUSED SoupSession * session,
 conn_callback(SoupMessage * msg, gpointer data)
 #endif
 {
-	assert(g.pending);
+	struct global *g = data;
+	assert(g-pending);
 
-	g.pending = false;
+	g-pending = false;
 
 	/* NOTE: does not support redirects */
 	if (SOUP_STATUS_IS_SUCCESSFUL(msg-status_code)) {
 #ifdef HAVE_SOUP_24
-		g.callback(msg-response_body-length,
-			   msg-response_body-data, data);
+		g-callback(msg-response_body-length,
+			   msg-response_body-data, g-data);
 #else
-		g.callback(msg-response.length, msg-response.body, data);
+		g-callback(msg-response.length, msg-response.body, g-data);
 #endif
 	} else
-		g.callback(0, NULL, data);
+		g-callback(0, NULL, g-data);
 }
 
-void conn_setup(void)
+struct global *conn_setup(void)
 {
-	g_type_init();
-	g_thread_init(NULL);
 
-	g.pending = false;
+	if(!g_thread_done) {
+		g_type_init();
+		g_thread_init(NULL);
+		g_thread_done = 1;
+	}
+
+	struct global *g = malloc(sizeof *g);
+
+	g-pending = false;
 	if (file_config.proxy != NULL)
-		g.proxy = soup_uri_new(file_config.proxy);
+		g-proxy = soup_uri_new(file_config.proxy);
 	else
-		g.proxy = NULL;
+		g-proxy = NULL;
+
+	return g;
 }
 
 int
-conn_initiate(char *url, callback_t * callback, char *post_data, void *data)
+conn_initiate(char *url, callback_t * callback, char *post_data, void *data, struct global *g)
 {
 	SoupMessage *msg;
 
-	assert(!g.pending);
+	assert(!g-pending);
+
+	g-data = data;
 
-	g.callback = callback;
+	g-callback = callback;
 
-	g.base = url;
+	g-base = url;
 
-	g.session =
-	soup_session_async_new_with_options(SOUP_SESSION_PROXY_URI, g.proxy,
+	g-session =
+	soup_session_async_new_with_options(SOUP_SESSION_PROXY_URI, g-proxy,
 		NULL);
 
 	if (post_data) {
-		msg = soup_message_new(SOUP_METHOD_POST, g.base);
+		msg = soup_message_new(SOUP_METHOD_POST, g-base);
 #ifdef HAVE_SOUP_24
 	

Re: [Musicpd-dev-team] mpdscribble

2009-04-07 Thread Stephen Paul Weber
Somebody claiming to be Max Kellermann wrote:
 On 2009/04/07 01:39, Stephen Paul Weber singpol...@singpolyma.net wrote:
  Yes, this is exactly the functionality I had in mind :)
 
 Be sure that old configuration files continue to work.

Attached please find 5 patch files, each the output of a git show for 5
commits that progressively implement this feature :)

-- 
Stephen Paul Weber, @singpolyma
Please see http://singpolyma.net for how I prefer to be contacted.
nerve perfume pogo.
commit 4134470abcc4d23e6c971056826036461882c4eb
Author: Stephen Paul Weber singpol...@singpolyma.net
Date:   Tue Apr 7 10:52:34 2009 -0400

Don't assume last.fm AS_HOST + config parsing

In fact, don't assume global state for username/password either.
A lot of changes to as.c, conn.c, conn.h just to allow a pointer to a struct
containing the state instead of assuming global.

This patch still just uses the first as_host from the list.

file.h and file.c have been modified to actually parse the new config
file format and create a linked list of as_hosts.

There is a memory leak in the config parser: the linked list is not freed.
Since we need it all in memory until shutting down, this is likely not a problem,
but a comment reminder has been added.

diff --git a/src/as.c b/src/as.c
index 545189c..c2fe75d 100644
--- a/src/as.c
+++ b/src/as.c
@@ -45,8 +45,6 @@
 #define MAX_VAR_SIZE 8192
 #define MAX_TIMESTAMP_SIZE 64
 
-#define AS_HOST http://post.audioscrobbler.com/;
-
 /* don't submit more than this amount of songs in a batch. */
 #define MAX_SUBMIT_COUNT 10
 
@@ -128,13 +126,13 @@ add_var_i(GString * s, const char *key, signed char idx, const char *val)
 }
 
 static void
-as_schedule_handshake(void);
+as_schedule_handshake(struct config_as_host *as_host);
 
 static void
-as_submit(void);
+as_submit(struct config_as_host *as_host);
 
 static void
-as_schedule_submit(void);
+as_schedule_submit(struct config_as_host *as_host);
 
 static void as_increase_interval(void)
 {
@@ -217,7 +215,7 @@ static void as_song_cleanup(struct song *s, int free_struct)
 		free(s);
 }
 
-static void as_handshake_callback(size_t length, const char *response)
+static void as_handshake_callback(size_t length, const char *response, void *as_host)
 {
 	as_handshaking state = AS_COMMAND;
 	char *newline;
@@ -230,7 +228,7 @@ static void as_handshake_callback(size_t length, const char *response)
 	if (!length) {
 		g_warning(handshake timed out\n);
 		as_increase_interval();
-		as_schedule_handshake();
+		as_schedule_handshake(as_host);
 		return;
 	}
 
@@ -242,7 +240,7 @@ static void as_handshake_callback(size_t length, const char *response)
 			if (!ret) {
 g_free(next);
 as_increase_interval();
-as_schedule_handshake();
+as_schedule_handshake(as_host);
 return;
 			}
 
@@ -268,7 +266,7 @@ static void as_handshake_callback(size_t length, const char *response)
 
 			/* handshake was successful: see if we have
 			   songs to submit */
-			as_submit();
+			as_submit(as_host);
 			return;
 		}
 
@@ -279,7 +277,7 @@ static void as_handshake_callback(size_t length, const char *response)
 	}
 
 	as_increase_interval();
-	as_schedule_handshake();
+	as_schedule_handshake(as_host);
 }
 
 static void as_queue_remove_oldest(unsigned count)
@@ -292,7 +290,7 @@ static void as_queue_remove_oldest(unsigned count)
 	}
 }
 
-static void as_submit_callback(size_t length, const char *response)
+static void as_submit_callback(size_t length, const char *response, void *as_host)
 {
 	char *newline;
 
@@ -303,7 +301,7 @@ static void as_submit_callback(size_t length, const char *response)
 		g_submit_pending = 0;
 		g_warning(submit timed out\n);
 		as_increase_interval();
-		as_schedule_submit();
+		as_schedule_submit(as_host);
 		return;
 	}
 
@@ -329,15 +327,15 @@ static void as_submit_callback(size_t length, const char *response)
 
 
 		/* submit the next chunk (if there is some left) */
-		as_submit();
+		as_submit(as_host);
 		break;
 	case AS_SUBMIT_FAILED:
 		as_increase_interval();
-		as_schedule_submit();
+		as_schedule_submit(as_host);
 		break;
 	case AS_SUBMIT_HANDSHAKE:
 		g_state = AS_NOTHING;
-		as_schedule_handshake();
+		as_schedule_handshake(as_host);
 		break;
 	}
 }
@@ -403,7 +401,7 @@ static char *as_md5(const char *password, const char *timestamp)
 	return result;
 }
 
-static void as_handshake(void)
+static void as_handshake(struct config_as_host *as_host)
 {
 	GString *url;
 	char *timestr, *md5;
@@ -411,15 +409,15 @@ static void as_handshake(void)
 	g_state = AS_HANDSHAKING;
 
 	timestr = as_timestamp();
-	md5 = as_md5(file_config.password, timestr);
+	md5 = as_md5(as_host-password, timestr);
 
 	/* construct the handshake url. */
-	url = g_string_new(AS_HOST);
+	url = g_string_new(as_host-url);
 	first_var(url, hs, true);
 	add_var(url, p, 1.2);
 	add_var(url, c, AS_CLIENT_ID);
 	add_var(url, v, AS_CLIENT_VERSION);
-	add_var(url, u, file_config.username);
+	add_var(url, u, 

Re: [Musicpd-dev-team] mpdscribble

2009-04-06 Thread Max Kellermann
On 2009/04/06 20:17, Stephen Paul Weber singpol...@singpolyma.net wrote:
 More and more web services are starting to implement the
 audioscrobbler API (jamendo.com, libre.fm).  I would like to scrobble
 all my mpd listens to multiple of these services with mpdscribble.  As
 it is, I can change the host in the config, which works, but then I can
 only switch providers, I cannot use more than one.

So you have multiple MPD installations, and you want to scrobble all
of them?

 Looking at the source it seems this would not be too difficult to
 implement.  I may be able to figure it out (though I'm not familiar with
 glib), but thought I would ask the list first to see if someone has a
 better idea about this.

Sure this is possible, but it will make the code more complex and less
readable.  I'm not sure if this is a good idea.  Why not run a
separate mpdscribble on each MPD server?

Max

--
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
___
Musicpd-dev-team mailing list
Musicpd-dev-team@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team


Re: [Musicpd-dev-team] mpdscribble

2009-04-06 Thread Jeffrey Middleton
I think the idea was to send the audioscrobbler data to multiple servers,
not to connect to multiple instances of mpd - this got confused by the use
of the word host in the sample config.  I think the idea would be more
something like this (using similar format to mpdconf):

scrobbleserver {
server = jamendo.com
user = ...
password = ...
}
scrobbleserver {
...
}
...other mpdscribble options...

Obviously the format of the config can be changed.  Is this the
functionality you had in mind?

Jeffrey

On Mon, Apr 6, 2009 at 2:44 PM, Max Kellermann m...@duempel.org wrote:

 On 2009/04/06 20:17, Stephen Paul Weber singpol...@singpolyma.net wrote:
  More and more web services are starting to implement the
  audioscrobbler API (jamendo.com, libre.fm).  I would like to scrobble
  all my mpd listens to multiple of these services with mpdscribble.  As
  it is, I can change the host in the config, which works, but then I can
  only switch providers, I cannot use more than one.

 So you have multiple MPD installations, and you want to scrobble all
 of them?

  Looking at the source it seems this would not be too difficult to
  implement.  I may be able to figure it out (though I'm not familiar with
  glib), but thought I would ask the list first to see if someone has a
  better idea about this.

 Sure this is possible, but it will make the code more complex and less
 readable.  I'm not sure if this is a good idea.  Why not run a
 separate mpdscribble on each MPD server?

 Max


 --
 This SF.net email is sponsored by:
 High Quality Requirements in a Collaborative Environment.
 Download a free trial of Rational Requirements Composer Now!
 http://p.sf.net/sfu/www-ibm-com
 ___
 Musicpd-dev-team mailing list
 Musicpd-dev-team@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team

--
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com___
Musicpd-dev-team mailing list
Musicpd-dev-team@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team


Re: [Musicpd-dev-team] mpdscribble

2009-04-06 Thread Max Kellermann
On 2009/04/07 01:39, Stephen Paul Weber singpol...@singpolyma.net wrote:
 Yes, this is exactly the functionality I had in mind :)

OK, understand.  While I'm not interested in that feature, I
understand others are, and I'd be willing to merge that.

Give the configuration file format a good thought when you hack on
that: currently, mpdscribble uses GKeyFile to parse the configuration
file in .INI style.  The parser invocation contains a hack, because
historically, there is no section name in the file.  We could say that
users who want to use multiple scrobbler servers have to explicitly
add the section name.

What you could do now is make one INI section per scrobbling server.
Example:

 [mpdscribble]
 log=syslog
 host=localhost
 scrobblers=foo bar

 [foo]
 username=foo
 password=secret
 server=http://foo.fm

 [bar]
 username=bar
 password=secret
 server=http://bar.fm

Be sure that old configuration files continue to work.

Max

--
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
___
Musicpd-dev-team mailing list
Musicpd-dev-team@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team


[Musicpd-dev-team] mpdscribble-0.14 released

2008-12-25 Thread Avuton Olrich
This release has the normal bugfixes, cleans up the source code to be
much more readable, supports MPD's idle command, uses more glib code,
logs to syslog, resubmits now playing after re-handshake and much
more.


Pick it up at:
http://downloads.sourceforge.net/musicpd/mpdscribble-0.14.tar.bz2

Report bugs at:
http://musicpd.org/mantis/
--
Avuton Olrich (7):
  Move source and header files under the src/ directory.
  Make a proper doc/ directory
  Add the makefile template
  Update COPYING
  Add setup.sh to the EXTRA_DIST so it gets distributed with the tarball.
  Fix distcheck by giving the leading directory for libmpdclient's
header when it is included.
  mpdscribble version 0.14

Max Kellermann (78):
  configure.ac: set version number to 0.14~git
  .gitignore update
  reindent all files
  as: converted runtime checks to assertions
  as: use unsigned integers
  as: don't allocate empty strings
  as: reset interval after successful submit
  as: don't duplicate twice in as_handshake_callback()
  as: return from as_handshake_callback() on success
  as: reset interval after handshake response was parsed completely
  as: removed AS_SUBMIT_NOP
  as: don't reset g_state in as_parse_submit_response()
  as: set state NOTHING/READY at the beginning of function
  as: make as_parse_handshake_response() return a bool
  as: abort earlier on handshake error
  as: pass length to as_parse_submit_response()
  as: parse only the first submit response line
  use GLib's main loop
  conn: don't parse URI with soup_uri_new()
  submit song when stopped
  removed the submitted variable
  file: make the logfile unbuffered
  splitted the timer_mpd_update() function
  moved timer_mpd_update() to lmc.c
  lmc: use a second-granularity timer
  lmc: reconnect with a separate timer
  libmpdclient: don't clear notify_cb before mpd_readChanges()
  lmc: support MPD's idle command
  lmc: replace '||' with '' in libmpdclient error check
  as: reuse as_submit_callback() for now playing
  moved journal code to journal.c
  journal: renamed functions from file/cache to journal
  journal: return from journal_read() if file cannot be read
  journal: read and parse line by line
  journal: parse without regular expressions
  journal: close the journal file after reading
  lmc: replace '||' with '' in libmpdclient error check
  journal: journal_read() returns void, journal_write() returns bool
  journal: convert file_saved_count to a boolean flag
  as: use GQueue for the submit queue
  journal: commit song on the next artist line
  journal: append to queue instead of as_songchange()
  lmc: free current_song on shutdown
  as: resubmit now playing after re-handshake
  NEWS: added missing 0.14 changes
  main: moved code to setup_signals()
  main: set up signal handlers with sigaction()
  ignore SIGPIPE
  misc: removed now()
  log: new logging subsystem based on GLib logging
  use GLib logging
  as: fall back to libgcrypt for MD5 hashing
  as: use soup_uri_encode() on GLib  2.16
  lmc: check if g_timeout_add_seconds() is available
  Makefile.am: no recursive makefiles
  Makefile.am: added sparse-check target
  lmc: use NULL instead of 0 for pointers
  log: moved file_open_logfile() from file.c
  libmpdclient: removed example.c
  log: moved code to log_init_file()
  log: added support for syslog
  close stdin
  close stdout and stderr
  file: removed file_open_logfile() prototype
  file: make file_expand_tilde() static
  file: moved macros from header to file.c
  file: moved code to cmdline.c
  file: moved code to load_config_file()
  file: missing config file is a fatal error
  file: parse command line arguments before config file
  cmdline: use GLib's command line parser
  as: fixed GLib version check for GLib = 3.0
  cmdline: exit(0) after --version
  cmdline: don't print AS client id in --version
  doc: added a sample mpdscribble.conf
  added new INSTALL file with compiling instructions
  deleted setup.sh
  README: miscellaneous updates, new formatting
-- 
avuton
--
|  (\_/)  This is Bunny. Copy and paste Bunny
| (='.'=) into your signature to help him gain
| ()_() world domination.

--
___
Musicpd-dev-team mailing list
Musicpd-dev-team@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team


[Musicpd-dev-team] mpdscribble v0.13 released

2008-12-19 Thread Max Kellermann
Hi,

after I have taken over the mpdscribble project last week, I have
merged lots of patches which were floating around the internet, and I
have created a bunch of new ones.  The most important change is the
adoption of the last.fm protocol 1.2 (now playing support), thanks
to Christoph Leuzinger for the patch.

Here's the full changelog:

mpdscribble 0.13 - 2008-12-19
  * libmpdclient update from upstream:
- suport for Unix domain sockets
- try all IP addresses from the resolver, resulting in better IPv6
support
- smaller buffers, less memory usage
  * support the Last.fm Submissions Protocol v1.2
- including support for 'now playing'
- submit songs when they are finished
- ignore seeking
- now really support crossfading
- support streaming
  * HTTP proxy support
  * support for libsoup 2.4
  * fixed several crash bugs
  * fixed gcc warnings

Grab it at sourceforge:

 http://downloads.sourceforge.net/musicpd/mpdscribble-0.13.tar.gz
 http://downloads.sourceforge.net/musicpd/mpdscribble-0.13.tar.bz2

If you find a bug, please submit a bug report:

 http://www.musicpd.org/mantis

Happy scrobbling!

Max

--
___
Musicpd-dev-team mailing list
Musicpd-dev-team@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team