Christophe Weblog Wiki Code Publications Music
squeeze-el.git
5 years agoattempt to do the right thing for common cases of unselected players master
Christophe Rhodes [Fri, 12 Dec 2014 17:29:12 +0000 (17:29 +0000)]
attempt to do the right thing for common cases of unselected players

5 years agoconvenience for squeeze connection parameters
Christophe Rhodes [Fri, 12 Dec 2014 17:28:29 +0000 (17:28 +0000)]
convenience for squeeze connection parameters

also define a `squeeze-control-reconnect' command

5 years agoexperimental support for listing albums
Christophe Rhodes [Sun, 7 Dec 2014 20:42:37 +0000 (20:42 +0000)]
experimental support for listing albums

it works (ILTWIS"W") for me.  It might not eat your hard disk.

5 years agoplayer commands
Christophe Rhodes [Sun, 7 Dec 2014 20:41:44 +0000 (20:41 +0000)]
player commands

just enough to do next and previous track, and to specify which player
should be operated on

5 years agonotifications on new song
Christophe Rhodes [Sun, 7 Dec 2014 20:39:25 +0000 (20:39 +0000)]
notifications on new song

it's rough and ready but does work

5 years agoupdate syncgroups parser for new server
Christophe Rhodes [Sun, 7 Dec 2014 20:38:11 +0000 (20:38 +0000)]
update syncgroups parser for new server

no attempt at backwards compatibility, sorry

5 years agoallow squeeze completion on known squeeze player ids
Christophe Rhodes [Mon, 1 Dec 2014 16:34:46 +0000 (16:34 +0000)]
allow squeeze completion on known squeeze player ids

5 years agohandle the case when there are zero connected players
Christophe Rhodes [Thu, 30 Oct 2014 18:32:07 +0000 (18:32 +0000)]
handle the case when there are zero connected players

5 years agomuch better `squeeze-unhex-and-decode-utf8-string'
Christophe Rhodes [Sat, 25 Oct 2014 21:28:33 +0000 (22:28 +0100)]
much better `squeeze-unhex-and-decode-utf8-string'

It turns out that `url-unhex-string' uses the multiple-concat strategy
that I just removed from `squeeze-update-state', which ends up scaling
quadratically in the size of the input.  This is bad, particularly
when we are working (as I am) with large output string such as
resulting from an albums query.

5 years agoslightly better `squeeze-update-state'
Christophe Rhodes [Sat, 25 Oct 2014 21:26:31 +0000 (22:26 +0100)]
slightly better `squeeze-update-state'

use a temporary buffer rather than multiple calls to `concat'

5 years agoinclude underscore as a valid character in plist keys
Christophe Rhodes [Tue, 21 Oct 2014 21:04:26 +0000 (22:04 +0100)]
include underscore as a valid character in plist keys

5 years agowhitespace
Christophe Rhodes [Tue, 21 Oct 2014 16:48:22 +0000 (17:48 +0100)]
whitespace

5 years agohelpful `squeeze-parse-count' function
Christophe Rhodes [Tue, 21 Oct 2014 16:48:11 +0000 (17:48 +0100)]
helpful `squeeze-parse-count' function

use it in `squeeze-parse-players-line'

5 years agomanage messages split into multiple chunks
Christophe Rhodes [Tue, 21 Oct 2014 16:40:32 +0000 (17:40 +0100)]
manage messages split into multiple chunks

buffer content until we find at least one newline character.
Technically this doesn't handle multiple messages ending in an
incomplete one; as proof of concept it'll do.

5 years agoa couple of robustification fixes
Christophe Rhodes [Thu, 16 Oct 2014 13:33:19 +0000 (14:33 +0100)]
a couple of robustification fixes

- let squeeze-string-plistify handle a nil `end' parameter
- decode the url-unhexified string as utf-8

5 years agobetter interface for squeeze and squeeze-control
Christophe Rhodes [Thu, 16 Oct 2014 13:19:49 +0000 (14:19 +0100)]
better interface for squeeze and squeeze-control

address and port arguments, and read them from the user if a prefix
argument is given

5 years agohandle new? behaviour of %s given a character
Christophe Rhodes [Thu, 16 Oct 2014 13:17:08 +0000 (14:17 +0100)]
handle new? behaviour of %s given a character

I'm sure it worked before, but now it prints the integer, not a
one-element character.  Use an explicit call to `string' to fix it.

5 years agosimplify squeeze-mixer-compute-bar a bit
Christophe Rhodes [Sun, 10 Aug 2014 07:25:59 +0000 (08:25 +0100)]
simplify squeeze-mixer-compute-bar a bit

compute a quotient rather than repeated comparisons with fractional
part

5 years agoprovide squeeze
Christophe Rhodes [Fri, 25 Jul 2014 18:34:23 +0000 (19:34 +0100)]
provide squeeze

6 years agodecode utf-8 as well as unhex in comint network stream output
Christophe Rhodes [Mon, 21 Apr 2014 20:56:55 +0000 (21:56 +0100)]
decode utf-8 as well as unhex in comint network stream output

6 years agoclean up squeze-control-refresh
Christophe Rhodes [Sat, 19 Apr 2014 18:22:51 +0000 (19:22 +0100)]
clean up squeze-control-refresh

handle accepting process output in a separate function

6 years agouse string-to-number rather than parse-integer
Christophe Rhodes [Tue, 8 Apr 2014 21:03:53 +0000 (22:03 +0100)]
use string-to-number rather than parse-integer

6 years agosave point within squeeze-control-display-players
Christophe Rhodes [Sat, 5 Apr 2014 20:09:10 +0000 (21:09 +0100)]
save point within squeeze-control-display-players

6 years agocode cleanup
Christophe Rhodes [Sat, 5 Apr 2014 13:04:18 +0000 (14:04 +0100)]
code cleanup

new squeeze-send-string function to handle sending things to the
inferior-squeeze

6 years agostart working on changing playlists
Christophe Rhodes [Sat, 5 Apr 2014 12:53:03 +0000 (13:53 +0100)]
start working on changing playlists

for now, just simple numeric favourites, through a bit of a sucky
interface.  Baby steps...

6 years agoactually add the completion function to completions
Christophe Rhodes [Sat, 5 Apr 2014 12:52:26 +0000 (13:52 +0100)]
actually add the completion function to completions

6 years agorefresh syncgroups
Christophe Rhodes [Sun, 30 Mar 2014 20:36:13 +0000 (21:36 +0100)]
refresh syncgroups

6 years agominimal support for syncgroups
Christophe Rhodes [Sun, 30 Mar 2014 20:28:33 +0000 (21:28 +0100)]
minimal support for syncgroups

6 years agoadd README
Christophe Rhodes [Sun, 30 Mar 2014 19:28:45 +0000 (20:28 +0100)]
add README

6 years agomouse events for mixer sliders
Christophe Rhodes [Wed, 26 Mar 2014 11:07:02 +0000 (11:07 +0000)]
mouse events for mixer sliders

Sure, why not?

6 years agoadd a keymap to the mixer bar
Christophe Rhodes [Tue, 25 Mar 2014 16:22:11 +0000 (16:22 +0000)]
add a keymap to the mixer bar

also cleverness with intangible text property to avoid having
a useless space at the end of lines

6 years agoclamp volume to between 0 and 100
Christophe Rhodes [Tue, 25 Mar 2014 09:30:54 +0000 (09:30 +0000)]
clamp volume to between 0 and 100

doesn't handle muted players yet

6 years agowe might not always get a squeeze-playerid property
Christophe Rhodes [Mon, 24 Mar 2014 21:29:46 +0000 (21:29 +0000)]
we might not always get a squeeze-playerid property

Don't send a player request with nil as the mac address

6 years agooh duh, + is url-encoded
Christophe Rhodes [Mon, 24 Mar 2014 21:28:03 +0000 (21:28 +0000)]
oh duh, + is url-encoded

No wonder volume down was working fine and volume up not so well

6 years agograb bag of extra goodness
Christophe Rhodes [Mon, 24 Mar 2014 21:11:05 +0000 (21:11 +0000)]
grab bag of extra goodness

* legal defface forms for face definitions
* only redisplay players once when refreshing
* better factoring for parsing player events
* mixer bars and volume control

6 years agoimprove squeeze-control startup
Christophe Rhodes [Mon, 24 Mar 2014 09:16:12 +0000 (09:16 +0000)]
improve squeeze-control startup

6 years agoseparate out display and state management
Christophe Rhodes [Sun, 23 Mar 2014 11:10:36 +0000 (11:10 +0000)]
separate out display and state management

attempt to keep track of power states, and display them on change.  We
don't handle all power change messages yet (I think) so this isn't
complete but at least we handle our own power toggles

some other scattered fixes

6 years agodisplay power state in squeeze control
Christophe Rhodes [Fri, 21 Mar 2014 20:11:18 +0000 (20:11 +0000)]
display power state in squeeze control

still needs an explicit refresh but otherwise OK

6 years agodon't snarf newline characters in messages
Christophe Rhodes [Fri, 21 Mar 2014 20:10:05 +0000 (20:10 +0000)]
don't snarf newline characters in messages

6 years agominimally useful squeeze control mode
Christophe Rhodes [Fri, 21 Mar 2014 19:33:56 +0000 (19:33 +0000)]
minimally useful squeeze control mode

I can turn players on and off!  Yes!

6 years agoinitial commit
Christophe Rhodes [Thu, 20 Mar 2014 09:57:30 +0000 (09:57 +0000)]
initial commit

basic comint-based mode for interacting with the Squeezebox (aka
Logitech Media Server) CLI