annotate vixm/ui.py @ 7:f87b969fa973

Little cleanup; change of plans - try to make it more like ed first
author Josef "Jeff" Sipek <jeffpc@josefsipek.net>
date Sat, 19 Aug 2006 17:23:15 -0400
parents 50745af6a63b
children 79340745c952
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
1 # all the user interface related bits
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
2
5
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
3 import time, sys
3
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
4 from threading import Thread
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
5 import xmms
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
6
6
50745af6a63b Print song lengths in something better than number of milliseconds, added
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 5
diff changeset
7 import playlist, song, util
3
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
8
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
9 def run():
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
10 """ this is where we start execution """
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
11
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
12 # first, let's create the two playlists
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
13 print "Creating playlists..."
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
14 lists = {}
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
15 lists[playlist.LIST_PRIO] = playlist.playlist()
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
16 lists[playlist.LIST_DEFAULT] = playlist.playlist(allowrandom=True)
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
17
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
18 # read in the info for all the songs in XMMS's playlist
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
19 print "Loading songs from XMMS's playlist..."
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
20 songs = []
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
21 listlength = xmms.control.get_playlist_length()
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
22 for i in range(0,listlength):
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
23 s = song.song(i)
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
24 lists[playlist.LIST_DEFAULT].enqueue(s)
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
25
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
26 print "Instanciating ui thread..."
5
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
27 ui = uiThread(lists)
3
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
28 ui.start()
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
29
5
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
30 while not ui.shutdown:
3
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
31 time.sleep(1)
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
32
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
33 class uiThread(Thread):
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
34 """ This is the main ui thread class, it does all the magic
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
35 necessary to have a vi-like interface """
5
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
36 def __init__(self, lists):
3
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
37 Thread.__init__(self)
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
38
5
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
39 self.lists = lists
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
40 self.shutdown = False
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
41
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
42 def __enqueue(self, id):
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
43 s = self.lists[playlist.LIST_DEFAULT][id]
6
50745af6a63b Print song lengths in something better than number of milliseconds, added
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 5
diff changeset
44 print "Enqueuing song: %d. %s (%s)" % (id, s["title"],
50745af6a63b Print song lengths in something better than number of milliseconds, added
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 5
diff changeset
45 util.strtime(s["time"]))
5
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
46 self.lists[playlist.LIST_PRIO].enqueue(s)
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
47
7
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
48 def __list(self, cmd, parts):
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
49 i = 1
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
50
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
51 if len(parts) > 1:
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
52 try:
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
53 listid = int(parts[1])
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
54 if listid < 0 or listid >= len(self.lists):
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
55 raise ValueError
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
56 except:
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
57 print "Invalid list number"
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
58 return
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
59 else:
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
60 listid = playlist.LIST_PRIO
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
61
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
62 for s in self.lists[listid]:
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
63 print "%d. %s (%s)" % (i, s["title"],
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
64 util.strtime(s["time"]))
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
65 i += 1
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
66
5
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
67 def __cmd(self, txt):
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
68 parts = txt.split()
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
69 cmd = parts[0]
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
70
7
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
71 # commad list:
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
72 # quit 'q[!]'
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
73 # quit fails if there are list changes in
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
74 # memory that haven't been saved. The optional
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
75 # '!' forces the quit
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
76 #
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
77 # number '[range]n [playlistid]'
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
78 # prints playlist [playlistid] (default is
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
79 # LIST_PRIO) with each entry being numbered.
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
80 # If optional range is supplied, only the
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
81 # songs in that range are printed. The range
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
82 # string is standard ed-like line range (see
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
83 # below for details)
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
84 #
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
85 # list '[range]l [playlistid]'
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
86 # virtually identical to the number command
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
87 # above, however the lines are not numbered.
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
88 # The same rules apply to the range and
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
89 # playlistid arguments
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
90 #
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
91 # enqueue 'a songid'
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
92 # enqueue a song songid from LIST_DEFAULT onto
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
93 # LIST_PRIO. The enqueued song is added to the
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
94 # end of LIST_PRIO
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
95 #
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
96 # dequeue 'd songid'
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
97 # remove songid from LIST_PRIO. The songid is
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
98 # the id in LIST_PRIO, NOT LIST_DEFAULT
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
99 #
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
100 # range:
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
101 # '' first entry; shortcut for '1'
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
102 # '%' entire list; shortcut for '1,$'
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
103 # '$' last entry
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
104 # 'n' entry on line n
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
105 # 'm,n' range of entries starting on line m and
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
106 # ending on line n. Both m and n are included
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
107 # in the list. m or n can both be an integer,
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
108 # '' or '$'.
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
109
5
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
110 if cmd == "quit":
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
111 self.shutdown = True
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
112 elif cmd == "list":
7
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
113 self.__list(cmd, parts)
6
50745af6a63b Print song lengths in something better than number of milliseconds, added
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 5
diff changeset
114 elif cmd == "lists":
50745af6a63b Print song lengths in something better than number of milliseconds, added
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 5
diff changeset
115 print "#0 LIST_PRIO"
50745af6a63b Print song lengths in something better than number of milliseconds, added
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 5
diff changeset
116 print "#1 LIST_DEFAULT"
5
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
117 else:
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
118 print "Invalid command \"%s\"" % (cmd,)
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
119
3
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
120 def run(self):
5
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
121 while not self.shutdown:
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
122 tmp = sys.stdin.readline().strip()
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
123
7
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
124 # FIXME: we should use regexps for this
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
125 #
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
126 # search: '^\/(.+)'
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
127 # enqueue: '^([0-9]+)'
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
128 # commands: '^([A-Za-z]+)(([^ ]*) *)*'
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
129
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
130 if tmp.startswith("/"):
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
131 # '/ABC' - searching
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
132 print "Searching not yet implemented"
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
133 else:
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
134 # 'ABC' - commands and enqueues
5
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
135 try:
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
136 id = int(tmp[1:])
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
137 except:
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
138 self.__cmd(tmp[1:])
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
139 continue
7
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
140
f87b969fa973 Little cleanup; change of plans - try to make it more like ed first
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 6
diff changeset
141 # we got something numeric, let's enqueue
5
187453f856a7 Added a ex-like interface supporting a goto line syntax to enqueue a song
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3
diff changeset
142 self.__enqueue(id)
3
dd00b69169c6 Created initial ui thread code, fixed up playlist code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff changeset
143