def play(self, melt, ctl=False): 
    if melt==None: return
    if melt.isdir: self.stop(); return
    if not melt.ismark: 
      ue.mezz(melt.mtype)
      if melt.mtype=='image' and self.pn=='of': 
        self.player.stop()
        self.player.load(melt)
      if melt.mtype not in ('audio','video'): return
      
    if self.melt_being_played == melt:
      if ctl==True: 
        if melt.ismark:
          self.player.set_pos01(melt.metamark.timing.tms/(self.player.dur_sec*1000))
        else: self.player.restart()
      else: self.player.pp()
      self.endplay(melt); return

    if melt.ismark and (not self.player.loaded) and (melt.mfile==self.mfile_being_played):
      self.player.set_pos01(melt.metamark.timing.tms/(self.player.dur_sec*1000))
      self.endplay(melt); return

    if melt.ismark and (self.player.loaded or melt.mfile!=self.mfile_being_played):
      mfile = self.startplay(melt)
      self.player.load0(mfile)
      self.player.play()
      self.player.set_pos01(melt.metamark.timing.tms/(self.player.dur_sec*1000))
      self.endplay(melt);return

    mfile = self.startplay(melt)
    self.player.load0(mfile)
    self.player.paused==False
    self.player.play()
    self.endplay(melt)
    return
Exemple #2
0
	def showMenu(self, point):
		nrow = self.tree.indexAt(point)
		menu = QMenu(self)
		Mshow = menu.addAction("Show dir")
		action = menu.exec_(self.tree.mapToGlobal(point))
		ue.mezz(str(self.fmodel.filePath(nrow).toUtf8()))
		if action == Mshow: ue.open_rep(str(self.fmodel.filePath(nrow).toUtf8()))
Exemple #3
0
 def get_pos_sec(self):
   if self.paused: return
   self.pos_sec = self.get_float('time_pos')
   if self.dur_sec:
     self.pos01 = self.pos_sec/self.dur_sec
     if DEBUG: ue.mezz('time_pos', self.pos_sec)
     return self.pos_sec
Exemple #4
0
	def kspace_ctl(self, *e):
		ue.mezz('replay')
		melt = self.get_melt_selected()
		self.esono.logic.replay(melt)
		self.setline_played(self.nl_selected)
		self.display_marks(melt)
		return "break"
Exemple #5
0
 def init_mpaths(self):
   # metadata management in memory
   ue.mezz('loading mpaths')
   self.mpaths = mpath.Mpath(self.path_start).msubelts()
   ue.mezz('loaded mpaths')
   # in order to avoid constant reload for markers
   return self.mpaths
Exemple #6
0
 def update_elt(self):
   melt = self.elt
   for tagname in self.esono.gui.tree.tags.tagnames:
     rsl = self.get_txt_for_tag2(tagname)
     ue.mezz(tagname, rsl)
     if rsl: melt.metafields[tagname] = rsl
   melt.meta.write(melt.metafile)
Exemple #7
0
 def init(self):
   self.opts = [self.app]+self.options_def+self.options
   try:
     self.mp = sub.Popen(self.opts, stdin=sub.PIPE, stdout=sub.PIPE, stderr=sub.STDOUT)
     ue.mezz('a new player was launched')
   except:
     ue.mezz('no media player was found')
Exemple #8
0
 def quit(self):
   self.active = False
   time.sleep(1)
   self.send('stop')
   time.sleep(1)
   ue.mezz('quit')
   self.send('quit')
Exemple #9
0
 def open_parent(self):
   cuelt,l = self.get_ins_elt()
   ue.mezz(cuelt, cuelt.ismark, cuelt.mparent, cuelt.mparent.ismark)
   mp = cuelt.mparent
   mpp = mp.mparent
   self.open_elt(mpp)
   self.select_line(mp.no_in(mpp.msubelts())+1)
Exemple #10
0
	def play_nrow(self, nrow):
		fpath = self.fpaths[nrow]
		pjson = parse_json.Parse(fpath)
		self.esono.player.play_file(fpath)
		self.gui.gmarks.display_json(pjson)
		self.selectRow(nrow)
		ue.mezz('play_nrow')
Exemple #11
0
	def kspace(self, *e):
		ue.mezz('play_pause')
		melt = self.get_melt_selected()
		if self.esono.logic.play_pause(melt): 
			self.setline_played(self.nl_selected)
		self.display_marks(melt)
		return "break"
Exemple #12
0
 def get_ins_tag(self):
   names = self.tag_names(self.get_ins_pos())
   ue.mezz(names)
   if not names: tag='empty'
   if 'ghost' in names: tag='ghost'
   else: tag=names[0]
   self.ins_tag = tag
   return tag
Exemple #13
0
 def set_dur_sec(self, dur_sec):
   self.read()
   if not self.dict['dur_sec']: 
     self.dict['dur_sec'] = dur_sec
     timing = parse_timing.Timing(int(dur_sec*1000))
     self.dict['dur_hmsd'] = timing.hmsd
     self.write()
     ue.mezz(dur_sec)
Exemple #14
0
 def keyreleased(self, e=None):
   ks = e.keysym; kn = e.keysym_num
   ue.mezz('released', ks, kn)
   if ks in ('Up', 'Down'): return 'break' # allow fast scroll
   self.line_checkout()
   self.set_cursor_color_bg()
   self.correct_pos_cursor(tk.INSERT)
   self.get_ins_tag()
Exemple #15
0
 def load(self, melt):
   if melt==None: return False
   if melt.isdir: self.stop(); return False
   if self.melt_played!= melt:
     self.melt_played = melt
     ue.mezz('load', melt.name)
     self.player.load(melt.mfile)
   return True
 def stop(self, next=True):
     if self.paused != None:
         ue.mezz("stopped")
         self.send("stop")
         self.dur_sec = 0
         self.pos = 0
         self.sec = 0
         self.paused = None
         self.loaded = False
Exemple #17
0
	def display_all(self, mpaths=[]):
		if not mpaths: mpaths = self.esono.init_mpaths()
		else: self.esono.mpaths = mpaths
		self.clear()
		self.enable()
		ue.mezz('display all')
		for mp in mpaths: self.display_melt(mp)
		self.disable()
		self.update()
Exemple #18
0
 def refresh(self):
   edit = self.text.EDIT
   self.text.EDIT = True
   l = self.n_l()
   self.text.delete("%d.0"% l, "%d.end"% l)
   self.elt.meta_read(forced=True)
   self.write()
   ue.mezz(edit)
   self.text.EDIT = edit
Exemple #19
0
	def nbsubelts(self):
		if not self.readable: return False
		if not self.isdir: return False
		try: names = os.listdir(self.path)
		except: return False
		ue.mezz(names)
		names = [n for n in names if (n[0]!='.' and not containsoneof(n, hide_files) and not containsoneof(n, hide_dirs))]
		names = [n for n in names if ((self.mtype(n) in ['audio','video']) or (pisdir(pjoin(self.path, n))))]
		return len(names)
Exemple #20
0
 def play_next(self):
     elt = self.elt_being_played
     if not elt in self.esono.elts:
         ue.mezz(elt, "not in list")
         return
     id = self.esono.elts.index(elt)
     for elt in self.esono.elts[(id + 1) :]:
         if self.play(elt):
             break
Exemple #21
0
	def select_nrow(self, nrow):
		ncol = self.currentColumn()
		if ncol>1: return
		#self.esono.player.stop()
		fpath = self.fpaths[nrow]
		pjson = parse_json.Parse(fpath)
		self.esono.player.load_file(fpath)
		self.gui.gmarks.display_json(pjson)
		self.selectRow(nrow)
		ue.mezz('select_nrow')
Exemple #22
0
  def put_marker(self):
    eso = self.esono
    tree = eso.gui.tree

    if eso.player.stopped: return
    elt =  eso.logic.elt_being_played
    timing = eso_timing.Timing(int(eso.player.sec*1000))
    if timing == None: ue.mezz('no timing available')

    elt.pelt.add_timing(timing)
Exemple #23
0
	def save_json(self, nrow):
		fpath = self.fpaths[nrow]
		pjson = parse_json.Parse(fpath)
		pjson.read()
		for c in range(2, len(self.columns)):
			item = self.item(nrow, c)
			if item:
				pjson.dict['tags'][str(c-2)] = str(item.text().toUtf8())
		pjson.save()
		ue.mezz('save', pjson)
Exemple #24
0
 def keyreleased(self, e=None):
     ks = e.keysym
     kn = e.keysym_num
     ue.mezz("released", ks, kn)
     if ks in ("Up", "Down"):
         return "break"  # allow fast scroll
     self.line_checkout()
     self.set_cursor_color_bg()
     self.correct_pos_cursor(tk.INSERT)
     self.get_ins_tag()
Exemple #25
0
 def get_ins_tag(self):
     names = self.tag_names(self.get_ins_pos())
     ue.mezz(names)
     if not names:
         tag = "empty"
     if "ghost" in names:
         tag = "ghost"
     else:
         tag = names[0]
     self.ins_tag = tag
     return tag
Exemple #26
0
  def __call__(self, args):
    mess = args[0]
    if len(args)>1: args = args[1:]
    else: args = None
    ue.mezz(mess); 

    if mess=='reload': self.esono.init_comm()
    if mess=='quit': self.esono.quit()
    if mess=='player': 
      exec('rsl = self.esono.player.%s'%args[0])
      if type(rsl) in (type(0), type(0.), type('')): self.osc.send(rsl)
Exemple #27
0
 def __init__(self, path_eso, path_start, port):
   self.path_eso = path_eso
   self.pathdir_eso = vsu.path2dir(path_eso)
   self.pathdir_esonoclaste = vsu.path2dir(os.path.join(self.pathdir_eso, '..'))
   self.path_start = os.path.normpath(os.path.abspath(path_start))
   ue.mezz(self.path_start)
   self.port = port
   self.gui = None
   self.trad = traductions
   self.comm = None
   self.init()
Exemple #28
0
	def refresh_melt(self, mp):
		ue.mezz('refresh_melt', mp.name)
		self.enable()
		nl = self.get_line_melt(mp)
		self.delete("%d.0"%(nl),"%d.0"%(nl+1))
		if nl == self.getnbline()+1: self.insert(tk.INSERT, '\n')
		self.display_melt(mp)
		self.disable()
		self.setline_played()
		self.setline_selected()
		self.update()
Exemple #29
0
  def run(self):
    while self.active:
      if (not self.paused) and (not self.stopped):
        if self.mp.poll()!=None: self.init(); return
        # path = self.get_path()
        # if path == "(null)": self.stop(); return
        if self.sec<(self.dursec-2): self.get_pos()
        else: self.stop(); return
      if DEBUG: print ('run'); time.sleep(1)
      time.sleep(0.05)

    ue.mezz('mplayer thread exited gracefully')
Exemple #30
0
 def stop(self, next=True):
   if self.stopped: return
   if self.paused!=None: 
     ue.mezz('stopped')
     self.send('stop')
     self.dursec = 0
     self.pos = 0
     self.sec = 0
     self.paused = None
     self.stopped = True
     if next: 
       if self.esono: self.esono.logic.play_next()