Began work on random playback
This commit is contained in:
parent
8b2263b068
commit
75ae830ef2
|
@ -139,7 +139,7 @@ def listlib():
|
||||||
write("Current: "+curname)
|
write("Current: "+curname)
|
||||||
|
|
||||||
|
|
||||||
def getpath(dbid, curtrk):
|
def getpath(dbid):
|
||||||
curlib = str( settings.get("curlib") )
|
curlib = str( settings.get("curlib") )
|
||||||
|
|
||||||
selr = sql.Select("path","library","id="+curlib)
|
selr = sql.Select("path","library","id="+curlib)
|
||||||
|
@ -147,6 +147,4 @@ def getpath(dbid, curtrk):
|
||||||
|
|
||||||
selt = sql.Select("path","track","id="+str(dbid))
|
selt = sql.Select("path","track","id="+str(dbid))
|
||||||
track = selt.execute().fetchone()[0]
|
track = selt.execute().fetchone()[0]
|
||||||
# write(root)
|
return root+track
|
||||||
# write(track)
|
|
||||||
write(root+track)
|
|
|
@ -63,4 +63,6 @@ def init():
|
||||||
def close():
|
def close():
|
||||||
global pipeline
|
global pipeline
|
||||||
if not pipeline == None:
|
if not pipeline == None:
|
||||||
pipeline.set_state(gst.STATE_NULL)
|
pause()
|
||||||
|
pipeline.set_state(gst.STATE_NULL)
|
||||||
|
pipeline = None
|
|
@ -23,6 +23,8 @@ class Plugin(plugin.Plugin):
|
||||||
write("Usage: music load track")
|
write("Usage: music load track")
|
||||||
join = ' '
|
join = ' '
|
||||||
path = join.join(args)
|
path = join.join(args)
|
||||||
|
write("Loading: "+path)
|
||||||
|
gstreamer.close()
|
||||||
gstreamer.load(path)
|
gstreamer.load(path)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ from bt import sql
|
||||||
from ct import db
|
from ct import db
|
||||||
import settings
|
import settings
|
||||||
|
|
||||||
from manager import run
|
import manager
|
||||||
|
|
||||||
|
|
||||||
class Plugin(plugin.Plugin):
|
class Plugin(plugin.Plugin):
|
||||||
|
@ -44,16 +44,24 @@ class Plugin(plugin.Plugin):
|
||||||
|
|
||||||
sel = sql.Select("track","libtrack","library="+str(curlib))
|
sel = sql.Select("track","libtrack","library="+str(curlib))
|
||||||
rows = sel.execute().fetchall()
|
rows = sel.execute().fetchall()
|
||||||
run("next",[rows[nxttrk][0], nxttrk])
|
manager.run("next",[rows[nxttrk][0], nxttrk])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def run(self, args=None):
|
def run(self, args=None):
|
||||||
|
# args[0] : database track ID
|
||||||
|
# args[1] : new current track number
|
||||||
|
|
||||||
if args==None or len(args)==0:
|
if args==None or len(args)==0:
|
||||||
signal.emit("next")
|
signal.emit("next")
|
||||||
return
|
return
|
||||||
elif len(args) == 1:
|
elif len(args) == 1:
|
||||||
write("Usage:" + self.usage)
|
write("Usage:" + self.usage)
|
||||||
# db ID, list index
|
|
||||||
path = db.getpath(args[0],args[1])
|
path = db.getpath(args[0])
|
||||||
|
|
||||||
|
settings.set("curtrk",args[1])
|
||||||
|
manager.run("music",["load",path])
|
||||||
|
manager.run("music",["play"])
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
__author__="bjschuma"
|
|
||||||
__date__ ="$Jan 9, 2010 8:07:29 PM$"
|
|
||||||
|
|
||||||
|
|
||||||
__all__ = ["rand"]
|
|
|
@ -1,5 +0,0 @@
|
||||||
__author__="bjschuma"
|
|
||||||
__date__ ="$Jan 16, 2010 12:46:48 PM$"
|
|
||||||
|
|
||||||
|
|
||||||
__all__ = ["listPage"]
|
|
|
@ -1,46 +0,0 @@
|
||||||
#! /usr/bin/python
|
|
||||||
|
|
||||||
# To change this template, choose Tools | Templates
|
|
||||||
# and open the template in the editor.
|
|
||||||
|
|
||||||
__author__="bjschuma"
|
|
||||||
__date__ ="$Jan 16, 2010 12:47:28 PM$"
|
|
||||||
|
|
||||||
import gtk
|
|
||||||
from guiGTK import *
|
|
||||||
from bt.message import *
|
|
||||||
|
|
||||||
|
|
||||||
from tools import database
|
|
||||||
|
|
||||||
def library():
|
|
||||||
select = "track.name, artist.name, album.name"
|
|
||||||
frm = "track,artist,album"
|
|
||||||
where = "track.artist=artist.id AND track.album=album.id"
|
|
||||||
return database.select(select,frm,where).fetchall()
|
|
||||||
|
|
||||||
|
|
||||||
class ListPage(box.VBox):
|
|
||||||
def __init__(self,name):
|
|
||||||
box.VBox.__init__(self)
|
|
||||||
self.labelText = name
|
|
||||||
self.label = label.Label(self.labelText)
|
|
||||||
self.label.rotate(90)
|
|
||||||
self.list = list.List(gtk.ListStore(str,str,str), ["Title", "Artist", "Album"])
|
|
||||||
self.list.rules(True)
|
|
||||||
self.pack(self.list,True,True)
|
|
||||||
if name == "Library":
|
|
||||||
self.fromLibrary()
|
|
||||||
self.setLabel()
|
|
||||||
|
|
||||||
|
|
||||||
def fromLibrary(self):
|
|
||||||
for track in library():
|
|
||||||
self.list.insert(track)
|
|
||||||
|
|
||||||
|
|
||||||
def setLabel(self):
|
|
||||||
text = self.labelText + " ("
|
|
||||||
text += str( self.list.count() )
|
|
||||||
text += ")"
|
|
||||||
self.label.change(text)
|
|
|
@ -1,59 +0,0 @@
|
||||||
# This is a simple test plugin, to make sure everything is working
|
|
||||||
|
|
||||||
__author__="bjschuma"
|
|
||||||
__date__ ="$Jan 16, 2010 12:18:10 PM$"
|
|
||||||
|
|
||||||
|
|
||||||
global name, app, type, path, opt
|
|
||||||
name = "test"
|
|
||||||
app = "scion"
|
|
||||||
type = "extra"
|
|
||||||
path = ""
|
|
||||||
opt = []
|
|
||||||
|
|
||||||
from bt.message import write
|
|
||||||
from manager import manager
|
|
||||||
import settings
|
|
||||||
from guiGTK import *
|
|
||||||
from guiOGTK import *
|
|
||||||
|
|
||||||
|
|
||||||
global window
|
|
||||||
global vbox
|
|
||||||
global bar
|
|
||||||
global tabs
|
|
||||||
|
|
||||||
|
|
||||||
# Called when the plugin needs to perform some action
|
|
||||||
def run(args):
|
|
||||||
if args == None:
|
|
||||||
manager.run("sgtk")
|
|
||||||
else:
|
|
||||||
global window, vbox, bar, tabs
|
|
||||||
window = args[0]
|
|
||||||
vbox = args[1]
|
|
||||||
bar = args[2]
|
|
||||||
window.resize(settings.get("winsize"))
|
|
||||||
tabs = tabs.Tabs()
|
|
||||||
vbox.pack(tabs,True,True)
|
|
||||||
library = listPage.ListPage("Library")
|
|
||||||
tabs.append(library,library.label)
|
|
||||||
tabs.tabpos("left")
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Called every time the plugin is enabled
|
|
||||||
def open():
|
|
||||||
# Enable scion GTK when we are enabled
|
|
||||||
manager.run("enable", ["sgtk"])
|
|
||||||
settings.set("gtkfuncs",run)
|
|
||||||
settings.set("winsize",(800,600))
|
|
||||||
|
|
||||||
|
|
||||||
# Called every time the plugin is stopped
|
|
||||||
def close():
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
def help():
|
|
||||||
return "Ocarina GTK functions"
|
|
|
@ -1,55 +1,42 @@
|
||||||
# This is a simple test plugin, to make sure everything is working
|
# Basic plugin class
|
||||||
|
|
||||||
__author__="bjschuma"
|
__author__="bjschuma"
|
||||||
__date__ ="$Jan 2, 2010 1:14:04 PM$"
|
__date__ ="$Feb 8, 2010 10:00:40 AM$"
|
||||||
|
|
||||||
|
|
||||||
global name, app, type, path, opt
|
from bt import plugin
|
||||||
name = "rand"
|
|
||||||
app = "ocarina"
|
|
||||||
type = "extra"
|
|
||||||
path = ""
|
|
||||||
opt = []
|
|
||||||
|
|
||||||
from bt.message import write
|
from bt.message import write
|
||||||
from tools import database
|
|
||||||
import random
|
|
||||||
import settings
|
import settings
|
||||||
|
from bt import signal
|
||||||
|
|
||||||
|
|
||||||
def randnext():
|
class Plugin(plugin.Plugin):
|
||||||
cur = str(settings.get("curlib"))
|
def __init__(self):
|
||||||
count = database.select("count(*)","libtrack","library="+cur).fetchone()[0]
|
plugin.Plugin.__init__(self)
|
||||||
id = random.randint(0,count)
|
self.help = ""
|
||||||
rows = database.select("track","libtrack","library="+cur).fetchall()
|
|
||||||
id = rows[id][0]
|
|
||||||
return id,id
|
|
||||||
|
|
||||||
|
|
||||||
# Called every time the plugin is enabled
|
def open(self):
|
||||||
def open():
|
if settings.has("random") == False:
|
||||||
settings.init("random",False)
|
settings.set("random",False)
|
||||||
if settings.get("random") == True:
|
elif settings.get("random") == True:
|
||||||
settings.set("next",randnext)
|
signal.register("next",self.randNext,90)
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
# Called every time the plugin is stopped
|
def randNext(self):
|
||||||
def close():
|
pass
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
def help():
|
def run(self, args=None):
|
||||||
return "Changes next to play a random song"
|
if args==None or len(args)==0:
|
||||||
|
rand = not settings.get("random")
|
||||||
|
settings.set("random",rand)
|
||||||
|
if rand == True:
|
||||||
|
signal.register("next",self.randNext,90)
|
||||||
|
else:
|
||||||
|
signal.remove("next",self.randNext)
|
||||||
|
|
||||||
|
elif args[0] == "?":
|
||||||
|
write(settings.get("random"))
|
||||||
|
|
||||||
|
|
||||||
# Called when the plugin needs to perform some action
|
|
||||||
def run(args=None):
|
|
||||||
if args==None or len(args)==0:
|
|
||||||
settings.replace("random",not settings.get("random"))
|
|
||||||
random = settings.get("random")
|
|
||||||
if random == True:
|
|
||||||
settings.set("next",next)
|
|
||||||
else:
|
|
||||||
settings.pop("next")
|
|
||||||
elif args[0]=="?":
|
|
||||||
write(str(settings.get("random")))
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
CORE=`pwd`/`dirname $0`"/core"
|
CORE=`pwd`/`dirname $0`"/core"
|
||||||
#EXTRA=`pwd`/`dirname $0`"/extra"
|
EXTRA=`pwd`/`dirname $0`"/extra"
|
||||||
cd && `which scion` "-p $CORE" $*
|
cd && `which scion` "-p $CORE -p $EXTRA" $*
|
||||||
|
|
Loading…
Reference in New Issue