tags 222784 + patch pending
thanks

* Anthony DeRobertis <[EMAIL PROTECTED]> [2003-12-03 04:59]:
> It'd be neat to have an exec_no_err (or maybe a new one, like
> exec_encode_done) that I could easily hook vorbisgain -a into.

This sounds like a good idea.  I've now added some environment
variables which can be used for this.  I've also attached an example
hook you can use.


diff -urN jack-3.1.1~/jack jack-3.1.1/jack
--- jack-3.1.1~/jack    2005-07-28 14:43:19.644166936 +0100
+++ jack-3.1.1/jack     2005-07-28 18:23:39.611426432 +0100
@@ -92,6 +92,8 @@
 
 ### (1) search for a dir containing a toc-file or do the multi-mode
 toc_just_read = jack_prepare.find_workdir()
+os.environ["JACK_CUR_DIR"] = os.getcwd()
+os.environ["JACK_BASE_DIR"] = cf['_base_dir']
 # now we are set to go as we know we are in the right dir
 
 ### (2) check toc (operation mode)
@@ -234,6 +236,10 @@
         warning("abnormal exit")
         traceback.print_exc()         
         sys.exit(1)
+# Set the files we have processed but this may still be overwritten by
+# jack_tag.tag() called below.
+os.environ["JACK_JUST_ENCODED"] = "\n".join([x[NAME] + ext for x in mp3s_todo])
+os.environ["JACK_JUST_RIPPED"] = "\n".join([x[NAME] + ".wav" for x in 
wavs_todo])
 
 jack_term.disable()
 if cf['_query_when_ready']:
diff -urN jack-3.1.1~/jack.man jack-3.1.1/jack.man
--- jack-3.1.1~/jack.man        2005-07-28 14:43:19.644166936 +0100
+++ jack-3.1.1/jack.man 2005-07-28 18:43:49.320522696 +0100
@@ -500,6 +500,18 @@
 jack -O --remove-files ; gnoise *wav ; jack -g *wav ; jack
 .RE
 Just replace gnoise by the operation you'd like to perform.
+.SH ENVIRONMENT VARIABLES
+There are several environment variables which can be used in jack's exec
+hooks:
+.IP JACK_BASE_DIR
+lists jack's base directory in which files are stored.
+.IP JACK_CUR_DIR
+lists the current directory of jack in which files of the current album are
+put.
+.IP JACK_JUST_ENCODED
+lists all track names which have just been encoded.
+.IP JACK_JUST_RIPPED
+lists all track names which have just been ripped.
 .SH FORMAT STRINGS
 .IP %n
 Track number
diff -urN jack-3.1.1~/jack_tag.py jack-3.1.1/jack_tag.py
--- jack-3.1.1~/jack_tag.py     2005-07-28 14:43:19.737152800 +0100
+++ jack-3.1.1/jack_tag.py      2005-07-28 18:24:57.642563896 +0100
@@ -225,5 +225,7 @@
         else:
             print
 
+    os.environ["JACK_JUST_ENCODED"] = "\n".join(jack_m3u.m3u)
+    os.environ["JACK_JUST_RIPPED"] = "\n".join(jack_m3u.wavm3u)
     jack_m3u.write()
 

-- 
Martin Michlmayr
http://www.cyrius.com/
#!/bin/sh

# Example script for exec hooks
# Copyright (C) 2005  Martin Michlmayr <[EMAIL PROTECTED]>
# This script may be distributed under the GPL v2 or higher.

# Process tracks with vorbisgain to calculate their "ReplayGain"
# so they can be played with a uniform sound level.

# Usage: put the following in your ~/.jack3rc file (without any leading
# hash symbols)
#    exec_when_done:yes
#    exec_no_err:"/usr/share/doc/jack/examples/exec_vorbisgain"

# You have to set (and later restore) $IFS in since $JACK_JUST_ENCODED
# contains a listing of tracks separated by newlines.

OLDIFS="$IFS"
IFS="
"

# There are two alternatives:
#   1. Process all files at once as an album:
vorbisgain -a $JACK_JUST_ENCODED

#   2. Process each file individually:
#for i in $JACK_JUST_ENCODED; do
#    IFS="$OLDIFS";
#    vorbisgain "$i"
#    IFS="
#"
#done

# In most real world cases, you will want option 1.  However, option two
# is included to show how you can process individual files.

IFS="$OLDIFS"

Reply via email to