summaryrefslogtreecommitdiff
path: root/jack_display.py
diff options
context:
space:
mode:
authorMartin Michlmayr <tbm@cyrius.com>2006-02-05 20:24:07 +0100
committerMartin Michlmayr <tbm@cyrius.com>2006-02-05 20:24:07 +0100
commit97d87e1fa0808cf747bf0a4fe3b39d1cbdb5efc8 (patch)
treec817c2371ea765b6fd6f9e47f4985209dd1937dd /jack_display.py
Import jack_3.1.1+cvs20050801.orig.tar.gz
[dgit import orig jack_3.1.1+cvs20050801.orig.tar.gz]
Diffstat (limited to 'jack_display.py')
-rwxr-xr-xjack_display.py121
1 files changed, 121 insertions, 0 deletions
diff --git a/jack_display.py b/jack_display.py
new file mode 100755
index 0000000..383cf7d
--- /dev/null
+++ b/jack_display.py
@@ -0,0 +1,121 @@
+### jack_display: screen presentation module for
+### jack - extract audio from a CD and encode it using 3rd party software
+### Copyright (C) 1999-2003 Arne Zellentin <zarne@users.sf.net>
+
+### This program is free software; you can redistribute it and/or modify
+### it under the terms of the GNU General Public License as published by
+### the Free Software Foundation; either version 2 of the License, or
+### (at your option) any later version.
+
+### This program is distributed in the hope that it will be useful,
+### but WITHOUT ANY WARRANTY; without even the implied warranty of
+### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+### GNU General Public License for more details.
+
+### You should have received a copy of the GNU General Public License
+### along with this program; if not, write to the Free Software
+### Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+import termios
+import sys
+import os
+import signal
+
+import jack_ripstuff
+import jack_term
+import jack_children
+import jack_freedb
+import jack_functions
+import jack_globals
+import jack_tag
+
+from jack_globals import *
+
+global_total = None
+options_string = None
+special_line = None
+bottom_line = None
+discname = None
+
+# terminal attributes
+old_tc = None
+
+smile = " :-)"
+
+def init():
+ global global_total
+ global options_string
+ global discname
+ global old_tc
+
+ global_total = jack_functions.tracksize(jack_ripstuff.all_tracks_todo_sorted)[jack_functions.BLOCKS]
+
+ options_string = "Options:" \
+ + (" bitrate=%i" % cf['_bitrate']) * (not cf['_vbr']) + " vbr" * cf['_vbr'] \
+ + " reorder" * cf['_reorder'] \
+ + " read-ahead=" + `cf['_read_ahead']` \
+ + " keep-wavs" * cf['_keep_wavs'] \
+ + " id=" + jack_freedb.freedb_id(jack_ripstuff.all_tracks) \
+ + (" len=%02i:%02i" % (global_total / jack_globals.CDDA_BLOCKS_PER_SECOND \
+ / 60, global_total / jack_globals.CDDA_BLOCKS_PER_SECOND % 60)) \
+ + " | press Q to quit"
+ jack_term.tmod.extra_lines = 2
+ if jack_freedb.names_available:
+ jack_term.tmod.extra_lines = jack_term.tmod.extra_lines + 1
+ if jack_term.term_type == "curses":
+ discname = jack_tag.locale_names[0][0] + " - " + jack_tag.locale_names[0][1]
+ else:
+ options_string = center_line(jack_tag.locale_names[0][0] + " - " + jack_tag.locale_names[0][1], fill = "- ", fill_r = " -", width = jack_term.size_x) + "\n" + center_line(options_string, fill = " ", fill_r = " ", width = jack_term.size_x)
+
+def sig_handler(sig, frame):
+ "signal handler and general cleanup procedure"
+ if frame < 0:
+ exit_code = frame
+ else:
+ exit_code = 0
+
+ jack_term.disable()
+
+ if sig:
+ exit_code = 2
+ info("signal %d caught, exiting." % sig)
+
+ for i in jack_children.children:
+ exit_code = 1
+ if not cf['_silent_mode']:
+ info("killing %s (pid %d)" % (i['type'], i['pid']))
+ os.kill(i['pid'], signal.SIGTERM)
+ i['file'].close()
+
+ if exit_code and cf['_silent_mode']:
+ progress("all", "err", "abnormal exit (code %i), check %s and %s" % (exit_code, cf['_err_file'], cf['_out_file']))
+
+ if cf['_wait_on_quit']:
+ raw_input("press ENTER to exit")
+
+ sys.exit(exit_code)
+
+#/ end of sig_handler /#
+
+def center_line(str, fill = " ", fill_sep = " ", fill_r = "", width = 80):
+ "return str centered, filled with fill chars"
+ width = jack_term.size_x
+ free = width - len(str)
+ if free >= 2:
+ if not fill_r:
+ fill_r = fill
+ length = len(fill)
+ left = free / 2
+ right = free / 2 + (free % 2)
+ left_c = fill * (left / length) + fill_sep * (left % length)
+ right_c = fill_sep * (right % length) + fill_r * (right / length)
+ return left_c + str + right_c
+ else:
+ return str
+
+def exit(why = 0):
+ "call my own cleanum fkt. and exit"
+ if why:
+ why = 0 - why
+ sig_handler(0, why)
+