OSDN Git Service

コンフィグが無い状態で起動すると画面が見えない場所に表れてしまう問題に対処
[coroid/inqubus.git] / frontend / src / yukihane / inqubus / config / Config.java
1 package yukihane.inqubus.config;
2
3 import java.io.File;
4 import java.util.ArrayList;
5 import java.util.List;
6 import org.apache.commons.configuration.ConfigurationException;
7 import org.apache.commons.configuration.XMLConfiguration;
8
9 public enum Config {
10
11     INSTANCE;
12     private final XMLConfiguration config = new XMLConfiguration();
13
14     void clear() {
15         config.clear();
16     }
17
18     /*
19      * ネットワーク - アカウント
20      */
21     private static final String ACCOUNT_ID = "network.account.id";
22
23     public String getId() {
24         return config.getString(ACCOUNT_ID, "");
25     }
26
27     public void setId(String s) {
28         config.setProperty(ACCOUNT_ID, s);
29     }
30     private static final String ACCOUNT_PASSWORD = "network.account.password";
31
32     public String getPassword() {
33         return config.getString(ACCOUNT_PASSWORD, "");
34     }
35
36     public void setPassword(String s) {
37         config.setProperty(ACCOUNT_PASSWORD, s);
38     }
39
40     /*
41      * ネットワーク - プロキシ
42      */
43     private static final String PROXY_USE = "network.proxy.use";
44
45     public boolean getProxyUse() {
46         return config.getBoolean(PROXY_USE, false);
47     }
48
49     public void setProxyUse(boolean s) {
50         config.setProperty(PROXY_USE, s);
51     }
52     private static final String PROXY_HOST = "network.proxy.host";
53
54     public String getProxyHost() {
55         return config.getString(PROXY_HOST, "localhost");
56     }
57
58     public void setProxyHost(String s) {
59         config.setProperty(PROXY_HOST, s);
60     }
61     private static final String PROXY_PORT = "network.proxy.port";
62
63     public String getProxyPort() {
64         return config.getString(PROXY_PORT, "8080");
65     }
66
67     public void setProxyPort(String s) {
68         config.setProperty(PROXY_PORT, s);
69     }
70
71     /*
72      * ファイル - 動画
73      */
74     private static final String FILE_VIDEO_DIR = "file.video.dir";
75
76     public String getVideoDir() {
77         return config.getString(FILE_VIDEO_DIR, "_video");
78     }
79
80     public void setVideoDir(String s) {
81         config.setProperty(FILE_VIDEO_DIR, s);
82     }
83     private static final String FILE_VIDEO_FILENAME = "file.video.filename";
84
85     public String getVideoFileNamePattern() {
86         return config.getString(FILE_VIDEO_FILENAME, "[{id}]{title}");
87     }
88
89     public void setVideoFileNamePattern(String s) {
90         config.setProperty(FILE_VIDEO_FILENAME, s.toString());
91     }
92     private static final String FILE_VIDEO_LOCAL = "file.video.local";
93
94     public boolean getVideoUseLocal() {
95         return config.getBoolean(FILE_VIDEO_LOCAL, false);
96     }
97
98     public void setVideoUseLocal(boolean s) {
99         config.setProperty(FILE_VIDEO_LOCAL, s);
100     }
101
102     /*
103      * ファイル - コメント
104      */
105     private static final String FILE_COMMENT_DIR = "file.comment.dir";
106
107     public String getCommentDir() {
108         return config.getString(FILE_COMMENT_DIR, "_comment");
109     }
110
111     public void setCommentDir(String s) {
112         config.setProperty(FILE_COMMENT_DIR, s);
113     }
114     private static final String FILE_COMMENT_FILENAME = "file.comment.filename";
115
116     public String getCommentFileNamePattern() {
117         return config.getString(FILE_COMMENT_FILENAME, "[{id}]{title}");
118     }
119
120     public void setCommentFileNamePattern(String s) {
121         config.setProperty(FILE_COMMENT_FILENAME, s.toString());
122     }
123     private static final String FILE_COMMENT_LOCAL = "file.comment.local";
124
125     public boolean getCommentUseLocal() {
126         return config.getBoolean(FILE_COMMENT_LOCAL, false);
127     }
128
129     public void setCommentUseLocal(boolean s) {
130         config.setProperty(FILE_COMMENT_LOCAL, s);
131     }
132
133     /*
134      * ファイル - 変換動画
135      */
136     private static final String FILE_OUTPUT_DIR = "file.output.dir";
137
138     public String getOutputDir() {
139         return config.getString(FILE_OUTPUT_DIR, "__converted");
140     }
141
142     public void setOutputDir(String s) {
143         config.setProperty(FILE_OUTPUT_DIR, s);
144     }
145     private static final String FILE_OUTPUT_FILENAME = "file.output.filename";
146
147     public String getOutputFileNamePattern() {
148         return config.getString(FILE_OUTPUT_FILENAME, "{filename}");
149     }
150
151     public void setOutputFileNamePattern(String s) {
152         config.setProperty(FILE_OUTPUT_FILENAME, s.toString());
153     }
154     private static final String FILE_OUTPUT_ENABLE = "file.output.enable";
155
156     public boolean getOutputEnable() {
157         return config.getBoolean(FILE_OUTPUT_ENABLE, true);
158     }
159
160     public void setOutputEnable(boolean s) {
161         config.setProperty(FILE_OUTPUT_ENABLE, s);
162     }
163     private static final String FILE_OUTPUT_COMMENT_OVERLAY = "file.output.comment_overlay";
164
165     public boolean getOutputCommentOverlay() {
166         return config.getBoolean(FILE_OUTPUT_COMMENT_OVERLAY, true);
167     }
168
169     public void setOutputCommentOverlay(boolean s) {
170         config.setProperty(FILE_OUTPUT_COMMENT_OVERLAY, s);
171     }
172     private static final String FILE_OUTPUT_DISPLAY_PROGRESS = "file.output.display";
173
174     public boolean getOutputDisplayProgress() {
175         return config.getBoolean(FILE_OUTPUT_DISPLAY_PROGRESS, true);
176     }
177
178     public void setOutputDisplayProgress(boolean s) {
179         config.setProperty(FILE_OUTPUT_DISPLAY_PROGRESS, s);
180     }
181     /*
182      * ファイル - 禁則文字
183      */
184     private static final String FILE_REPLACE_FROM = "file.prohibit.replace_from";
185
186     public String getReplaceFrom() {
187         return config.getString(FILE_REPLACE_FROM, "/\\:*?\"<>|.");
188     }
189
190     public void setReplaceFrom(String s) {
191         config.setProperty(FILE_REPLACE_FROM, s);
192     }
193     private static final String FILE_REPLACE_TO = "file.prohibit.replace_to";
194
195     public String getReplaceTo() {
196         return config.getString(FILE_REPLACE_TO, "_");
197     }
198
199     public void setReplaceTo(String s) {
200         config.setProperty(FILE_REPLACE_TO, s);
201     }
202     /*
203      * コメント
204      */
205     private static final String COMMENT_SIZE_AUTOSIZE = "comment.size.autosize";
206
207     public boolean getCommentSizeAutosize() {
208         return config.getBoolean(COMMENT_SIZE_AUTOSIZE, true);
209     }
210
211     public void setCommentSizeAutosize(boolean s) {
212         config.setProperty(COMMENT_SIZE_AUTOSIZE, s);
213     }
214     private static final String COMMENT_SIZE_MANUAL = "comment.size.manual";
215
216     public String getCommentSizeManual() {
217         return config.getString(COMMENT_SIZE_MANUAL, "");
218     }
219
220     public void setCommentSizeManual(String s) {
221         config.setProperty(COMMENT_SIZE_MANUAL, s);
222     }
223     private static final String COMMENT_MIN_DISABLED = "comment.minutesize.disable";
224
225     public boolean getCommentMinDisabled() {
226         return config.getBoolean(COMMENT_MIN_DISABLED, false);
227     }
228
229     public void setCommentMinDisabled(boolean s) {
230         config.setProperty(COMMENT_MIN_DISABLED, s);
231     }
232     private static final String COMMENT_MIN_SIZE_AUTOSIZE = "comment.minutesize.autosize";
233
234     public boolean getCommentMinSizeAutosize() {
235         return config.getBoolean(COMMENT_MIN_SIZE_AUTOSIZE, true);
236     }
237
238     public void setCommentMinSizeAutosize(boolean s) {
239         config.setProperty(COMMENT_MIN_SIZE_AUTOSIZE, s);
240     }
241     private static final String COMMENT_MIN_SIZE_MANUAL = "comment.minutesize.manual";
242
243     public String getCommentMinSizeManual() {
244         return config.getString(COMMENT_MIN_SIZE_MANUAL, "");
245     }
246
247     public void setCommentMinSizeManual(String s) {
248         config.setProperty(COMMENT_MIN_SIZE_MANUAL, s);
249     }
250     private static final String COMMENT_DISPLAY_MAX_SIZE_DEFAULT = "comment.displaysize.default";
251
252     public boolean getCommentDisplaySizeDefault() {
253         return config.getBoolean(COMMENT_DISPLAY_MAX_SIZE_DEFAULT, true);
254     }
255
256     public void setCommentDisplaySizeDefault(boolean s) {
257         config.setProperty(COMMENT_DISPLAY_MAX_SIZE_DEFAULT, s);
258     }
259     private static final String COMMENT_DISPLAY_MAX_SIZE_MANUAL = "comment.displaysize.manual";
260
261     public String getCommentDisplaySizeManual() {
262         return config.getString(COMMENT_DISPLAY_MAX_SIZE_MANUAL, "");
263     }
264
265     public void setCommentDisplaySizeManual(String s) {
266         config.setProperty(COMMENT_DISPLAY_MAX_SIZE_MANUAL, s);
267     }
268     private static final String COMMENT_FONTPATH = "comment.fontpath";
269
270     public String getFontPath() {
271         return config.getString(COMMENT_FONTPATH, "C:/Windows/Fonts/msgothic.ttc");
272     }
273
274     public void setFontPath(String s) {
275         config.setProperty(COMMENT_FONTPATH, s);
276     }
277     private static final String COMMENT_FONT_INDEX = "comment.fontindex";
278
279     public String getFontIndex() {
280         return config.getString(COMMENT_FONT_INDEX, "1");
281     }
282
283     public void setFontIndex(String s) {
284         config.setProperty(COMMENT_FONT_INDEX, s);
285     }
286     private static final String COMMENT_FONT_SHADOW = "comment.fontshadow";
287
288     public int getFontShadow() {
289         return config.getInt(COMMENT_FONT_SHADOW, 1);
290     }
291
292     public void setFontShadow(int s) {
293         config.setProperty(COMMENT_FONT_SHADOW, s);
294     }
295     private static final String COMMENT_FONT_SIZING_DISABLE = "comment.font_no_sizing";
296
297     public boolean getFontSizeArrangeDisable() {
298         return config.getBoolean(COMMENT_FONT_SIZING_DISABLE, false);
299     }
300
301     public void setFontSizeArrangeDisable(boolean s) {
302         config.setProperty(COMMENT_FONT_SIZING_DISABLE, s);
303     }
304     private static final String COMMENT_FONT_OPAQUE = "comment.opaque";
305
306     public boolean getCommentOpaque() {
307         return config.getBoolean(COMMENT_FONT_OPAQUE, false);
308     }
309
310     public void setCommentOpaque(boolean s) {
311         config.setProperty(COMMENT_FONT_OPAQUE, s);
312     }
313     private static final String FFMPEG_PATH = "ffmpeg.path";
314
315     public String getFfmpegPath() {
316         return config.getString(FFMPEG_PATH, "bin/ffmpeg.exe");
317     }
318
319     public void setFfmpegPath(String s) {
320         config.setProperty(FFMPEG_PATH, s);
321     }
322     private static final String FFMPEG_DLLPATH = "ffmpeg.dllpath";
323
324     public String getFfmpegDllPath() {
325         return config.getString(FFMPEG_DLLPATH, "bin/nicovideo.dll");
326     }
327
328     public void setFfmpegDllPath(String s) {
329         config.setProperty(FFMPEG_DLLPATH, s);
330     }
331     private static final String FFMPEG_PARAM_OPTIONFILE = "ffmpeg.param.optionfile";
332
333     public String getFfmpegOptionFile() {
334         return config.getString(FFMPEG_PARAM_OPTIONFILE, null);
335     }
336
337     public void setFfmpegOptionFile(String s) {
338         config.setProperty(FFMPEG_PARAM_OPTIONFILE, s);
339     }
340     private static final String FFMPEG_PARAM_EXT = "ffmpeg.param.ext";
341
342     public String getFfmpegExtension() {
343         return config.getString(FFMPEG_PARAM_EXT, ".m4v");
344     }
345
346     public void setFfmpegExtension(String s) {
347         config.setProperty(FFMPEG_PARAM_EXT, s);
348     }
349     private static final String FFMPEG_PARAM_MAIN = "ffmpeg.param.main";
350
351     public String getFfmpegMainOption() {
352         return config.getString(FFMPEG_PARAM_MAIN, "");
353     }
354
355     public void setFfmpegMainOption(String s) {
356         config.setProperty(FFMPEG_PARAM_MAIN, s);
357     }
358     private static final String FFMPEG_PARAM_IN = "ffmpeg.param.in";
359
360     public String getFfmpegInOption() {
361         return config.getString(FFMPEG_PARAM_IN, "");
362     }
363
364     public void setFfmpegInOption(String s) {
365         config.setProperty(FFMPEG_PARAM_IN, s);
366     }
367     private static final String FFMPEG_PARAM_OUT = "ffmpeg.param.out";
368
369     public String getFfmpegOutOption() {
370         return config.getString(FFMPEG_PARAM_OUT,
371                 "-f ipod -g 150 -qcomp 0.7 -qmin 20 -qmax 30 -qdiff 4 -subq 6 -me_range 16 -i_qfactor 0.714286");
372     }
373
374     public void setFfmpegOutOption(String s) {
375         config.setProperty(FFMPEG_PARAM_OUT, s);
376     }
377     private static final String FFMPEG_PARAM_AV = "ffmpeg.param.av";
378
379     public String getFfmpegAvOption() {
380         return config.getString(FFMPEG_PARAM_AV, "");
381     }
382
383     public void setFfmpegAvOption(String s) {
384         config.setProperty(FFMPEG_PARAM_AV, s);
385     }
386     private static final String FFMPEG_PARAM_RESIZE = "ffmpeg.param.resize";
387
388     public boolean getFfmpegResizeEnable() {
389         return config.getBoolean(FFMPEG_PARAM_RESIZE, false);
390     }
391
392     public void setFfmpegResizeEnable(boolean s) {
393         config.setProperty(FFMPEG_PARAM_RESIZE, s);
394     }
395     private static final String FFMPEG_PARAM_RESIZE_WIDTH = "ffmpeg.param.resize_width";
396
397     public String getFfmpegResizeWidth() {
398         return config.getString(FFMPEG_PARAM_RESIZE_WIDTH, "480");
399     }
400
401     public void setFfmpegResizeWidth(String s) {
402         config.setProperty(FFMPEG_PARAM_RESIZE_WIDTH, s);
403     }
404     private static final String FFMPEG_PARAM_RESIZE_HEIGHT = "ffmpeg.param.resize_height";
405
406     public String getFfmpegResizeHeight() {
407         return config.getString(FFMPEG_PARAM_RESIZE_HEIGHT, "320");
408     }
409
410     public void setFfmpegResizeHeight(String s) {
411         config.setProperty(FFMPEG_PARAM_RESIZE_HEIGHT, s);
412     }
413     private static final String FFMPEG_PARAM_KEEP_ASPECT = "ffmpeg.param.keep_aspect";
414
415     public boolean getFfmpegKeepAspect() {
416         return config.getBoolean(FFMPEG_PARAM_KEEP_ASPECT, true);
417     }
418
419     public void setFfmpegKeepAspect(boolean s) {
420         config.setProperty(FFMPEG_PARAM_KEEP_ASPECT, s);
421     }
422     private static final String DISPLAY_CONVERTING = "convert.display_converting";
423
424     public boolean getFfmpegDisplayConverting() {
425         return config.getBoolean(DISPLAY_CONVERTING, true);
426     }
427
428     public void setFfmpegDisplayConverting(boolean s) {
429         config.setProperty(DISPLAY_CONVERTING, s);
430     }
431     private static final String DLL_DISABLE = "convert.dll_disabled";
432
433     public boolean getFfmpegDllDisabled() {
434         return config.getBoolean(DLL_DISABLE, false);
435     }
436
437     public void setFfmpegDllDisabled(boolean s) {
438         config.setProperty(DLL_DISABLE, s);
439     }
440     private static final String NG_WORD = "ng.word";
441
442     @SuppressWarnings("unchecked")
443     public List<String> getNgWords() {
444         return config.getList(NG_WORD, new ArrayList<String>(0));
445     }
446
447     public void setNgWords(List<String> s) {
448         final String[] str = s.toArray(new String[0]);
449         config.setProperty(NG_WORD, s);
450     }
451     private static final String NG_ID = "ng.id";
452
453     @SuppressWarnings("unchecked")
454     public List<String> getNgIds() {
455         return config.getList(NG_ID, new ArrayList<String>(0));
456     }
457
458     public void setNgIds(List<String> s) {
459         config.setProperty(NG_ID, s);
460     }
461
462     /*
463      * 検索
464      */
465     private static final String SEARCH_VIDEO = "search.video";
466
467     @SuppressWarnings("unchecked")
468     public List<String> getSearchVideoDirs() {
469         return config.getList(SEARCH_VIDEO, new ArrayList<String>(1));
470     }
471
472     public void setSearchVideoDirs(List<String> s) {
473         config.setProperty(SEARCH_VIDEO, s);
474     }
475     private static final String SEARCH_COMMENT = "search.comment";
476
477     @SuppressWarnings("unchecked")
478     public List<String> getSearchCommentDirs() {
479         return config.getList(SEARCH_COMMENT, new ArrayList<String>(1));
480     }
481
482     public void setSearchCommentDirs(List<String> s) {
483         config.setProperty(SEARCH_COMMENT, s);
484     }
485
486     /*
487      * システム
488      */
489     private static final String SYSTEM_DOWNLOAD_THREAD = "system.download.thread";
490
491     public int getSystemDownloadThread() {
492         return config.getInt(SYSTEM_DOWNLOAD_THREAD, 1);
493     }
494
495     public void setSystemDownloadThread(int s) {
496         config.setProperty(SYSTEM_DOWNLOAD_THREAD, s);
497     }
498     private static final String SYSTEM_DOWNLOAD_WAIT = "system.download.wait";
499
500     public int getSystemDownloadWait() {
501         return config.getInt(SYSTEM_DOWNLOAD_WAIT, 30);
502     }
503
504     public void setSystemDownloadWait(int s) {
505         config.setProperty(SYSTEM_DOWNLOAD_WAIT, s);
506     }
507     private static final String SYSTEM_CONVERT_THREAD = "system.convert.thread";
508
509     public int getSystemConvertThread() {
510         return config.getInt(SYSTEM_CONVERT_THREAD, 2);
511     }
512
513     public void setSystemConvertThread(int s) {
514         config.setProperty(SYSTEM_CONVERT_THREAD, s);
515     }
516     private static final String SYSTEM_TEMPDIR = "system.tempdir";
517
518     public String getSystemTempDir() {
519         return config.getString(SYSTEM_TEMPDIR, ".");
520     }
521
522     public void setSystemTempDir(String s) {
523         config.setProperty(SYSTEM_TEMPDIR, s);
524     }
525     private static final String SYSTEM_WINDOW_WIDTH = "system.window.width";
526
527     public int getSystemWindowWidth() {
528         return config.getInt(SYSTEM_WINDOW_WIDTH, -1);
529     }
530
531     public void setSystemWindowWidth(int s) {
532         config.setProperty(SYSTEM_WINDOW_WIDTH, s);
533     }
534     private static final String SYSTEM_WINDOW_HEIGHT = "system.window.height";
535
536     public int getSystemWindowHeight() {
537         return config.getInt(SYSTEM_WINDOW_HEIGHT, -1);
538     }
539
540     public void setSystemWindowHeight(int s) {
541         config.setProperty(SYSTEM_WINDOW_HEIGHT, s);
542     }
543     private static final String SYSTEM_WINDOW_POS_X = "system.window.posx";
544
545     public int getSystemWindowPosX() {
546         return config.getInt(SYSTEM_WINDOW_POS_X, Integer.MIN_VALUE / 2);
547     }
548
549     public void setSystemWindowPosX(int s) {
550         config.setProperty(SYSTEM_WINDOW_POS_X, s);
551     }
552     private static final String SYSTEM_WINDOW_POS_Y = "system.window.posy";
553
554     public int getSystemWindowPosY() {
555         return config.getInt(SYSTEM_WINDOW_POS_Y, Integer.MIN_VALUE / 2);
556     }
557
558     public void setSystemWindowPosY(int s) {
559         config.setProperty(SYSTEM_WINDOW_POS_Y, s);
560     }
561     private static final String SYSTEM_COLUMN_ID = "system.column.id";
562
563     public int getSystemColumnId() {
564         return config.getInt(SYSTEM_COLUMN_ID, -1);
565     }
566
567     public void setSystemColumnId(int s) {
568         config.setProperty(SYSTEM_COLUMN_ID, s);
569     }
570     private static final String SYSTEM_COLUMN_VIDEO = "system.column.video";
571
572     public int getSystemColumnVideo() {
573         return config.getInt(SYSTEM_COLUMN_VIDEO, -1);
574     }
575
576     public void setSystemColumnVideo(int s) {
577         config.setProperty(SYSTEM_COLUMN_VIDEO, s);
578     }
579     private static final String SYSTEM_COLUMN_COMMENT = "system.column.comment";
580
581     public int getSystemColumnComment() {
582         return config.getInt(SYSTEM_COLUMN_COMMENT, -1);
583     }
584
585     public void setSystemColumnComment(int s) {
586         config.setProperty(SYSTEM_COLUMN_COMMENT, s);
587     }
588     private static final String SYSTEM_COLUMN_CONVERT = "system.column.convert";
589
590     public int getSystemColumnConvert() {
591         return config.getInt(SYSTEM_COLUMN_CONVERT, -1);
592     }
593
594     public void setSystemColumnConvert(int s) {
595         config.setProperty(SYSTEM_COLUMN_CONVERT, s);
596     }
597     private static final String SYSTEM_COLUMN_STATUS = "system.column.status";
598
599     public int getSystemColumnStatus() {
600         return config.getInt(SYSTEM_COLUMN_STATUS, -1);
601     }
602
603     public void setSystemColumnStatus(int s) {
604         config.setProperty(SYSTEM_COLUMN_STATUS, s);
605     }
606
607     /*
608      *
609      */
610     public void load(String fileName) throws ConfigurationException {
611         config.setFileName(fileName);
612         config.load();
613     }
614
615     public void save(File file) throws ConfigurationException {
616         config.setFile(file);
617         save();
618     }
619
620     public void save() throws ConfigurationException {
621         config.save();
622     }
623 }