Initial console based pyrip implementation
This commit is contained in:
parent
35ca73b737
commit
48dc481f26
12
.gitmodules
vendored
Normal file
12
.gitmodules
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
[submodule "fstools"]
|
||||
path = fstools
|
||||
url = https://git.mount-mockery.de/pylib/fstools.git
|
||||
[submodule "report"]
|
||||
path = report
|
||||
url = https://git.mount-mockery.de/pylib/report.git
|
||||
[submodule "task"]
|
||||
path = task
|
||||
url = https://git.mount-mockery.de/pylib/task.git
|
||||
[submodule "media"]
|
||||
path = media
|
||||
url = https://git.mount-mockery.de/pylib/media.git
|
16
.vscode/launch.json
vendored
Normal file
16
.vscode/launch.json
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
// Verwendet IntelliSense zum Ermitteln möglicher Attribute.
|
||||
// Zeigen Sie auf vorhandene Attribute, um die zugehörigen Beschreibungen anzuzeigen.
|
||||
// Weitere Informationen finden Sie unter https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Python: Main File execution",
|
||||
"type": "debugpy",
|
||||
"request": "launch",
|
||||
"program": "${workspaceFolder}/pyrip.py",
|
||||
"console": "integratedTerminal",
|
||||
"justMyCode": true
|
||||
}
|
||||
]
|
||||
}
|
14
.vscode/settings.json
vendored
Normal file
14
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
{
|
||||
"python.defaultInterpreterPath": "./venv/bin/python",
|
||||
"autopep8.args": ["--max-line-length=150"],
|
||||
"[python]": {
|
||||
"python.formatting.provider": "none",
|
||||
"editor.defaultFormatter": "ms-python.autopep8",
|
||||
"editor.formatOnSave": true
|
||||
},
|
||||
"editor.fontSize": 14,
|
||||
"emmet.includeLanguages": { "django-html": "html" },
|
||||
"python.testing.pytestArgs": ["-v", "--cov", "--cov-report=xml", "__test__"],
|
||||
"python.testing.unittestEnabled": false,
|
||||
"python.testing.pytestEnabled": true
|
||||
}
|
1
fstools
Submodule
1
fstools
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit c10e8792abb05671dab6de51cdadda3bf8ead50f
|
295
icon.xpm
Normal file
295
icon.xpm
Normal file
@ -0,0 +1,295 @@
|
||||
/* XPM */
|
||||
static char *sound-juicer[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"32 32 257 2",
|
||||
" c #79604B",
|
||||
". c #7E6754",
|
||||
"X c #7F756A",
|
||||
"o c #7D7D7B",
|
||||
"O c #974503",
|
||||
"+ c #9B4701",
|
||||
"@ c #9E4803",
|
||||
"# c #9A4B0D",
|
||||
"$ c #9C571D",
|
||||
"% c #875937",
|
||||
"& c #925B2E",
|
||||
"* c #9F683C",
|
||||
"= c #A34B02",
|
||||
"- c #AA4D02",
|
||||
"; c #A6520B",
|
||||
": c #A4591D",
|
||||
"> c #AF5D1A",
|
||||
", c #BA5300",
|
||||
"< c #BC5807",
|
||||
"1 c #BC5B0C",
|
||||
"2 c #B35912",
|
||||
"3 c #B55F1B",
|
||||
"4 c #BC5D10",
|
||||
"5 c #AC5F21",
|
||||
"6 c #BF6311",
|
||||
"7 c #B9621C",
|
||||
"8 c #A4622B",
|
||||
"9 c #AB6025",
|
||||
"0 c #AA652C",
|
||||
"q c #AD682E",
|
||||
"w c #A36635",
|
||||
"e c #A0673A",
|
||||
"r c #A1693D",
|
||||
"t c #A86733",
|
||||
"y c #AE6A33",
|
||||
"u c #A96D3C",
|
||||
"i c #B36222",
|
||||
"p c #B46628",
|
||||
"a c #B2692D",
|
||||
"s c #BA6A2A",
|
||||
"d c #B16C33",
|
||||
"f c #B5733C",
|
||||
"g c #9C6A43",
|
||||
"h c #917B69",
|
||||
"j c #9B7E67",
|
||||
"k c #A87144",
|
||||
"l c #AC7950",
|
||||
"z c #B37544",
|
||||
"x c #BE7C49",
|
||||
"c c #C35700",
|
||||
"v c #C55800",
|
||||
"b c #C85E01",
|
||||
"n c #C06012",
|
||||
"m c #C36619",
|
||||
"M c #C46A1F",
|
||||
"N c #D46905",
|
||||
"B c #D66D0D",
|
||||
"V c #DE6F06",
|
||||
"C c #D77114",
|
||||
"Z c #D8761B",
|
||||
"A c #C67026",
|
||||
"S c #C7732D",
|
||||
"D c #C87228",
|
||||
"F c #C0773B",
|
||||
"G c #CB7931",
|
||||
"H c #D77928",
|
||||
"J c #DA7A22",
|
||||
"K c #DB7E29",
|
||||
"L c #E46D02",
|
||||
"P c #E67104",
|
||||
"I c #EF7500",
|
||||
"U c #EE7F16",
|
||||
"Y c #F47800",
|
||||
"T c #F47D0A",
|
||||
"R c #C17B43",
|
||||
"E c #AC815E",
|
||||
"W c #B3835C",
|
||||
"Q c #BB885E",
|
||||
"! c #AB8F78",
|
||||
"~ c #AE917B",
|
||||
"^ c #B1957E",
|
||||
"/ c #BD9A7D",
|
||||
"( c #CF833E",
|
||||
") c #D0823C",
|
||||
"_ c #DC8433",
|
||||
"` c #DE8B3E",
|
||||
"' c #F48214",
|
||||
"] c #F18319",
|
||||
"[ c #F5881F",
|
||||
"{ c #EA8E3B",
|
||||
"} c #F58A22",
|
||||
"| c #F99A25",
|
||||
" . c #F99C29",
|
||||
".. c #FAA12E",
|
||||
"X. c #FAA432",
|
||||
"o. c #FBA739",
|
||||
"O. c #FAA835",
|
||||
"+. c #FBAC3B",
|
||||
"@. c #C6834E",
|
||||
"#. c #C28856",
|
||||
"$. c #CA8D57",
|
||||
"%. c #D58C4A",
|
||||
"&. c #DF8F45",
|
||||
"*. c #DD944D",
|
||||
"=. c #D69459",
|
||||
"-. c #C39673",
|
||||
";. c #C79E7C",
|
||||
":. c #CF9C73",
|
||||
">. c #DB9F69",
|
||||
",. c #DFA36A",
|
||||
"<. c #D4A074",
|
||||
"1. c #E1944D",
|
||||
"2. c #E29753",
|
||||
"3. c #E39B5A",
|
||||
"4. c #F79C44",
|
||||
"5. c #E19B63",
|
||||
"6. c #E5A45D",
|
||||
"7. c #FBAE42",
|
||||
"8. c #FBAE4B",
|
||||
"9. c #F5A353",
|
||||
"0. c #FBB144",
|
||||
"q. c #FBB44C",
|
||||
"w. c #FFBF40",
|
||||
"e. c #F6B153",
|
||||
"r. c #F4B75C",
|
||||
"t. c #FBB452",
|
||||
"y. c #FCB854",
|
||||
"u. c #FCBA5B",
|
||||
"i. c #E5A362",
|
||||
"p. c #E5AA6D",
|
||||
"a. c #E8A566",
|
||||
"s. c #E3AC7A",
|
||||
"d. c #E5B17F",
|
||||
"f. c #E3B87C",
|
||||
"g. c #E8B677",
|
||||
"h. c #E8B07D",
|
||||
"j. c #EEBF7B",
|
||||
"k. c #F5AB64",
|
||||
"l. c #F0AD6F",
|
||||
"z. c #F4B06F",
|
||||
"x. c #F0B969",
|
||||
"c. c #F9B069",
|
||||
"v. c #FABC63",
|
||||
"b. c #FBBF68",
|
||||
"n. c #F0BB72",
|
||||
"m. c #F1BA78",
|
||||
"M. c yellow",
|
||||
"N. c #EFC17D",
|
||||
"B. c #FBC06D",
|
||||
"V. c #F4C07C",
|
||||
"C. c #FCC372",
|
||||
"Z. c #FCC57B",
|
||||
"A. c #808080",
|
||||
"S. c #8A8B87",
|
||||
"D. c #8C8D8A",
|
||||
"F. c #929292",
|
||||
"G. c #9B9793",
|
||||
"H. c #9A9A9A",
|
||||
"J. c #9EA19D",
|
||||
"K. c #AE9886",
|
||||
"L. c #A99D94",
|
||||
"P. c #B59982",
|
||||
"I. c #B99C86",
|
||||
"U. c #BC9F89",
|
||||
"Y. c #BDA28B",
|
||||
"T. c #BAA492",
|
||||
"R. c #BDAA9B",
|
||||
"E. c #A3A3A3",
|
||||
"W. c #A6ABA6",
|
||||
"Q. c #AAACA7",
|
||||
"!. c #ACACAB",
|
||||
"~. c #B6B6AD",
|
||||
"^. c #BEB5AE",
|
||||
"/. c #B3B3B3",
|
||||
"(. c #BBBBBB",
|
||||
"). c #D9AB85",
|
||||
"_. c #D9B98B",
|
||||
"`. c #D5BC97",
|
||||
"'. c #D8BD96",
|
||||
"]. c #C7BBA4",
|
||||
"[. c #CDBDA0",
|
||||
"{. c #CCBAAC",
|
||||
"}. c #C0BBB8",
|
||||
"|. c #E6B68A",
|
||||
" X c #E7BA88",
|
||||
".X c #E9B680",
|
||||
"XX c #EAB88F",
|
||||
"oX c #F5BC87",
|
||||
"OX c #CDC4BA",
|
||||
"+X c #DAC6AA",
|
||||
"@X c #F5CB8D",
|
||||
"#X c #FAC28B",
|
||||
"$X c #FDCB82",
|
||||
"%X c #FCCE8C",
|
||||
"&X c #F5C395",
|
||||
"*X c #FBCB9C",
|
||||
"=X c #FDD497",
|
||||
"-X c #FDD59A",
|
||||
";X c #E0CDBE",
|
||||
":X c #EFD0A6",
|
||||
">X c #EFD4AB",
|
||||
",X c #E3D1B5",
|
||||
"<X c #E3D3BC",
|
||||
"1X c #EFD7B4",
|
||||
"2X c #E9D7BC",
|
||||
"3X c #F6C9A0",
|
||||
"4X c #F7D7A7",
|
||||
"5X c #F0D4AC",
|
||||
"6X c #FDD7A1",
|
||||
"7X c #FAD7A9",
|
||||
"8X c #FCD8A3",
|
||||
"9X c #FDDCAC",
|
||||
"0X c #F0D2BA",
|
||||
"qX c #F4D8B0",
|
||||
"wX c #F9DBB4",
|
||||
"eX c #FDE2BA",
|
||||
"rX c #C3C3C2",
|
||||
"tX c #CBC7C4",
|
||||
"yX c #CCCCCB",
|
||||
"uX c #DCCFC4",
|
||||
"iX c #D5D2CC",
|
||||
"pX c #DFD3C0",
|
||||
"aX c #DAD4CC",
|
||||
"sX c #DCD8CD",
|
||||
"dX c #D3D3D3",
|
||||
"fX c #DBDBDA",
|
||||
"gX c #E4DBCE",
|
||||
"hX c #EBDBC4",
|
||||
"jX c #E2DDD6",
|
||||
"kX c #E3DDD9",
|
||||
"lX c #F0DEC3",
|
||||
"zX c #EFE2CE",
|
||||
"xX c #E5E1DC",
|
||||
"cX c #EBE1D2",
|
||||
"vX c #EEE6DB",
|
||||
"bX c #EEE8DE",
|
||||
"nX c #F7E4C7",
|
||||
"mX c #F7E6CE",
|
||||
"MX c #FDE5C2",
|
||||
"NX c #F9E7CD",
|
||||
"BX c #FEE9CA",
|
||||
"VX c #F0E5DC",
|
||||
"CX c #F3EADD",
|
||||
"ZX c #FDECD3",
|
||||
"AX c #FEEFDA",
|
||||
"SX c #FEF1DC",
|
||||
"DX c #E4E4E4",
|
||||
"FX c #EBEBEB",
|
||||
"GX c #F5EFE5",
|
||||
"HX c #FDF2E2",
|
||||
"JX c #FDF6EB",
|
||||
"KX c #FFF8ED",
|
||||
"LX c #F3F3F3",
|
||||
"PX c #F9F7F4",
|
||||
"IX c #FEF9F3",
|
||||
"UX c #FEFEFE",
|
||||
"YX c None",
|
||||
/* pixels */
|
||||
"YXYXYXYXYXYXYXYXYXYXYXYX* * * w w g YXYXYXYXYXYXYXYXYXYXYXYXYXYX",
|
||||
"YXYXYXYXYXYXYXYXYXr d 7 < M D ( A 1 4 y w , YXYXYXYXYXYXYXYXYXYX",
|
||||
"YXYXYXYXYXYXYXr p n *.m.MXIXIXUXUXJXwX*.m 7 w YXYXYXYXYXYXYXYXYX",
|
||||
"YXYXYXYXYXA.u 1 .XHXIXIXUXeX$XC.%XMXUXSX-Xi.4 a > YXYXYXYXYXYXYX",
|
||||
"YXYXYXYXg p G ZXUXSX-XKX6X+.O.+.O.+.C.UXUXIXCXx i 8 YXYXYXYXYXYX",
|
||||
"YXYXYX8 p %.IXIX%X+.O.q.$XX...O. .+.8.8XMXeXIXUX:.3 2 YXYXYXYXYX",
|
||||
"YXYXYXd D SXKXu.+.X.+. .-X .X.o. .+.8.wXt.y.v.HXIX@.a YXYXYXYXYX",
|
||||
"YXYXw 1 9XUXZ.O.O.X... .6Xo.+.0.o.q.7X$Xb.b.b.C.KXPXs t YXYXYXYX",
|
||||
"YXYX7 6.HXSX+.+.| +...+.v.b.q.t.e.V.NX@X@X@X@X@X4XPXuXl YXYXYXYX",
|
||||
"YXt M 9XIXIX0.X.0.o.q.8.t.eXv.n.f.cX1X>X5X5X5X:X:XHXDX).h YXYXYX",
|
||||
"YXa p.UXAX9X9XZ.X.t.t.v.b.ZXg._.+XCX<X<XhXhX2X,X<XbXFXfXH.YXYXYX",
|
||||
", < HXHX0.+. .u.9XC.b.B.n.hXpX].DXkXdXaXaXaX{.d f ;.jXDXH.YXYXYX",
|
||||
"9 S UX$XO.O.+...X.%XZX:X'.aXsX~.yXrXfX(.(.yXU.2.r.a.f aX/.A.YXYX",
|
||||
"9 >.UXq.+... ...+.t.N.VXPXYXYXYXYXJ.E././.rXU.a.Y T l.f (.A.YXYX",
|
||||
"5 .XUX+.X...X.+.q.x._.[.iXYXYXw.YXD.S.(./.rXU.5.Y Y } =.T.A.YXYX",
|
||||
"5 ,.UXr.+.O.O.+.r.f.`.aXW.YXM.YXYXo o /./.}.I.3.n N ] 9.y A.YXYX",
|
||||
"> ) UX-X+.O.+.q.j.hXjXdXQ.YXYXYX+ . F.!.!.rXI.2.5 I.7 U R & YXYX",
|
||||
"> A BXUX8XB.4XnXcXOXtXdX!.S.o % # (.Q.!.(.P.1.y dX}.9 P ; O YX",
|
||||
", 1 %XHXUXNX>X2XsXfXfXdXdX/.h k ).K.W.W./.rXP.&.0 yXiXiX8 @ + @ ",
|
||||
"YX7 XIXKXqXhXvXFXDXdXdXyX}.u 0X0Xw E.W.(.rXK.&.y yXyXyXF.O O O ",
|
||||
"YX5 f UXGXmXGXLXFXFXDXdXyX(.u XX5.R L./.(.(.P.K 0 yXyX/.A.YXYXYX",
|
||||
"YX, 1 VXUXJXPXLXLXFXFXDXdXyXd } I H k (.(.(.P.K 0 tXyXF.YXYXYXYX",
|
||||
"YXYX9 -.UXUXPXLXLXFXFXDXfXdXy L L c l (./.(.~ K 0 yXE.A.YXYXYXYX",
|
||||
"YXYXc E uXUXUXPXLXLXFXDXfXfX{.u 5 u (.(.(./.! J 0 /.F.YXYXYXYXYX",
|
||||
"YXYXYX7 G.FXPXUXLXLXFXFXDXfXfXdXyXyXrXrX(.(.! Z 8 F.A.YXYXYXYXYX",
|
||||
"YXYXYXYXA.H.dXUXUXLXLXFXDXDXfXfXdXyXyXtXrX(.^ C $ A.YXYXYXYXYXYX",
|
||||
"YXYXYXYXYXA.H./.LXPXLXFXDXDXDXfXfXdXtXR.R.}.j B = YXYXYXYXYXYXYX",
|
||||
"YXYXYXYXYXYXYXA.H.rXFXLXFXFXDXfXQ Q <.|.s.$.p V = YXYXYXYXYXYXYX",
|
||||
"YXYXYXYXYXYXYXYXYXA.H.J./.(.tXW h.*X*X#Xc.4.} ] = YXYXYXYXYXYXYX",
|
||||
"YXYXYXYXYXYXYXYXYXYXYXYXA.A.A.$ *.oX*X&Xl.{ L b = YXYXYXYXYXYXYX",
|
||||
"YXYXYXYXYXYXYXYXYXYXYXYXYXYXYXO @ = - , , - = + O YXYXYXYXYXYXYX",
|
||||
"YXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXO O O O YXYXYXYXYXYXYXYXYXYX"
|
||||
};
|
1
media
Submodule
1
media
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 402e8375511470c61021956edad72e1080f51c8e
|
105
pyrip.py
Normal file
105
pyrip.py
Normal file
@ -0,0 +1,105 @@
|
||||
import argparse
|
||||
import config
|
||||
import logging
|
||||
import media
|
||||
import report
|
||||
import sys
|
||||
import os
|
||||
import fstools
|
||||
|
||||
try:
|
||||
from config import APP_NAME as ROOT_LOGGER_NAME
|
||||
except ImportError:
|
||||
ROOT_LOGGER_NAME = 'root'
|
||||
logger = logging.getLogger(ROOT_LOGGER_NAME).getChild(__name__)
|
||||
|
||||
|
||||
def progress_callback_rip(p: float):
|
||||
bar_length = 40
|
||||
progress = int(bar_length * p)
|
||||
out = "\rRipping.... - [ "
|
||||
out += "*" * progress
|
||||
out += "-" * (bar_length - progress)
|
||||
out += " ] %5.1f%%" % (p * 100)
|
||||
sys.stdout.write(out)
|
||||
|
||||
|
||||
def progress_callback_enc(p: float):
|
||||
bar_length = 40
|
||||
progress = int(bar_length * p)
|
||||
out = "\rEncoding... - [ "
|
||||
out += "*" * progress
|
||||
out += "-" * (bar_length - progress)
|
||||
out += " ] %5.1f%%" % (p * 100)
|
||||
sys.stdout.write(out)
|
||||
|
||||
|
||||
def cddb_user_callback(what: int, info: dict):
|
||||
if what == media.CALLBACK_CDDB_CHOICE:
|
||||
keys = tuple(info.keys())
|
||||
print("Multiple cddb entries detected:")
|
||||
print("-------------------------------")
|
||||
for i in range(0, len(keys)):
|
||||
print("%2d. %s" % (i + 1, info[keys[i]]))
|
||||
n = None
|
||||
while not n:
|
||||
fb = input("Choose: ")
|
||||
try:
|
||||
fb = int(fb)
|
||||
except ValueError:
|
||||
n = None
|
||||
else:
|
||||
if fb > 0 and fb <= len(keys):
|
||||
n = fb
|
||||
if n is None:
|
||||
print("Use a choice from above!")
|
||||
print()
|
||||
return keys[n - 1]
|
||||
elif what == media.CALLBACK_MAN_INPUT:
|
||||
print("No cddb entries detected:")
|
||||
print("-------------------------")
|
||||
for key in info:
|
||||
info[key] = input(key[0].upper() + key[1:] + ": ")
|
||||
return info
|
||||
|
||||
|
||||
def main(**kwargs):
|
||||
disc_data = media.get_media_data(media.get_disc_device(), cddb_user_callback)
|
||||
|
||||
if disc_data is None:
|
||||
logger.error("Could not reading disc_data")
|
||||
sys.exit(1)
|
||||
print("Found Disc:")
|
||||
print("===========")
|
||||
print()
|
||||
print(disc_data[media.common.KEY_ARTIST], "-", disc_data[media.common.KEY_ALBUM])
|
||||
print("-" * (len(disc_data[media.common.KEY_ARTIST]) + len(disc_data[media.common.KEY_ALBUM]) + 3))
|
||||
for track_info in disc_data["tracks"]:
|
||||
i = track_info[media.common.KEY_TRACK]
|
||||
print("%2d. %s" % (i, track_info[media.common.KEY_TITLE]))
|
||||
wavfile = media.track_to_targetpath(kwargs.get("basepath"), track_info, 'wav')
|
||||
try:
|
||||
fstools.mkdir(os.path.dirname(wavfile))
|
||||
except PermissionError:
|
||||
logger.exception("Unable to create ripping target path: %s", os.path.dirname(wavfile))
|
||||
sys.exit(1)
|
||||
rv = media.disc_track_rip(i, wavfile, progress_callback_rip)
|
||||
if rv == 0:
|
||||
print()
|
||||
rv = media.wav_to_mp3(wavfile, kwargs.get("basepath"), track_info, progress_callback_enc)
|
||||
print()
|
||||
os.remove(wavfile)
|
||||
if rv != 0:
|
||||
logger.error("Error while ripping or encoding...")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
default_baspath = os.path.join(os.getenv("HOME"), "rip")
|
||||
parser = argparse.ArgumentParser(description='Description')
|
||||
parser.add_argument('-v', '--verbose', help='Description for foo argument', action='store_true')
|
||||
parser.add_argument('-b', '--basepath', help=f'The rip and encode basepath (default is {default_baspath})', default=default_baspath)
|
||||
args = vars(parser.parse_args())
|
||||
|
||||
report.stdoutLoggingConfigure(log_name_lvl=((config.APP_NAME, logging.DEBUG if args.get('verbose') else logging.ERROR),))
|
||||
|
||||
main(**args)
|
384
pyrip.wxg
Normal file
384
pyrip.wxg
Normal file
@ -0,0 +1,384 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- generated by wxGlade 0.7.1 on Tue Jul 12 10:30:16 2016 -->
|
||||
|
||||
<application class="" encoding="UTF-8" for_version="3.0" header_extension=".h" indent_amount="4" indent_symbol="space" is_template="0" language="python" name="" option="0" overwrite="0" path="pyrip.py" source_extension=".cpp" top_window="frame_1" use_gettext="1" use_new_namespace="1">
|
||||
<object class="MainFrame" name="frame_1" base="EditFrame">
|
||||
<title>PyRip</title>
|
||||
<size>1033, 761</size>
|
||||
<object class="wxBoxSizer" name="sizer_main" base="EditBoxSizer">
|
||||
<orient>wxVERTICAL</orient>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>1</option>
|
||||
<object class="wxNotebook" name="notebook_main" base="EditNotebook">
|
||||
<tabs>
|
||||
<tab window="notebook_main_rip">Rip</tab>
|
||||
<tab window="notebook_main_config">Config</tab>
|
||||
</tabs>
|
||||
<object class="wxPanel" name="notebook_main_rip" base="EditPanel">
|
||||
<style>wxTAB_TRAVERSAL</style>
|
||||
<object class="wxBoxSizer" name="sizer_rip" base="EditBoxSizer">
|
||||
<orient>wxVERTICAL</orient>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>1</option>
|
||||
<object class="wxBoxSizer" name="sizer_rip_cd_data" base="EditBoxSizer">
|
||||
<orient>wxHORIZONTAL</orient>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>1</option>
|
||||
<object class="wxListBox" name="track_list" base="EditListBox">
|
||||
<style>wxLB_MULTIPLE</style>
|
||||
<selection>0</selection>
|
||||
<choices>
|
||||
</choices>
|
||||
<events>
|
||||
<handler event="EVT_LISTBOX">evt_tracklist</handler>
|
||||
</events>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>1</option>
|
||||
<object class="wxBoxSizer" name="sizer_rip_track_data" base="EditBoxSizer">
|
||||
<orient>wxVERTICAL</orient>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxStaticBoxSizer" name="sizer_artist" base="EditStaticBoxSizer">
|
||||
<orient>wxVERTICAL</orient>
|
||||
<label>Artist</label>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxTextCtrl" name="text_ctrl_artist" base="EditTextCtrl">
|
||||
<events>
|
||||
<handler event="EVT_TEXT">evt_artist_changed</handler>
|
||||
</events>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxStaticBoxSizer" name="sizer_album" base="EditStaticBoxSizer">
|
||||
<orient>wxVERTICAL</orient>
|
||||
<label>Album</label>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxTextCtrl" name="text_ctrl_album" base="EditTextCtrl">
|
||||
<events>
|
||||
<handler event="EVT_TEXT">evt_album_changed</handler>
|
||||
</events>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxStaticBoxSizer" name="sizer_year" base="EditStaticBoxSizer">
|
||||
<orient>wxVERTICAL</orient>
|
||||
<label>Year</label>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxTextCtrl" name="text_ctrl_year" base="EditTextCtrl">
|
||||
<events>
|
||||
<handler event="EVT_TEXT">evt_year_changed</handler>
|
||||
</events>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxStaticBoxSizer" name="sizer_genre" base="EditStaticBoxSizer">
|
||||
<orient>wxVERTICAL</orient>
|
||||
<label>Genre</label>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxTextCtrl" name="text_ctrl_genre" base="EditTextCtrl">
|
||||
<events>
|
||||
<handler event="EVT_TEXT">evt_genre_changed</handler>
|
||||
</events>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxStaticBoxSizer" name="sizer_title" base="EditStaticBoxSizer">
|
||||
<orient>wxVERTICAL</orient>
|
||||
<label>Title</label>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxTextCtrl" name="text_ctrl_title" base="EditTextCtrl">
|
||||
<events>
|
||||
<handler event="EVT_TEXT">evt_title_changed</handler>
|
||||
</events>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxStaticBoxSizer" name="sizer_track_no" base="EditStaticBoxSizer">
|
||||
<orient>wxVERTICAL</orient>
|
||||
<label>Trucknumber</label>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxTextCtrl" name="text_ctrl_track_no" base="EditTextCtrl">
|
||||
<events>
|
||||
<handler event="EVT_TEXT">evt_track_no_changed</handler>
|
||||
</events>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxStaticBoxSizer" name="sizer_comment" base="EditStaticBoxSizer">
|
||||
<orient>wxVERTICAL</orient>
|
||||
<label>Comment</label>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxTextCtrl" name="text_ctrl_comment" base="EditTextCtrl">
|
||||
<events>
|
||||
<handler event="EVT_TEXT">evt_comment_changed</handler>
|
||||
</events>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<border>0</border>
|
||||
<option>1</option>
|
||||
<object class="spacer" name="spacer" base="EditSpacer">
|
||||
<height>20</height>
|
||||
<width>20</width>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxStaticBoxSizer" name="sizer_overall_progress" base="EditStaticBoxSizer">
|
||||
<orient>wxVERTICAL</orient>
|
||||
<label>Overall Progress</label>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxGauge" name="gauge_overall_progress" base="EditGauge">
|
||||
<range>1000</range>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxStaticBoxSizer" name="sizer_rip_progress" base="EditStaticBoxSizer">
|
||||
<orient>wxVERTICAL</orient>
|
||||
<label>Rip Progress</label>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxGauge" name="gauge_rip_progress" base="EditGauge">
|
||||
<range>1000</range>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxStaticBoxSizer" name="sizer_encode_progress" base="EditStaticBoxSizer">
|
||||
<orient>wxVERTICAL</orient>
|
||||
<label>Encode Progress</label>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxGauge" name="gauge_encode_progress" base="EditGauge">
|
||||
<range>1000</range>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxBoxSizer" name="sizer_rip_buttons" base="EditBoxSizer">
|
||||
<orient>wxHORIZONTAL</orient>
|
||||
<object class="sizeritem">
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="spacer" name="spacer" base="EditSpacer">
|
||||
<height>20</height>
|
||||
<width>20</width>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxButton" name="button_rip" base="EditButton">
|
||||
<label>Rip</label>
|
||||
<events>
|
||||
<handler event="EVT_BUTTON">evt_rip</handler>
|
||||
</events>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="spacer" name="spacer" base="EditSpacer">
|
||||
<height>20</height>
|
||||
<width>20</width>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxButton" name="button_read_disc" base="EditButton">
|
||||
<label>Read Disc</label>
|
||||
<events>
|
||||
<handler event="EVT_BUTTON">evt_new_disc</handler>
|
||||
</events>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="spacer" name="spacer" base="EditSpacer">
|
||||
<height>20</height>
|
||||
<width>20</width>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="wxPanel" name="notebook_main_config" base="EditPanel">
|
||||
<style>wxTAB_TRAVERSAL</style>
|
||||
<object class="wxBoxSizer" name="sizer_notebook_main_config" base="EditBoxSizer">
|
||||
<orient>wxVERTICAL</orient>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxStaticBoxSizer" name="sizer_target_path" base="EditStaticBoxSizer">
|
||||
<orient>wxVERTICAL</orient>
|
||||
<label>Target Path</label>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxTextCtrl" name="text_ctrl_target_path" base="EditTextCtrl">
|
||||
<events>
|
||||
<handler event="EVT_TEXT">evt_target_path_changed</handler>
|
||||
</events>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxStaticBoxSizer" name="sizer_device" base="EditStaticBoxSizer">
|
||||
<orient>wxVERTICAL</orient>
|
||||
<label>Device</label>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxTextCtrl" name="text_ctrl_device" base="EditTextCtrl">
|
||||
<events>
|
||||
<handler event="EVT_TEXT">evt_device_changed</handler>
|
||||
</events>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxStaticBoxSizer" name="sizer_default_comment" base="EditStaticBoxSizer">
|
||||
<orient>wxVERTICAL</orient>
|
||||
<label>Default Comment</label>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxTextCtrl" name="text_ctrl_default_comment" base="EditTextCtrl">
|
||||
<events>
|
||||
<handler event="EVT_TEXT">evt_default_comment_changed</handler>
|
||||
</events>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxStaticBoxSizer" name="sizer_track_list_string" base="EditStaticBoxSizer">
|
||||
<orient>wxVERTICAL</orient>
|
||||
<label>Track List Sting</label>
|
||||
<object class="sizeritem">
|
||||
<flag>wxEXPAND</flag>
|
||||
<border>0</border>
|
||||
<option>0</option>
|
||||
<object class="wxTextCtrl" name="text_ctrl_track_list_string" base="EditTextCtrl">
|
||||
<events>
|
||||
<handler event="EVT_TEXT">evt_track_list_string_changed</handler>
|
||||
</events>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</application>
|
1
report
Submodule
1
report
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 7003c13ef8c7e7c3a55a545cbbad4039cc024a9f
|
1
task
Submodule
1
task
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 7583bb5f3bd2420c901374ba95b678af6ce88433
|
Loading…
x
Reference in New Issue
Block a user