Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/common/Util/OS.py
diff options
context:
space:
mode:
Diffstat (limited to 'common/Util/OS.py')
-rw-r--r--common/Util/OS.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/common/Util/OS.py b/common/Util/OS.py
new file mode 100644
index 0000000..605fbf4
--- /dev/null
+++ b/common/Util/OS.py
@@ -0,0 +1,36 @@
+import commands
+import logging
+import os
+
+import common.Config as Config
+
+def system(*args):
+ cmd = ' '.join(args)
+ logging.debug('[system] %s' % cmd)
+
+ status = commands.getstatusoutput(cmd)
+ logging.debug('[system][out] %d: %s' % status)
+
+ return status
+
+def arecord(duration, crop_csd, dst):
+ tmp_file = os.path.join(Config.TMP_DIR, 'tempMic.wav')
+ out_file = os.path.join(Config.TMP_DIR, 'micTemp.wav')
+ crop_file = os.path.join(Config.FILES_DIR, crop_csd)
+ dst_file = os.path.join(Config.DATA_DIR, dst)
+
+ if system(Config.ARECORD, "-d", str(duration), tmp_file)[0] != 0:
+ logging.error('arecord failed')
+ return False
+
+ system("csound", "--strset999=" + Config.TMP_DIR, crop_file)
+
+ if os.path.isfile(dst):
+ os.remove(dst_file)
+
+ if os.path.isfile(out_file):
+ os.rename(out_file, dst_file)
+ os.remove(tmp_file)
+ else:
+ logging.debug('crop failed')
+ os.rename(tmp_file, dst_file)