Changeset - 519adb4e539f
[Not reviewed]
default
0 4 0
drewp@bigasterisk.com - 15 years ago 2010-06-13 07:56:06
drewp@bigasterisk.com
asco startup improvements
Ignore-this: 41a4ce074e02e64166164813879380b
4 files changed with 5 insertions and 6 deletions:
0 comments (0 inline, 0 general)
bin/ascoltami2
Show inline comments
 
#!/usr/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.webapp import makeApp
 
from light9 import networking, showconfig
 

	
 
logging.basicConfig()
 
log = logging.getLogger()
 
logging.basicConfig()
 
gobject.threads_init()
 

	
 
parser = optparse.OptionParser()
 
parser.add_option('--show',
 
    help='show URI, like http://light9.bigasterisk.com/show/dance2008')
 
parser.add_option("-v", "--verbose", action="store_true",
 
                  help="logging.DEBUG")
 
graph = showconfig.getGraph()
 
(options, args) = parser.parse_args()
 

	
 

	
 
log.setLevel(logging.DEBUG if options.verbose else logging.INFO)
 

	
 
graph = showconfig.getGraph()
 
if not options.show:
 
    raise ValueError("missing --show http://...")
 
        
 
graph = showconfig.getGraph()
 
player = Player()
 

	
 
# the cherrypy server would wedge when vidref pounds on it; this
 
# one seems to run
 
thread.start_new(web.httpserver.runbasic,
 
                 (makeApp(player, graph, URIRef(options.show)).wsgifunc(),
 
                  ('0.0.0.0', networking.musicPort())))
 

	
 
mainloop = gobject.MainLoop()
 
mainloop.run()
light9/ascoltami/index.html
Show inline comments
 
@@ -20,25 +20,26 @@
 
    <div class="timeRow">
 
      <div id="timeSlider"/>
 
    </div>
 

	
 
    <div class="commands">
 
      <button id="cmd-stop" class="playMode">Stop<div class="key">C-s</div></button>
 
      <button id="cmd-play" class="playMode">Play <div class="key">C-p</div></button>
 
      <button id="cmd-intro">Skip intro <div class="key">C-i</div></button>
 
      <button id="cmd-post">Skip to Post <div class="key">C-t</div></button>
 
      <button id="cmd-go">Go  <div class="key">space</div></button>
 
    </div>
 

	
 
todo: go button actions, display next action
 
    todo: go button actions, display next action
 
    <a href="">reload</a>
 

	
 
<script type="text/javascript">
 
// <![CDATA[
 
$(function () {
 

	
 
    var times = { // need to get these from server
 
	intro: 4,
 
	post: 4
 
    };
 

	
 
    var currentDuration = 0;
 
    var currentHighlightedSong = "";
light9/ascoltami/player.py
Show inline comments
 
@@ -55,24 +55,25 @@ class Player(object):
 
            gst.FORMAT_TIME,
 
            gst.SEEK_FLAG_FLUSH | gst.SEEK_FLAG_ACCURATE | gst.SEEK_FLAG_SKIP,
 
            t * gst.SECOND)
 
        self.playStartTime = time.time()
 

	
 
    def setSong(self, songUri):
 
        """
 
        uri like file:///my/proj/light9/show/dance2010/music/07.wav
 
        """
 
        log.info("set song to %r" % songUri)
 
        self.pipeline.set_state(gst.STATE_READY)
 
        self.pipeline.set_property("uri", songUri)
 
        # todo: don't have any error report yet if the uri can't be read
 
        self.pipeline.set_state(gst.STATE_PLAYING)
 
        self.playStartTime = time.time()
 

	
 
    def currentTime(self):
 
        try:
 
            cur, _format = self.playbin.query_position(gst.FORMAT_TIME)
 
        except gst.QueryError:
 
            return 0
 
        return cur / gst.SECOND
 

	
 
    def duration(self):
 
        try:
light9/ascoltami/webapp.py
Show inline comments
 
@@ -24,25 +24,24 @@ class timeResource(object):
 
    def POST(self):
 
        params = jsonlib.read(web.data(), use_float=True)
 
        if params.get('pause', False):
 
            player.pause()
 
        if params.get('resume', False):
 
            player.resume()
 
        if 't' in params:
 
            player.seek(params['t'])
 
        return "ok"
 

	
 
class songs(object):
 
    def GET(self):
 

	
 
        playList = graph.value(show, L9['playList'])
 
        if not playList:
 
            raise ValueError("%r has no l9:playList" % show)
 
        songs = list(graph.items(playList))
 

	
 
        
 
        web.header("Content-type", "application/json")
 
        return jsonlib.write({"songs" : [
 
            {"uri" : s,
 
             "path" : graph.value(s, L9['showPath']),
 
             "label" : graph.label(s)} for s in songs]})
 

	
0 comments (0 inline, 0 general)