Files
@ 440d116ba5df
Branch filter:
Location: light9/bin/ascoltami2 - annotation
440d116ba5df
2.0 KiB
text/plain
asco: add switcher to pick the pulseaudio sink
Ignore-this: 57af0bce1573ecefc1536fe98c301a8f
Ignore-this: 57af0bce1573ecefc1536fe98c301a8f
a301a0039c66 1156d3531327 1156d3531327 1156d3531327 1156d3531327 94039df5cdd9 9ec0396c6f1f 1156d3531327 1156d3531327 865532790e62 865532790e62 865532790e62 865532790e62 865532790e62 94039df5cdd9 94039df5cdd9 94039df5cdd9 94039df5cdd9 94039df5cdd9 94039df5cdd9 1156d3531327 94039df5cdd9 94039df5cdd9 94039df5cdd9 94039df5cdd9 94039df5cdd9 94039df5cdd9 1156d3531327 94039df5cdd9 94039df5cdd9 94039df5cdd9 94039df5cdd9 94039df5cdd9 94039df5cdd9 1156d3531327 539de47b68cc 539de47b68cc 94039df5cdd9 94039df5cdd9 94039df5cdd9 94039df5cdd9 94039df5cdd9 94039df5cdd9 94039df5cdd9 94039df5cdd9 94039df5cdd9 94039df5cdd9 94039df5cdd9 1156d3531327 94039df5cdd9 94039df5cdd9 46d319974176 94039df5cdd9 94039df5cdd9 94039df5cdd9 1156d3531327 94039df5cdd9 94039df5cdd9 94039df5cdd9 94039df5cdd9 94039df5cdd9 94039df5cdd9 94039df5cdd9 46d319974176 | #!bin/python
import web, thread, gobject, sys, optparse, logging
from rdflib import URIRef
sys.path.append(".")
from light9.ascoltami.player import Player
from light9.ascoltami.playlist import Playlist, NoSuchSong
from light9.ascoltami.webapp import makeWebApp
from light9 import networking, showconfig
import BaseHTTPServer
BaseHTTPServer.BaseHTTPRequestHandler.log_message = \
lambda self, format, *args: None
class App:
def __init__(self, graph, show):
self.graph = graph
self.player = Player(onEOS=self.onEOS)
self.show = show
self.playlist = Playlist.fromShow(graph, show)
def run(self, musicPort):
# the cherrypy server would wedge when vidref pounds on it; this
# one seems to run
thread.start_new(web.httpserver.runbasic,
(makeWebApp(self).wsgifunc(),
('0.0.0.0', musicPort)))
mainloop = gobject.MainLoop()
mainloop.run()
def onEOS(self, song):
self.player.pause()
self.player.seek(0)
# stop here for now- no go-button behavior
return
try:
nextSong = self.playlist.nextSong(song)
except NoSuchSong: # we're at the end of the playlist
return
self.player.setSong(nextSong, play=False)
if __name__ == "__main__":
logging.basicConfig()
log = logging.getLogger()
gobject.threads_init()
parser = optparse.OptionParser()
parser.add_option('--show',
help='show URI, like http://light9.bigasterisk.com/show/dance2008', default=showconfig.showUri())
parser.add_option("-v", "--verbose", action="store_true",
help="logging.DEBUG")
(options, args) = parser.parse_args()
log.setLevel(logging.DEBUG if options.verbose else logging.INFO)
if not options.show:
raise ValueError("missing --show http://...")
graph = showconfig.getGraph()
app = App(graph, URIRef(options.show))
app.run(networking.musicPlayer.port)
|