mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Made play method more robust by adding a try-finally.
This commit is contained in:
parent
3d697ce447
commit
992ff06e98
2 changed files with 94 additions and 74 deletions
|
@ -191,42 +191,52 @@ class Readcd:
|
||||||
if len(self.list) == 0:
|
if len(self.list) == 0:
|
||||||
for i in range(self.status[5], self.status[6]+1):
|
for i in range(self.status[5], self.status[6]+1):
|
||||||
self.appendtrack(i)
|
self.appendtrack(i)
|
||||||
while 1:
|
try:
|
||||||
if not self.playing:
|
while 1:
|
||||||
if self.listindex >= len(self.list):
|
if not self.playing:
|
||||||
return
|
if self.listindex >= len(self.list):
|
||||||
start, end = self.list[self.listindex]
|
return
|
||||||
## print 'starting with',`(start, end)`
|
start, end = self.list[self.listindex]
|
||||||
if type(start) == type(0):
|
if type(start) == type(0):
|
||||||
dummy = self.player.seektrack(start)
|
dummy = self.player.seektrack(
|
||||||
else:
|
start)
|
||||||
min, sec, frame = start
|
|
||||||
dummy = self.player.seek(min, sec, frame)
|
|
||||||
if type(end) == type(0):
|
|
||||||
self.parser.setcallback(CD.PNUM, _dopnum, self)
|
|
||||||
self.end = end
|
|
||||||
func, arg = self.callbacks[CD.ATIME]
|
|
||||||
if func:
|
|
||||||
self.parser.setcallback(CD.ATIME, func, arg)
|
|
||||||
else:
|
else:
|
||||||
self.parser.removecallback(CD.ATIME)
|
min, sec, frame = start
|
||||||
else:
|
dummy = self.player.seek(
|
||||||
min, sec, frame = end
|
min, sec, frame)
|
||||||
self.parser.setcallback(CD.ATIME, _doatime, self)
|
if type(end) == type(0):
|
||||||
self.end = (min * 60 + sec) * 75 + frame
|
self.parser.setcallback(
|
||||||
func, arg = self.callbacks[CD.PNUM]
|
CD.PNUM, _dopnum, self)
|
||||||
if func:
|
self.end = end
|
||||||
self.parser.setcallback(CD.PNUM, func, arg)
|
func, arg = \
|
||||||
|
self.callbacks[CD.ATIME]
|
||||||
|
if func:
|
||||||
|
self.parser.setcallback(CD.ATIME, func, arg)
|
||||||
|
else:
|
||||||
|
self.parser.removecallback(CD.ATIME)
|
||||||
else:
|
else:
|
||||||
self.parser.removecallback(CD.PNUM)
|
min, sec, frame = end
|
||||||
self.playing = 1
|
self.parser.setcallback(
|
||||||
data = self.player.readda(size)
|
CD.ATIME, _doatime,
|
||||||
if data == '':
|
self)
|
||||||
self.playing = 0
|
self.end = (min * 60 + sec) * \
|
||||||
self.listindex = self.listindex + 1
|
75 + frame
|
||||||
continue
|
func, arg = \
|
||||||
try:
|
self.callbacks[CD.PNUM]
|
||||||
self.parser.parseframe(data)
|
if func:
|
||||||
except _Stop:
|
self.parser.setcallback(CD.PNUM, func, arg)
|
||||||
self.playing = 0
|
else:
|
||||||
self.listindex = self.listindex + 1
|
self.parser.removecallback(CD.PNUM)
|
||||||
|
self.playing = 1
|
||||||
|
data = self.player.readda(size)
|
||||||
|
if data == '':
|
||||||
|
self.playing = 0
|
||||||
|
self.listindex = self.listindex + 1
|
||||||
|
continue
|
||||||
|
try:
|
||||||
|
self.parser.parseframe(data)
|
||||||
|
except _Stop:
|
||||||
|
self.playing = 0
|
||||||
|
self.listindex = self.listindex + 1
|
||||||
|
finally:
|
||||||
|
self.playing = 0
|
||||||
|
|
|
@ -191,42 +191,52 @@ class Readcd:
|
||||||
if len(self.list) == 0:
|
if len(self.list) == 0:
|
||||||
for i in range(self.status[5], self.status[6]+1):
|
for i in range(self.status[5], self.status[6]+1):
|
||||||
self.appendtrack(i)
|
self.appendtrack(i)
|
||||||
while 1:
|
try:
|
||||||
if not self.playing:
|
while 1:
|
||||||
if self.listindex >= len(self.list):
|
if not self.playing:
|
||||||
return
|
if self.listindex >= len(self.list):
|
||||||
start, end = self.list[self.listindex]
|
return
|
||||||
## print 'starting with',`(start, end)`
|
start, end = self.list[self.listindex]
|
||||||
if type(start) == type(0):
|
if type(start) == type(0):
|
||||||
dummy = self.player.seektrack(start)
|
dummy = self.player.seektrack(
|
||||||
else:
|
start)
|
||||||
min, sec, frame = start
|
|
||||||
dummy = self.player.seek(min, sec, frame)
|
|
||||||
if type(end) == type(0):
|
|
||||||
self.parser.setcallback(CD.PNUM, _dopnum, self)
|
|
||||||
self.end = end
|
|
||||||
func, arg = self.callbacks[CD.ATIME]
|
|
||||||
if func:
|
|
||||||
self.parser.setcallback(CD.ATIME, func, arg)
|
|
||||||
else:
|
else:
|
||||||
self.parser.removecallback(CD.ATIME)
|
min, sec, frame = start
|
||||||
else:
|
dummy = self.player.seek(
|
||||||
min, sec, frame = end
|
min, sec, frame)
|
||||||
self.parser.setcallback(CD.ATIME, _doatime, self)
|
if type(end) == type(0):
|
||||||
self.end = (min * 60 + sec) * 75 + frame
|
self.parser.setcallback(
|
||||||
func, arg = self.callbacks[CD.PNUM]
|
CD.PNUM, _dopnum, self)
|
||||||
if func:
|
self.end = end
|
||||||
self.parser.setcallback(CD.PNUM, func, arg)
|
func, arg = \
|
||||||
|
self.callbacks[CD.ATIME]
|
||||||
|
if func:
|
||||||
|
self.parser.setcallback(CD.ATIME, func, arg)
|
||||||
|
else:
|
||||||
|
self.parser.removecallback(CD.ATIME)
|
||||||
else:
|
else:
|
||||||
self.parser.removecallback(CD.PNUM)
|
min, sec, frame = end
|
||||||
self.playing = 1
|
self.parser.setcallback(
|
||||||
data = self.player.readda(size)
|
CD.ATIME, _doatime,
|
||||||
if data == '':
|
self)
|
||||||
self.playing = 0
|
self.end = (min * 60 + sec) * \
|
||||||
self.listindex = self.listindex + 1
|
75 + frame
|
||||||
continue
|
func, arg = \
|
||||||
try:
|
self.callbacks[CD.PNUM]
|
||||||
self.parser.parseframe(data)
|
if func:
|
||||||
except _Stop:
|
self.parser.setcallback(CD.PNUM, func, arg)
|
||||||
self.playing = 0
|
else:
|
||||||
self.listindex = self.listindex + 1
|
self.parser.removecallback(CD.PNUM)
|
||||||
|
self.playing = 1
|
||||||
|
data = self.player.readda(size)
|
||||||
|
if data == '':
|
||||||
|
self.playing = 0
|
||||||
|
self.listindex = self.listindex + 1
|
||||||
|
continue
|
||||||
|
try:
|
||||||
|
self.parser.parseframe(data)
|
||||||
|
except _Stop:
|
||||||
|
self.playing = 0
|
||||||
|
self.listindex = self.listindex + 1
|
||||||
|
finally:
|
||||||
|
self.playing = 0
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue