-
Notifications
You must be signed in to change notification settings - Fork 0
/
rfsv_shift.py
91 lines (79 loc) · 2.77 KB
/
rfsv_shift.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import os
import sys
from Tkinter import Tk
from tkFileDialog import askopenfilename
global ADJUST_LEVEL
ADJUST_LEVEL = -50
def main(args):
global ADJUST_LEVEL
print
print "----------------------------------------------------------------"
print " RF Scan Adjustment for Shure WWB6 Import"
print "----------------------------------------------------------------"
print
if len(args) < 1:
args = [getUserFilepath()]
elif len(args) > 1:
ADJUST_LEVEL = args[1]
fullFilepath = os.path.normpath(args[0])
folder = os.path.split(fullFilepath)[0]
filename = os.path.split(fullFilepath)[1]
ext = os.path.splitext(filename)[1]
try:
if fullFilepath == ".":
exit()
if ext.lower() != ".sdb2":
raise IOError("Invalid file extension")
except IOError, e:
errorPrint("Input file could not be opened. Please ensure the file exists and is of the proper type.", e)
print
print "Selected scan file: ", filename
print "Adjustment: ", ADJUST_LEVEL, "dB"
newFilename = "Adjusted_" + str(ADJUST_LEVEL) + "_" + filename
newFullFilepath = os.path.join(folder, newFilename)
if os.path.exists(newFullFilepath):
print
print "The file: " + newFullFilepath + " already exists."
while True:
print "Would you like to overwrite?"
print "(Y / N): ",
ans = raw_input()
if ans.upper() == "Y":
break
elif ans.upper() == "N":
errorPrint("Failed to write output. File already exists.")
else:
print
print ans + " is not a valid option. Please try again."
print
with open(newFullFilepath, 'w') as adjFile:
with open(fullFilepath, 'r') as origFile:
for line in origFile:
if "<v>" in line:
val = float(line[line.index("<v>") + 3 : line.index("</v>")])
adjVal = val + ADJUST_LEVEL
line = " <v>" + str(adjVal) + "</v>\n"
adjFile.write(line)
print
print
print "Saved to: ", newFullFilepath
print
print "Press ENTER to continue..."
raw_input()
exit()
def errorPrint(message, standardErr = ""):
print "\n\n"
print message
if standardErr:
print "Error message: ", standardErr
print
print "Press ENTER to exit..."
raw_input()
exit()
def getUserFilepath():
Tk().withdraw() # Prevents full GUI
filetypes = [('all files', '.*'), ('Shure WWB DB Files', '.sdb2')]
filepath = askopenfilename(filetypes = filetypes, multiple = False, title = "Select the RF Scan file to be shifted...")
return filepath
if __name__ == "__main__":
main(sys.argv[1:])