cplay-ng

simple curses audio player
git clone https://git.ce9e.org/cplay-ng.git

commit
d1dc7d13df506870aa0180a700dd286d5b2a400e
parent
766e64d0636c2a6f8ceb1de9843f7d0ce0fceda5
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2020-09-03 09:40
use get_wch (unicode input support)

Diffstat

M cplay.py 56 ++++++++++++++++++++++++++++----------------------------

1 files changed, 28 insertions, 28 deletions


diff --git a/cplay.py b/cplay.py

@@ -207,17 +207,17 @@ class List:
  207   207             yield ''
  208   208 
  209   209     def process_key(self, key):
  210    -1         if key in [curses.KEY_DOWN, ord('j')]:
   -1   210         if key in [curses.KEY_DOWN, 'j']:
  211   211             self.move_cursor(1)
  212    -1         elif key in [curses.KEY_UP, ord('k')]:
   -1   212         elif key in [curses.KEY_UP, 'k']:
  213   213             self.move_cursor(-1)
  214    -1         elif key in [curses.KEY_NPAGE, ord('J')]:
   -1   214         elif key in [curses.KEY_NPAGE, 'J']:
  215   215             self.move_cursor(self.rows - 2)
  216    -1         elif key in [curses.KEY_PPAGE, ord('K')]:
   -1   216         elif key in [curses.KEY_PPAGE, 'K']:
  217   217             self.move_cursor(-(self.rows - 2))
  218    -1         elif key in [curses.KEY_END, ord('G')]:
   -1   218         elif key in [curses.KEY_END, 'G']:
  219   219             self.set_cursor(len(self.items))
  220    -1         elif key in [curses.KEY_HOME, ord('g')]:
   -1   220         elif key in [curses.KEY_HOME, 'g']:
  221   221             self.set_cursor(0)
  222   222         else:
  223   223             return False
@@ -236,7 +236,7 @@ class HelpList(List):
  236   236         return item
  237   237 
  238   238     def process_key(self, key):
  239    -1         if key in [ord('q'), ord('h')]:
   -1   239         if key in ['q', 'h']:
  240   240             app.help = False
  241   241         else:
  242   242             return super().process_key(key)
@@ -270,10 +270,10 @@ class Filelist(List):
  270   270             self.cursor = 0
  271   271 
  272   272     def process_key(self, key):
  273    -1         if key == ord('a'):
   -1   273         if key == 'a':
  274   274             if playlist.add(self.items[self.cursor]):
  275   275                 self.move_cursor(1)
  276    -1         elif key == ord('\n'):
   -1   276         elif key == '\n':
  277   277             item = self.items[self.cursor]
  278   278             ext = item.rsplit('.', 1)[-1]
  279   279             if os.path.isdir(item):
@@ -412,26 +412,26 @@ class Playlist(List):
  412   412             return 0
  413   413 
  414   414     def process_key(self, key):
  415    -1         if key == ord('m'):
   -1   415         if key == 'm':
  416   416             self.move_item(1)
  417    -1         elif key == ord('M'):
   -1   417         elif key == 'M':
  418   418             self.move_item(-1)
  419    -1         elif key == ord('d'):
   -1   419         elif key == 'd':
  420   420             self.remove_item()
  421    -1         elif key == ord('D'):
   -1   421         elif key == 'D':
  422   422             self.clear()
  423    -1         elif key == ord('\n'):
   -1   423         elif key == '\n':
  424   424             self.active = self.cursor
  425   425             player.play(self.items[self.active])
  426    -1         elif key == ord('@'):
   -1   426         elif key == '@':
  427   427             self.set_cursor(self.active)
  428    -1         elif key == ord('s'):
   -1   428         elif key == 's':
  429   429             self.shuffle()
  430    -1         elif key == ord('S'):
   -1   430         elif key == 'S':
  431   431             self.sort()
  432    -1         elif key == ord('r'):
   -1   432         elif key == 'r':
  433   433             self.repeat = not self.repeat
  434    -1         elif key == ord('R'):
   -1   434         elif key == 'R':
  435   435             self.random = not self.random
  436   436         else:
  437   437             return super().process_key(key)
@@ -498,23 +498,23 @@ class Application:
  498   498     def process_key(self, key):
  499   499         if self.tab.process_key(key):
  500   500             pass
  501    -1         elif key in range(48, 58):
  502    -1             set_volume((key & 0x0f) / 9.0)
   -1   501         elif key in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']:
   -1   502             set_volume(int(key, 10) / 9.0)
  503   503         elif key == curses.KEY_RIGHT:
  504   504             player.seek(1)
  505   505         elif key == curses.KEY_LEFT:
  506   506             player.seek(-1)
  507    -1         elif key == ord('x'):
   -1   507         elif key == 'x':
  508   508             player.toggle()
  509    -1         elif key == ord('n'):
   -1   509         elif key == 'n':
  510   510             player.play(playlist.next())
  511    -1         elif key == ord('h'):
   -1   511         elif key == 'h':
  512   512             self.help = True
  513    -1         elif key in [ord('q'), ord('Q')]:
   -1   513         elif key in ['q', 'Q']:
  514   514             sys.exit(0)
  515    -1         elif key == ord('\t'):
   -1   515         elif key == '\t':
  516   516             app.toggle_tabs()
  517    -1         elif key == ord('l'):
   -1   517         elif key == 'l':
  518   518             self.verbose = not self.verbose
  519   519         else:
  520   520             return False
@@ -536,7 +536,7 @@ class Application:
  536   536                 continue
  537   537 
  538   538             if sys.stdin in r:
  539    -1                 self.process_key(screen.getch())
   -1   539                 self.process_key(screen.get_wch())
  540   540             if player.stderr_r in r:
  541   541                 player.parse_progress(player.stderr_r)
  542   542