Changeset 2620618 for server/lib/gutenbach/server/player.py
- Timestamp:
- Jan 12, 2012, 12:58:40 AM (12 years ago)
- Branches:
- no-cups
- Children:
- 609a9b0
- Parents:
- 190bfb4
- git-author:
- Jessica B. Hamrick <jhamrick@…> (01/12/12 00:58:40)
- git-committer:
- Jessica B. Hamrick <jhamrick@…> (01/12/12 00:58:40)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
server/lib/gutenbach/server/player.py
r345c476 r2620618 18 18 self._callback = None 19 19 self._paused = False 20 self._done = False 21 self._dryrun = False 22 self._dryrun_time = 0.5 20 23 21 24 @property 22 25 def is_playing(self): 23 26 with self.lock: 24 playing = self.player and self.player.poll() is None 27 if self._dryrun: 28 playing = self.isAlive() and not self.is_done 29 else: 30 playing = self.isAlive() and \ 31 not self.is_done and \ 32 self.player is not None and \ 33 self.player.poll() is None 25 34 return playing 26 35 … … 33 42 @property 34 43 def is_done(self): 35 with self.lock: 36 done = self.player and self.player.poll() is not None 37 return done 44 return self._done 38 45 39 46 @property … … 50 57 51 58 self.mplayer_play() 59 self._done = True 52 60 with self.lock: 53 61 if self.callback: … … 60 68 logger.info("playing file '%s'" % self.fh.name) 61 69 self._paused = False 70 71 if self._dryrun: 72 step = 0.01 73 while self._dryrun_time > 0: 74 time.sleep(step) 75 self._dryrun_time -= step 76 while self.is_paused: 77 time.sleep(0.01) 78 return 62 79 63 80 # open mplayer … … 79 96 80 97 logger.info("mplayer finished with code %d" % self.player.returncode) 81 98 82 99 # get output from mplayer and log it 83 100 with self.lock: … … 91 108 92 109 def mplayer_pause(self): 93 if not self.isAlive():94 return95 96 110 with self.lock: 97 111 if self.is_playing: 98 self.player.stdin.write("pause\n") 112 if not self._dryrun: 113 self.player.stdin.write("pause\n") 99 114 self._paused = not(self._paused) 115 logger.info("paused: %s", self.is_paused) 116 else: 117 logger.warning("trying to pause non-playing job") 100 118 101 119 def mplayer_stop(self): 102 if not self.isAlive():103 return104 105 120 with self.lock: 106 121 if self.is_playing: 107 self.player.stdin.write("quit\n") 122 if not self._dryrun: 123 self.player.stdin.write("quit\n") 124 else: 125 self._dryrun_time = 0.0 126 logger.info("stopped") 127 else: 128 logger.warning("trying to stop non-playing job")
Note: See TracChangeset
for help on using the changeset viewer.