+++
title = "Rack und XMMS2"
date = "2009-06-17T22:13:00+00:00"
author = "Gibheer"
draft = false
+++

Ich hab heute mal ein kleines bischen mit Rack und Ruby rumgespielt und
dabei ist ein kleines Script rausgekommen, mit dem es möglich ist, XMMS2
per Weboberfläche zu steuern.

Es ist keineswegs komplett oder wirklich benutzbar, aber dafür hab ich
das auch in irb zusammen geschrieben und war nach 2h fertig

<source:ruby>\
require ‘rubygems’\
require ‘rack’\
require ‘xmmsclient’

\$xmms2 = Xmms::Client.new ‘rackclient’\
\$xmms2.connect ‘path-to-ipc’

Rack::Handler::WEBrick.run lambda {|env|\
 body = “\<html\>”\
 if env[‘PATH\_INFO’] == ‘/next’\
 \$xmms2.playlist\_set\_next\_rel(1).wait.value\
 \$xmms2.playback\_tickle.wait\
 sleep 0.3\
 end\
 mediaentry = \$xmms2.medialib\_get\_info(\
 \$xmms2.playback\_current\_id.wait.value\
 ).wait.value\
 body \<\< “\#{\
 mediaentry[:artist][:”plugin/vorbis“]\
 } - \#{\
 mediaentry[:title][:”plugin/vorbis“]\
 }”\
 body \<\< ‘<br><a href="/next">naechster</a>’\
 body \<\< ‘\</html\>’\
 [200, {’Content-Type’ =\> ‘text/html’}, body]\
}, :Port =\> 8080\
</source>
