Просмотр исходного кода

Initial console based pyrip implementation

master
Dirk Alders 3 месяцев назад
Родитель
Сommit
48dc481f26
11 измененных файлов: 831 добавлений и 0 удалений
  1. 12
    0
      .gitmodules
  2. 16
    0
      .vscode/launch.json
  3. 14
    0
      .vscode/settings.json
  4. 1
    0
      config.py
  5. 1
    0
      fstools
  6. 295
    0
      icon.xpm
  7. 1
    0
      media
  8. 105
    0
      pyrip.py
  9. 384
    0
      pyrip.wxg
  10. 1
    0
      report
  11. 1
    0
      task

+ 12
- 0
.gitmodules Просмотреть файл

@@ -0,0 +1,12 @@
1
+[submodule "fstools"]
2
+	path = fstools
3
+	url = https://git.mount-mockery.de/pylib/fstools.git
4
+[submodule "report"]
5
+	path = report
6
+	url = https://git.mount-mockery.de/pylib/report.git
7
+[submodule "task"]
8
+	path = task
9
+	url = https://git.mount-mockery.de/pylib/task.git
10
+[submodule "media"]
11
+	path = media
12
+	url = https://git.mount-mockery.de/pylib/media.git

+ 16
- 0
.vscode/launch.json Просмотреть файл

@@ -0,0 +1,16 @@
1
+{
2
+    // Verwendet IntelliSense zum Ermitteln möglicher Attribute.
3
+    // Zeigen Sie auf vorhandene Attribute, um die zugehörigen Beschreibungen anzuzeigen.
4
+    // Weitere Informationen finden Sie unter https://go.microsoft.com/fwlink/?linkid=830387
5
+    "version": "0.2.0",
6
+    "configurations": [
7
+        {
8
+            "name": "Python: Main File execution",
9
+            "type": "debugpy",
10
+            "request": "launch",
11
+            "program": "${workspaceFolder}/pyrip.py",
12
+            "console": "integratedTerminal",
13
+            "justMyCode": true
14
+        }
15
+    ]
16
+}

+ 14
- 0
.vscode/settings.json Просмотреть файл

@@ -0,0 +1,14 @@
1
+{
2
+  "python.defaultInterpreterPath": "./venv/bin/python",
3
+  "autopep8.args": ["--max-line-length=150"],
4
+  "[python]": {
5
+    "python.formatting.provider": "none",
6
+    "editor.defaultFormatter": "ms-python.autopep8",
7
+    "editor.formatOnSave": true
8
+  },
9
+  "editor.fontSize": 14,
10
+  "emmet.includeLanguages": { "django-html": "html" },
11
+  "python.testing.pytestArgs": ["-v", "--cov", "--cov-report=xml", "__test__"],
12
+  "python.testing.unittestEnabled": false,
13
+  "python.testing.pytestEnabled": true
14
+}

+ 1
- 0
config.py Просмотреть файл

@@ -0,0 +1 @@
1
+APP_NAME = 'pyrip'

+ 1
- 0
fstools

@@ -0,0 +1 @@
1
+Subproject commit c10e8792abb05671dab6de51cdadda3bf8ead50f

+ 295
- 0
icon.xpm Просмотреть файл

@@ -0,0 +1,295 @@
1
+/* XPM */
2
+static char *sound-juicer[] = {
3
+/* columns rows colors chars-per-pixel */
4
+"32 32 257 2",
5
+"   c #79604B",
6
+".  c #7E6754",
7
+"X  c #7F756A",
8
+"o  c #7D7D7B",
9
+"O  c #974503",
10
+"+  c #9B4701",
11
+"@  c #9E4803",
12
+"#  c #9A4B0D",
13
+"$  c #9C571D",
14
+"%  c #875937",
15
+"&  c #925B2E",
16
+"*  c #9F683C",
17
+"=  c #A34B02",
18
+"-  c #AA4D02",
19
+";  c #A6520B",
20
+":  c #A4591D",
21
+">  c #AF5D1A",
22
+",  c #BA5300",
23
+"<  c #BC5807",
24
+"1  c #BC5B0C",
25
+"2  c #B35912",
26
+"3  c #B55F1B",
27
+"4  c #BC5D10",
28
+"5  c #AC5F21",
29
+"6  c #BF6311",
30
+"7  c #B9621C",
31
+"8  c #A4622B",
32
+"9  c #AB6025",
33
+"0  c #AA652C",
34
+"q  c #AD682E",
35
+"w  c #A36635",
36
+"e  c #A0673A",
37
+"r  c #A1693D",
38
+"t  c #A86733",
39
+"y  c #AE6A33",
40
+"u  c #A96D3C",
41
+"i  c #B36222",
42
+"p  c #B46628",
43
+"a  c #B2692D",
44
+"s  c #BA6A2A",
45
+"d  c #B16C33",
46
+"f  c #B5733C",
47
+"g  c #9C6A43",
48
+"h  c #917B69",
49
+"j  c #9B7E67",
50
+"k  c #A87144",
51
+"l  c #AC7950",
52
+"z  c #B37544",
53
+"x  c #BE7C49",
54
+"c  c #C35700",
55
+"v  c #C55800",
56
+"b  c #C85E01",
57
+"n  c #C06012",
58
+"m  c #C36619",
59
+"M  c #C46A1F",
60
+"N  c #D46905",
61
+"B  c #D66D0D",
62
+"V  c #DE6F06",
63
+"C  c #D77114",
64
+"Z  c #D8761B",
65
+"A  c #C67026",
66
+"S  c #C7732D",
67
+"D  c #C87228",
68
+"F  c #C0773B",
69
+"G  c #CB7931",
70
+"H  c #D77928",
71
+"J  c #DA7A22",
72
+"K  c #DB7E29",
73
+"L  c #E46D02",
74
+"P  c #E67104",
75
+"I  c #EF7500",
76
+"U  c #EE7F16",
77
+"Y  c #F47800",
78
+"T  c #F47D0A",
79
+"R  c #C17B43",
80
+"E  c #AC815E",
81
+"W  c #B3835C",
82
+"Q  c #BB885E",
83
+"!  c #AB8F78",
84
+"~  c #AE917B",
85
+"^  c #B1957E",
86
+"/  c #BD9A7D",
87
+"(  c #CF833E",
88
+")  c #D0823C",
89
+"_  c #DC8433",
90
+"`  c #DE8B3E",
91
+"'  c #F48214",
92
+"]  c #F18319",
93
+"[  c #F5881F",
94
+"{  c #EA8E3B",
95
+"}  c #F58A22",
96
+"|  c #F99A25",
97
+" . c #F99C29",
98
+".. c #FAA12E",
99
+"X. c #FAA432",
100
+"o. c #FBA739",
101
+"O. c #FAA835",
102
+"+. c #FBAC3B",
103
+"@. c #C6834E",
104
+"#. c #C28856",
105
+"$. c #CA8D57",
106
+"%. c #D58C4A",
107
+"&. c #DF8F45",
108
+"*. c #DD944D",
109
+"=. c #D69459",
110
+"-. c #C39673",
111
+";. c #C79E7C",
112
+":. c #CF9C73",
113
+">. c #DB9F69",
114
+",. c #DFA36A",
115
+"<. c #D4A074",
116
+"1. c #E1944D",
117
+"2. c #E29753",
118
+"3. c #E39B5A",
119
+"4. c #F79C44",
120
+"5. c #E19B63",
121
+"6. c #E5A45D",
122
+"7. c #FBAE42",
123
+"8. c #FBAE4B",
124
+"9. c #F5A353",
125
+"0. c #FBB144",
126
+"q. c #FBB44C",
127
+"w. c #FFBF40",
128
+"e. c #F6B153",
129
+"r. c #F4B75C",
130
+"t. c #FBB452",
131
+"y. c #FCB854",
132
+"u. c #FCBA5B",
133
+"i. c #E5A362",
134
+"p. c #E5AA6D",
135
+"a. c #E8A566",
136
+"s. c #E3AC7A",
137
+"d. c #E5B17F",
138
+"f. c #E3B87C",
139
+"g. c #E8B677",
140
+"h. c #E8B07D",
141
+"j. c #EEBF7B",
142
+"k. c #F5AB64",
143
+"l. c #F0AD6F",
144
+"z. c #F4B06F",
145
+"x. c #F0B969",
146
+"c. c #F9B069",
147
+"v. c #FABC63",
148
+"b. c #FBBF68",
149
+"n. c #F0BB72",
150
+"m. c #F1BA78",
151
+"M. c yellow",
152
+"N. c #EFC17D",
153
+"B. c #FBC06D",
154
+"V. c #F4C07C",
155
+"C. c #FCC372",
156
+"Z. c #FCC57B",
157
+"A. c #808080",
158
+"S. c #8A8B87",
159
+"D. c #8C8D8A",
160
+"F. c #929292",
161
+"G. c #9B9793",
162
+"H. c #9A9A9A",
163
+"J. c #9EA19D",
164
+"K. c #AE9886",
165
+"L. c #A99D94",
166
+"P. c #B59982",
167
+"I. c #B99C86",
168
+"U. c #BC9F89",
169
+"Y. c #BDA28B",
170
+"T. c #BAA492",
171
+"R. c #BDAA9B",
172
+"E. c #A3A3A3",
173
+"W. c #A6ABA6",
174
+"Q. c #AAACA7",
175
+"!. c #ACACAB",
176
+"~. c #B6B6AD",
177
+"^. c #BEB5AE",
178
+"/. c #B3B3B3",
179
+"(. c #BBBBBB",
180
+"). c #D9AB85",
181
+"_. c #D9B98B",
182
+"`. c #D5BC97",
183
+"'. c #D8BD96",
184
+"]. c #C7BBA4",
185
+"[. c #CDBDA0",
186
+"{. c #CCBAAC",
187
+"}. c #C0BBB8",
188
+"|. c #E6B68A",
189
+" X c #E7BA88",
190
+".X c #E9B680",
191
+"XX c #EAB88F",
192
+"oX c #F5BC87",
193
+"OX c #CDC4BA",
194
+"+X c #DAC6AA",
195
+"@X c #F5CB8D",
196
+"#X c #FAC28B",
197
+"$X c #FDCB82",
198
+"%X c #FCCE8C",
199
+"&X c #F5C395",
200
+"*X c #FBCB9C",
201
+"=X c #FDD497",
202
+"-X c #FDD59A",
203
+";X c #E0CDBE",
204
+":X c #EFD0A6",
205
+">X c #EFD4AB",
206
+",X c #E3D1B5",
207
+"<X c #E3D3BC",
208
+"1X c #EFD7B4",
209
+"2X c #E9D7BC",
210
+"3X c #F6C9A0",
211
+"4X c #F7D7A7",
212
+"5X c #F0D4AC",
213
+"6X c #FDD7A1",
214
+"7X c #FAD7A9",
215
+"8X c #FCD8A3",
216
+"9X c #FDDCAC",
217
+"0X c #F0D2BA",
218
+"qX c #F4D8B0",
219
+"wX c #F9DBB4",
220
+"eX c #FDE2BA",
221
+"rX c #C3C3C2",
222
+"tX c #CBC7C4",
223
+"yX c #CCCCCB",
224
+"uX c #DCCFC4",
225
+"iX c #D5D2CC",
226
+"pX c #DFD3C0",
227
+"aX c #DAD4CC",
228
+"sX c #DCD8CD",
229
+"dX c #D3D3D3",
230
+"fX c #DBDBDA",
231
+"gX c #E4DBCE",
232
+"hX c #EBDBC4",
233
+"jX c #E2DDD6",
234
+"kX c #E3DDD9",
235
+"lX c #F0DEC3",
236
+"zX c #EFE2CE",
237
+"xX c #E5E1DC",
238
+"cX c #EBE1D2",
239
+"vX c #EEE6DB",
240
+"bX c #EEE8DE",
241
+"nX c #F7E4C7",
242
+"mX c #F7E6CE",
243
+"MX c #FDE5C2",
244
+"NX c #F9E7CD",
245
+"BX c #FEE9CA",
246
+"VX c #F0E5DC",
247
+"CX c #F3EADD",
248
+"ZX c #FDECD3",
249
+"AX c #FEEFDA",
250
+"SX c #FEF1DC",
251
+"DX c #E4E4E4",
252
+"FX c #EBEBEB",
253
+"GX c #F5EFE5",
254
+"HX c #FDF2E2",
255
+"JX c #FDF6EB",
256
+"KX c #FFF8ED",
257
+"LX c #F3F3F3",
258
+"PX c #F9F7F4",
259
+"IX c #FEF9F3",
260
+"UX c #FEFEFE",
261
+"YX c None",
262
+/* pixels */
263
+"YXYXYXYXYXYXYXYXYXYXYXYX* * * w w g YXYXYXYXYXYXYXYXYXYXYXYXYXYX",
264
+"YXYXYXYXYXYXYXYXYXr d 7 < M D ( A 1 4 y w , YXYXYXYXYXYXYXYXYXYX",
265
+"YXYXYXYXYXYXYXr p n *.m.MXIXIXUXUXJXwX*.m 7 w YXYXYXYXYXYXYXYXYX",
266
+"YXYXYXYXYXA.u 1 .XHXIXIXUXeX$XC.%XMXUXSX-Xi.4 a > YXYXYXYXYXYXYX",
267
+"YXYXYXYXg p G ZXUXSX-XKX6X+.O.+.O.+.C.UXUXIXCXx i 8 YXYXYXYXYXYX",
268
+"YXYXYX8 p %.IXIX%X+.O.q.$XX...O. .+.8.8XMXeXIXUX:.3 2 YXYXYXYXYX",
269
+"YXYXYXd D SXKXu.+.X.+. .-X .X.o. .+.8.wXt.y.v.HXIX@.a YXYXYXYXYX",
270
+"YXYXw 1 9XUXZ.O.O.X... .6Xo.+.0.o.q.7X$Xb.b.b.C.KXPXs t YXYXYXYX",
271
+"YXYX7 6.HXSX+.+.| +...+.v.b.q.t.e.V.NX@X@X@X@X@X4XPXuXl YXYXYXYX",
272
+"YXt M 9XIXIX0.X.0.o.q.8.t.eXv.n.f.cX1X>X5X5X5X:X:XHXDX).h YXYXYX",
273
+"YXa p.UXAX9X9XZ.X.t.t.v.b.ZXg._.+XCX<X<XhXhX2X,X<XbXFXfXH.YXYXYX",
274
+", < HXHX0.+. .u.9XC.b.B.n.hXpX].DXkXdXaXaXaX{.d f ;.jXDXH.YXYXYX",
275
+"9 S UX$XO.O.+...X.%XZX:X'.aXsX~.yXrXfX(.(.yXU.2.r.a.f aX/.A.YXYX",
276
+"9 >.UXq.+... ...+.t.N.VXPXYXYXYXYXJ.E././.rXU.a.Y T l.f (.A.YXYX",
277
+"5 .XUX+.X...X.+.q.x._.[.iXYXYXw.YXD.S.(./.rXU.5.Y Y } =.T.A.YXYX",
278
+"5 ,.UXr.+.O.O.+.r.f.`.aXW.YXM.YXYXo o /./.}.I.3.n N ] 9.y A.YXYX",
279
+"> ) UX-X+.O.+.q.j.hXjXdXQ.YXYXYX+ . F.!.!.rXI.2.5 I.7 U R & YXYX",
280
+"> A BXUX8XB.4XnXcXOXtXdX!.S.o % #   (.Q.!.(.P.1.y dX}.9 P ; O YX",
281
+", 1 %XHXUXNX>X2XsXfXfXdXdX/.h k ).K.W.W./.rXP.&.0 yXiXiX8 @ + @ ",
282
+"YX7  XIXKXqXhXvXFXDXdXdXyX}.u 0X0Xw E.W.(.rXK.&.y yXyXyXF.O O O ",
283
+"YX5 f UXGXmXGXLXFXFXDXdXyX(.u XX5.R L./.(.(.P.K 0 yXyX/.A.YXYXYX",
284
+"YX, 1 VXUXJXPXLXLXFXFXDXdXyXd } I H k (.(.(.P.K 0 tXyXF.YXYXYXYX",
285
+"YXYX9 -.UXUXPXLXLXFXFXDXfXdXy L L c l (./.(.~ K 0 yXE.A.YXYXYXYX",
286
+"YXYXc E uXUXUXPXLXLXFXDXfXfX{.u 5 u (.(.(./.! J 0 /.F.YXYXYXYXYX",
287
+"YXYXYX7 G.FXPXUXLXLXFXFXDXfXfXdXyXyXrXrX(.(.! Z 8 F.A.YXYXYXYXYX",
288
+"YXYXYXYXA.H.dXUXUXLXLXFXDXDXfXfXdXyXyXtXrX(.^ C $ A.YXYXYXYXYXYX",
289
+"YXYXYXYXYXA.H./.LXPXLXFXDXDXDXfXfXdXtXR.R.}.j B = YXYXYXYXYXYXYX",
290
+"YXYXYXYXYXYXYXA.H.rXFXLXFXFXDXfXQ Q <.|.s.$.p V = YXYXYXYXYXYXYX",
291
+"YXYXYXYXYXYXYXYXYXA.H.J./.(.tXW h.*X*X#Xc.4.} ] = YXYXYXYXYXYXYX",
292
+"YXYXYXYXYXYXYXYXYXYXYXYXA.A.A.$ *.oX*X&Xl.{ L b = YXYXYXYXYXYXYX",
293
+"YXYXYXYXYXYXYXYXYXYXYXYXYXYXYXO @ = - , , - = + O YXYXYXYXYXYXYX",
294
+"YXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXO O O O YXYXYXYXYXYXYXYXYXYX"
295
+};

+ 1
- 0
media

@@ -0,0 +1 @@
1
+Subproject commit 402e8375511470c61021956edad72e1080f51c8e

+ 105
- 0
pyrip.py Просмотреть файл

@@ -0,0 +1,105 @@
1
+import argparse
2
+import config
3
+import logging
4
+import media
5
+import report
6
+import sys
7
+import os
8
+import fstools
9
+
10
+try:
11
+    from config import APP_NAME as ROOT_LOGGER_NAME
12
+except ImportError:
13
+    ROOT_LOGGER_NAME = 'root'
14
+logger = logging.getLogger(ROOT_LOGGER_NAME).getChild(__name__)
15
+
16
+
17
+def progress_callback_rip(p: float):
18
+    bar_length = 40
19
+    progress = int(bar_length * p)
20
+    out = "\rRipping.... - [ "
21
+    out += "*" * progress
22
+    out += "-" * (bar_length - progress)
23
+    out += " ] %5.1f%%" % (p * 100)
24
+    sys.stdout.write(out)
25
+
26
+
27
+def progress_callback_enc(p: float):
28
+    bar_length = 40
29
+    progress = int(bar_length * p)
30
+    out = "\rEncoding... - [ "
31
+    out += "*" * progress
32
+    out += "-" * (bar_length - progress)
33
+    out += " ] %5.1f%%" % (p * 100)
34
+    sys.stdout.write(out)
35
+
36
+
37
+def cddb_user_callback(what: int, info: dict):
38
+    if what == media.CALLBACK_CDDB_CHOICE:
39
+        keys = tuple(info.keys())
40
+        print("Multiple cddb entries detected:")
41
+        print("-------------------------------")
42
+        for i in range(0, len(keys)):
43
+            print("%2d. %s" % (i + 1, info[keys[i]]))
44
+        n = None
45
+        while not n:
46
+            fb = input("Choose: ")
47
+            try:
48
+                fb = int(fb)
49
+            except ValueError:
50
+                n = None
51
+            else:
52
+                if fb > 0 and fb <= len(keys):
53
+                    n = fb
54
+            if n is None:
55
+                print("Use a choice from above!")
56
+            print()
57
+        return keys[n - 1]
58
+    elif what == media.CALLBACK_MAN_INPUT:
59
+        print("No cddb entries detected:")
60
+        print("-------------------------")
61
+        for key in info:
62
+            info[key] = input(key[0].upper() + key[1:] + ": ")
63
+        return info
64
+
65
+
66
+def main(**kwargs):
67
+    disc_data = media.get_media_data(media.get_disc_device(), cddb_user_callback)
68
+
69
+    if disc_data is None:
70
+        logger.error("Could not reading disc_data")
71
+        sys.exit(1)
72
+    print("Found Disc:")
73
+    print("===========")
74
+    print()
75
+    print(disc_data[media.common.KEY_ARTIST], "-", disc_data[media.common.KEY_ALBUM])
76
+    print("-" * (len(disc_data[media.common.KEY_ARTIST]) + len(disc_data[media.common.KEY_ALBUM]) + 3))
77
+    for track_info in disc_data["tracks"]:
78
+        i = track_info[media.common.KEY_TRACK]
79
+        print("%2d. %s" % (i, track_info[media.common.KEY_TITLE]))
80
+        wavfile = media.track_to_targetpath(kwargs.get("basepath"), track_info, 'wav')
81
+        try:
82
+            fstools.mkdir(os.path.dirname(wavfile))
83
+        except PermissionError:
84
+            logger.exception("Unable to create ripping target path: %s", os.path.dirname(wavfile))
85
+            sys.exit(1)
86
+        rv = media.disc_track_rip(i, wavfile, progress_callback_rip)
87
+        if rv == 0:
88
+            print()
89
+            rv = media.wav_to_mp3(wavfile, kwargs.get("basepath"), track_info, progress_callback_enc)
90
+            print()
91
+            os.remove(wavfile)
92
+        if rv != 0:
93
+            logger.error("Error while ripping or encoding...")
94
+
95
+
96
+if __name__ == "__main__":
97
+    default_baspath = os.path.join(os.getenv("HOME"), "rip")
98
+    parser = argparse.ArgumentParser(description='Description')
99
+    parser.add_argument('-v', '--verbose', help='Description for foo argument', action='store_true')
100
+    parser.add_argument('-b', '--basepath', help=f'The rip and encode basepath (default is {default_baspath})', default=default_baspath)
101
+    args = vars(parser.parse_args())
102
+
103
+    report.stdoutLoggingConfigure(log_name_lvl=((config.APP_NAME, logging.DEBUG if args.get('verbose') else logging.ERROR),))
104
+
105
+    main(**args)

+ 384
- 0
pyrip.wxg Просмотреть файл

@@ -0,0 +1,384 @@
1
+<?xml version="1.0"?>
2
+<!-- generated by wxGlade 0.7.1 on Tue Jul 12 10:30:16 2016 -->
3
+
4
+<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">
5
+    <object class="MainFrame" name="frame_1" base="EditFrame">
6
+        <title>PyRip</title>
7
+        <size>1033, 761</size>
8
+        <object class="wxBoxSizer" name="sizer_main" base="EditBoxSizer">
9
+            <orient>wxVERTICAL</orient>
10
+            <object class="sizeritem">
11
+                <flag>wxEXPAND</flag>
12
+                <border>0</border>
13
+                <option>1</option>
14
+                <object class="wxNotebook" name="notebook_main" base="EditNotebook">
15
+                    <tabs>
16
+                        <tab window="notebook_main_rip">Rip</tab>
17
+                        <tab window="notebook_main_config">Config</tab>
18
+                    </tabs>
19
+                    <object class="wxPanel" name="notebook_main_rip" base="EditPanel">
20
+                        <style>wxTAB_TRAVERSAL</style>
21
+                        <object class="wxBoxSizer" name="sizer_rip" base="EditBoxSizer">
22
+                            <orient>wxVERTICAL</orient>
23
+                            <object class="sizeritem">
24
+                                <flag>wxEXPAND</flag>
25
+                                <border>0</border>
26
+                                <option>1</option>
27
+                                <object class="wxBoxSizer" name="sizer_rip_cd_data" base="EditBoxSizer">
28
+                                    <orient>wxHORIZONTAL</orient>
29
+                                    <object class="sizeritem">
30
+                                        <flag>wxEXPAND</flag>
31
+                                        <border>0</border>
32
+                                        <option>1</option>
33
+                                        <object class="wxListBox" name="track_list" base="EditListBox">
34
+                                            <style>wxLB_MULTIPLE</style>
35
+                                            <selection>0</selection>
36
+                                            <choices>
37
+                                            </choices>
38
+                                            <events>
39
+                                                <handler event="EVT_LISTBOX">evt_tracklist</handler>
40
+                                            </events>
41
+                                        </object>
42
+                                    </object>
43
+                                    <object class="sizeritem">
44
+                                        <flag>wxEXPAND</flag>
45
+                                        <border>0</border>
46
+                                        <option>1</option>
47
+                                        <object class="wxBoxSizer" name="sizer_rip_track_data" base="EditBoxSizer">
48
+                                            <orient>wxVERTICAL</orient>
49
+                                            <object class="sizeritem">
50
+                                                <flag>wxEXPAND</flag>
51
+                                                <border>0</border>
52
+                                                <option>0</option>
53
+                                                <object class="wxStaticBoxSizer" name="sizer_artist" base="EditStaticBoxSizer">
54
+                                                    <orient>wxVERTICAL</orient>
55
+                                                    <label>Artist</label>
56
+                                                    <object class="sizeritem">
57
+                                                        <flag>wxEXPAND</flag>
58
+                                                        <border>0</border>
59
+                                                        <option>0</option>
60
+                                                        <object class="wxTextCtrl" name="text_ctrl_artist" base="EditTextCtrl">
61
+                                                            <events>
62
+                                                                <handler event="EVT_TEXT">evt_artist_changed</handler>
63
+                                                            </events>
64
+                                                        </object>
65
+                                                    </object>
66
+                                                </object>
67
+                                            </object>
68
+                                            <object class="sizeritem">
69
+                                                <flag>wxEXPAND</flag>
70
+                                                <border>0</border>
71
+                                                <option>0</option>
72
+                                                <object class="wxStaticBoxSizer" name="sizer_album" base="EditStaticBoxSizer">
73
+                                                    <orient>wxVERTICAL</orient>
74
+                                                    <label>Album</label>
75
+                                                    <object class="sizeritem">
76
+                                                        <flag>wxEXPAND</flag>
77
+                                                        <border>0</border>
78
+                                                        <option>0</option>
79
+                                                        <object class="wxTextCtrl" name="text_ctrl_album" base="EditTextCtrl">
80
+                                                            <events>
81
+                                                                <handler event="EVT_TEXT">evt_album_changed</handler>
82
+                                                            </events>
83
+                                                        </object>
84
+                                                    </object>
85
+                                                </object>
86
+                                            </object>
87
+                                            <object class="sizeritem">
88
+                                                <flag>wxEXPAND</flag>
89
+                                                <border>0</border>
90
+                                                <option>0</option>
91
+                                                <object class="wxStaticBoxSizer" name="sizer_year" base="EditStaticBoxSizer">
92
+                                                    <orient>wxVERTICAL</orient>
93
+                                                    <label>Year</label>
94
+                                                    <object class="sizeritem">
95
+                                                        <flag>wxEXPAND</flag>
96
+                                                        <border>0</border>
97
+                                                        <option>0</option>
98
+                                                        <object class="wxTextCtrl" name="text_ctrl_year" base="EditTextCtrl">
99
+                                                            <events>
100
+                                                                <handler event="EVT_TEXT">evt_year_changed</handler>
101
+                                                            </events>
102
+                                                        </object>
103
+                                                    </object>
104
+                                                </object>
105
+                                            </object>
106
+                                            <object class="sizeritem">
107
+                                                <flag>wxEXPAND</flag>
108
+                                                <border>0</border>
109
+                                                <option>0</option>
110
+                                                <object class="wxStaticBoxSizer" name="sizer_genre" base="EditStaticBoxSizer">
111
+                                                    <orient>wxVERTICAL</orient>
112
+                                                    <label>Genre</label>
113
+                                                    <object class="sizeritem">
114
+                                                        <flag>wxEXPAND</flag>
115
+                                                        <border>0</border>
116
+                                                        <option>0</option>
117
+                                                        <object class="wxTextCtrl" name="text_ctrl_genre" base="EditTextCtrl">
118
+                                                            <events>
119
+                                                                <handler event="EVT_TEXT">evt_genre_changed</handler>
120
+                                                            </events>
121
+                                                        </object>
122
+                                                    </object>
123
+                                                </object>
124
+                                            </object>
125
+                                            <object class="sizeritem">
126
+                                                <flag>wxEXPAND</flag>
127
+                                                <border>0</border>
128
+                                                <option>0</option>
129
+                                                <object class="wxStaticBoxSizer" name="sizer_title" base="EditStaticBoxSizer">
130
+                                                    <orient>wxVERTICAL</orient>
131
+                                                    <label>Title</label>
132
+                                                    <object class="sizeritem">
133
+                                                        <flag>wxEXPAND</flag>
134
+                                                        <border>0</border>
135
+                                                        <option>0</option>
136
+                                                        <object class="wxTextCtrl" name="text_ctrl_title" base="EditTextCtrl">
137
+                                                            <events>
138
+                                                                <handler event="EVT_TEXT">evt_title_changed</handler>
139
+                                                            </events>
140
+                                                        </object>
141
+                                                    </object>
142
+                                                </object>
143
+                                            </object>
144
+                                            <object class="sizeritem">
145
+                                                <flag>wxEXPAND</flag>
146
+                                                <border>0</border>
147
+                                                <option>0</option>
148
+                                                <object class="wxStaticBoxSizer" name="sizer_track_no" base="EditStaticBoxSizer">
149
+                                                    <orient>wxVERTICAL</orient>
150
+                                                    <label>Trucknumber</label>
151
+                                                    <object class="sizeritem">
152
+                                                        <flag>wxEXPAND</flag>
153
+                                                        <border>0</border>
154
+                                                        <option>0</option>
155
+                                                        <object class="wxTextCtrl" name="text_ctrl_track_no" base="EditTextCtrl">
156
+                                                            <events>
157
+                                                                <handler event="EVT_TEXT">evt_track_no_changed</handler>
158
+                                                            </events>
159
+                                                        </object>
160
+                                                    </object>
161
+                                                </object>
162
+                                            </object>
163
+                                            <object class="sizeritem">
164
+                                                <flag>wxEXPAND</flag>
165
+                                                <border>0</border>
166
+                                                <option>0</option>
167
+                                                <object class="wxStaticBoxSizer" name="sizer_comment" base="EditStaticBoxSizer">
168
+                                                    <orient>wxVERTICAL</orient>
169
+                                                    <label>Comment</label>
170
+                                                    <object class="sizeritem">
171
+                                                        <flag>wxEXPAND</flag>
172
+                                                        <border>0</border>
173
+                                                        <option>0</option>
174
+                                                        <object class="wxTextCtrl" name="text_ctrl_comment" base="EditTextCtrl">
175
+                                                            <events>
176
+                                                                <handler event="EVT_TEXT">evt_comment_changed</handler>
177
+                                                            </events>
178
+                                                        </object>
179
+                                                    </object>
180
+                                                </object>
181
+                                            </object>
182
+                                            <object class="sizeritem">
183
+                                                <border>0</border>
184
+                                                <option>1</option>
185
+                                                <object class="spacer" name="spacer" base="EditSpacer">
186
+                                                    <height>20</height>
187
+                                                    <width>20</width>
188
+                                                </object>
189
+                                            </object>
190
+                                            <object class="sizeritem">
191
+                                                <flag>wxEXPAND</flag>
192
+                                                <border>0</border>
193
+                                                <option>0</option>
194
+                                                <object class="wxStaticBoxSizer" name="sizer_overall_progress" base="EditStaticBoxSizer">
195
+                                                    <orient>wxVERTICAL</orient>
196
+                                                    <label>Overall Progress</label>
197
+                                                    <object class="sizeritem">
198
+                                                        <flag>wxEXPAND</flag>
199
+                                                        <border>0</border>
200
+                                                        <option>0</option>
201
+                                                        <object class="wxGauge" name="gauge_overall_progress" base="EditGauge">
202
+                                                            <range>1000</range>
203
+                                                        </object>
204
+                                                    </object>
205
+                                                </object>
206
+                                            </object>
207
+                                            <object class="sizeritem">
208
+                                                <flag>wxEXPAND</flag>
209
+                                                <border>0</border>
210
+                                                <option>0</option>
211
+                                                <object class="wxStaticBoxSizer" name="sizer_rip_progress" base="EditStaticBoxSizer">
212
+                                                    <orient>wxVERTICAL</orient>
213
+                                                    <label>Rip Progress</label>
214
+                                                    <object class="sizeritem">
215
+                                                        <flag>wxEXPAND</flag>
216
+                                                        <border>0</border>
217
+                                                        <option>0</option>
218
+                                                        <object class="wxGauge" name="gauge_rip_progress" base="EditGauge">
219
+                                                            <range>1000</range>
220
+                                                        </object>
221
+                                                    </object>
222
+                                                </object>
223
+                                            </object>
224
+                                            <object class="sizeritem">
225
+                                                <flag>wxEXPAND</flag>
226
+                                                <border>0</border>
227
+                                                <option>0</option>
228
+                                                <object class="wxStaticBoxSizer" name="sizer_encode_progress" base="EditStaticBoxSizer">
229
+                                                    <orient>wxVERTICAL</orient>
230
+                                                    <label>Encode Progress</label>
231
+                                                    <object class="sizeritem">
232
+                                                        <flag>wxEXPAND</flag>
233
+                                                        <border>0</border>
234
+                                                        <option>0</option>
235
+                                                        <object class="wxGauge" name="gauge_encode_progress" base="EditGauge">
236
+                                                            <range>1000</range>
237
+                                                        </object>
238
+                                                    </object>
239
+                                                </object>
240
+                                            </object>
241
+                                        </object>
242
+                                    </object>
243
+                                </object>
244
+                            </object>
245
+                            <object class="sizeritem">
246
+                                <border>0</border>
247
+                                <option>0</option>
248
+                                <object class="wxBoxSizer" name="sizer_rip_buttons" base="EditBoxSizer">
249
+                                    <orient>wxHORIZONTAL</orient>
250
+                                    <object class="sizeritem">
251
+                                        <border>0</border>
252
+                                        <option>0</option>
253
+                                        <object class="spacer" name="spacer" base="EditSpacer">
254
+                                            <height>20</height>
255
+                                            <width>20</width>
256
+                                        </object>
257
+                                    </object>
258
+                                    <object class="sizeritem">
259
+                                        <border>0</border>
260
+                                        <option>0</option>
261
+                                        <object class="wxButton" name="button_rip" base="EditButton">
262
+                                            <label>Rip</label>
263
+                                            <events>
264
+                                                <handler event="EVT_BUTTON">evt_rip</handler>
265
+                                            </events>
266
+                                        </object>
267
+                                    </object>
268
+                                    <object class="sizeritem">
269
+                                        <border>0</border>
270
+                                        <option>0</option>
271
+                                        <object class="spacer" name="spacer" base="EditSpacer">
272
+                                            <height>20</height>
273
+                                            <width>20</width>
274
+                                        </object>
275
+                                    </object>
276
+                                    <object class="sizeritem">
277
+                                        <border>0</border>
278
+                                        <option>0</option>
279
+                                        <object class="wxButton" name="button_read_disc" base="EditButton">
280
+                                            <label>Read Disc</label>
281
+                                            <events>
282
+                                                <handler event="EVT_BUTTON">evt_new_disc</handler>
283
+                                            </events>
284
+                                        </object>
285
+                                    </object>
286
+                                    <object class="sizeritem">
287
+                                        <border>0</border>
288
+                                        <option>0</option>
289
+                                        <object class="spacer" name="spacer" base="EditSpacer">
290
+                                            <height>20</height>
291
+                                            <width>20</width>
292
+                                        </object>
293
+                                    </object>
294
+                                </object>
295
+                            </object>
296
+                        </object>
297
+                    </object>
298
+                    <object class="wxPanel" name="notebook_main_config" base="EditPanel">
299
+                        <style>wxTAB_TRAVERSAL</style>
300
+                        <object class="wxBoxSizer" name="sizer_notebook_main_config" base="EditBoxSizer">
301
+                            <orient>wxVERTICAL</orient>
302
+                            <object class="sizeritem">
303
+                                <flag>wxEXPAND</flag>
304
+                                <border>0</border>
305
+                                <option>0</option>
306
+                                <object class="wxStaticBoxSizer" name="sizer_target_path" base="EditStaticBoxSizer">
307
+                                    <orient>wxVERTICAL</orient>
308
+                                    <label>Target Path</label>
309
+                                    <object class="sizeritem">
310
+                                        <flag>wxEXPAND</flag>
311
+                                        <border>0</border>
312
+                                        <option>0</option>
313
+                                        <object class="wxTextCtrl" name="text_ctrl_target_path" base="EditTextCtrl">
314
+                                            <events>
315
+                                                <handler event="EVT_TEXT">evt_target_path_changed</handler>
316
+                                            </events>
317
+                                        </object>
318
+                                    </object>
319
+                                </object>
320
+                            </object>
321
+                            <object class="sizeritem">
322
+                                <flag>wxEXPAND</flag>
323
+                                <border>0</border>
324
+                                <option>0</option>
325
+                                <object class="wxStaticBoxSizer" name="sizer_device" base="EditStaticBoxSizer">
326
+                                    <orient>wxVERTICAL</orient>
327
+                                    <label>Device</label>
328
+                                    <object class="sizeritem">
329
+                                        <flag>wxEXPAND</flag>
330
+                                        <border>0</border>
331
+                                        <option>0</option>
332
+                                        <object class="wxTextCtrl" name="text_ctrl_device" base="EditTextCtrl">
333
+                                            <events>
334
+                                                <handler event="EVT_TEXT">evt_device_changed</handler>
335
+                                            </events>
336
+                                        </object>
337
+                                    </object>
338
+                                </object>
339
+                            </object>
340
+                            <object class="sizeritem">
341
+                                <flag>wxEXPAND</flag>
342
+                                <border>0</border>
343
+                                <option>0</option>
344
+                                <object class="wxStaticBoxSizer" name="sizer_default_comment" base="EditStaticBoxSizer">
345
+                                    <orient>wxVERTICAL</orient>
346
+                                    <label>Default Comment</label>
347
+                                    <object class="sizeritem">
348
+                                        <flag>wxEXPAND</flag>
349
+                                        <border>0</border>
350
+                                        <option>0</option>
351
+                                        <object class="wxTextCtrl" name="text_ctrl_default_comment" base="EditTextCtrl">
352
+                                            <events>
353
+                                                <handler event="EVT_TEXT">evt_default_comment_changed</handler>
354
+                                            </events>
355
+                                        </object>
356
+                                    </object>
357
+                                </object>
358
+                            </object>
359
+                            <object class="sizeritem">
360
+                                <flag>wxEXPAND</flag>
361
+                                <border>0</border>
362
+                                <option>0</option>
363
+                                <object class="wxStaticBoxSizer" name="sizer_track_list_string" base="EditStaticBoxSizer">
364
+                                    <orient>wxVERTICAL</orient>
365
+                                    <label>Track List Sting</label>
366
+                                    <object class="sizeritem">
367
+                                        <flag>wxEXPAND</flag>
368
+                                        <border>0</border>
369
+                                        <option>0</option>
370
+                                        <object class="wxTextCtrl" name="text_ctrl_track_list_string" base="EditTextCtrl">
371
+                                            <events>
372
+                                                <handler event="EVT_TEXT">evt_track_list_string_changed</handler>
373
+                                            </events>
374
+                                        </object>
375
+                                    </object>
376
+                                </object>
377
+                            </object>
378
+                        </object>
379
+                    </object>
380
+                </object>
381
+            </object>
382
+        </object>
383
+    </object>
384
+</application>

+ 1
- 0
report

@@ -0,0 +1 @@
1
+Subproject commit 7003c13ef8c7e7c3a55a545cbbad4039cc024a9f

+ 1
- 0
task

@@ -0,0 +1 @@
1
+Subproject commit 7583bb5f3bd2420c901374ba95b678af6ce88433

Загрузка…
Отмена
Сохранить