# HG changeset patch # User Drew Perttula # Date 2012-06-15 01:57:52 # Node ID 440d116ba5df7a1f2782d6ce3525862b63bd144a # Parent 9cd3a28d69292e344a414bfd7c3dec26453fc77c asco: add switcher to pick the pulseaudio sink Ignore-this: 57af0bce1573ecefc1536fe98c301a8f diff --git a/bin/movesinks b/bin/movesinks new file mode 100644 --- /dev/null +++ b/bin/movesinks @@ -0,0 +1,14 @@ +#!/bin/bash + +# from http://askubuntu.com/questions/71863/how-to-change-pulseaudio-sink-with-pacmd-set-default-sink-during-playback/113322#113322 + +echo "Setting default sink to: $1"; +pacmd set-default-sink $1 +pacmd list-sink-inputs | grep index | while read line +do +echo "Moving input: "; +echo $line | cut -f2 -d' '; +echo "to sink: $1"; +pacmd move-sink-input `echo $line | cut -f2 -d' '` $1 + +done diff --git a/light9/ascoltami/index.html b/light9/ascoltami/index.html --- a/light9/ascoltami/index.html +++ b/light9/ascoltami/index.html @@ -29,6 +29,9 @@ + + + todo: go button actions, display next action @@ -118,6 +121,8 @@ $("#cmd-go").click(function () { // todo }); + $("#cmd-out0").click(function () { $.post("output", tojs({sink: "0"})); }) + $("#cmd-out1").click(function () { $.post("output", tojs({sink: "1"})); }) var pendingSlide = false; $("#timeSlider").slider({ diff --git a/light9/ascoltami/webapp.py b/light9/ascoltami/webapp.py --- a/light9/ascoltami/webapp.py +++ b/light9/ascoltami/webapp.py @@ -1,4 +1,4 @@ -import web, json, socket +import web, json, socket, subprocess from twisted.python.util import sibpath from light9.namespaces import L9 from light9.showconfig import getSongsFromShow, songOnDisk @@ -93,6 +93,11 @@ class seekPlayOrPause(object): player.seek(data['t']) player.resume() +class output(object): + def POST(self): + d = json.loads(web.data()) + subprocess.check_call(["bin/movesinks", str(d['sink'])]) + def makeWebApp(theApp): global app app = theApp @@ -102,6 +107,7 @@ def makeWebApp(theApp): r"/song", "songResource", r"/songs", "songs", r"/seekPlayOrPause", "seekPlayOrPause", + r"/output", "output", ) return web.application(urls, globals(), autoreload=False)