OSDN Git Service

GUIからavfilterオプションを設定できるようにする
[coroid/inqubus.git] / frontend / src / saccubus / properties / ConvertSetting.java
1 /* $Id$ */
2 package saccubus.properties;
3
4 import java.io.File;
5 import java.util.Properties;
6 import saccubus.converter.profile.NgSetting;
7
8 /**
9  * 変換設定.
10  * @author yuki
11  */
12 public class ConvertSetting {
13
14     private static final String PROP_DISABLE_VHOOK = "VhookDisabled";
15     private static final String PROP_SHOW_COMMENT = "ShowCommentNum";
16     private static final String PROP_FONT_PATH = "FontPath";
17     private static final String PROP_FONT_INDEX = "FontIndex";
18     private static final String PROP_SHADOW_INDEX = "ShadowIndex";
19     private static final String PROP_SHOW_VIDEO = "ShowVideo";
20     private static final String PROP_FIX_FONT_SIZE = "FixFontSize";
21     private static final String PROP_OPAQUE_COMMENT = "OpaqueComment";
22     private static final String PROP_NG_WORD = "NG_Word";
23     private static final String PROP_NG_ID = "NG_ID";
24     private final boolean vhookDisabled;
25     private final int maxNumOfComment;
26     private final File font;
27     private final int fontIndex;
28     private final int shadowIndex;
29     private final boolean showConverting;
30     private final boolean selfAdjustFontSize;
31     private final boolean commentOpaque;
32     private final NgSetting ngSetting;
33
34     public ConvertSetting(boolean vhookDisabled, int maxNumOfComment, File font, int fontIndex, int shadowIndex,
35             boolean showConverting, boolean selfAdjustFontSize, boolean commentOpaque, NgSetting ngSetting) {
36         this.vhookDisabled = vhookDisabled;
37         this.maxNumOfComment = maxNumOfComment;
38         this.font = font;
39         this.fontIndex = fontIndex;
40         this.shadowIndex = shadowIndex;
41         this.showConverting = showConverting;
42         this.selfAdjustFontSize = selfAdjustFontSize;
43         this.commentOpaque = commentOpaque;
44         this.ngSetting = ngSetting;
45     }
46
47     public boolean isCommentOpaque() {
48         return commentOpaque;
49     }
50
51     public File getFont() {
52         return font;
53     }
54
55     public int getFontIndex() {
56         return fontIndex;
57     }
58
59     public int getMaxNumOfComment() {
60         return maxNumOfComment;
61     }
62
63     public boolean isSelfAdjustFontSize() {
64         return selfAdjustFontSize;
65     }
66
67     public int getShadowIndex() {
68         return shadowIndex;
69     }
70
71     public boolean isShowConverting() {
72         return showConverting;
73     }
74
75     public boolean isVhookDisabled() {
76         return vhookDisabled;
77     }
78
79     public NgSetting getNgSetting() {
80         return ngSetting;
81     }
82
83     public void save(Properties prop) {
84         prop.setProperty(PROP_SHOW_COMMENT, Integer.toString(getMaxNumOfComment()));
85         prop.setProperty(PROP_FONT_PATH, getFont().getPath());
86         prop.setProperty(PROP_FONT_INDEX, Integer.toString(getFontIndex()));
87         prop.setProperty(PROP_SHOW_VIDEO, Boolean.toString(isShowConverting()));
88         prop.setProperty(PROP_NG_WORD, getNgSetting().getWord());
89         prop.setProperty(PROP_NG_ID, getNgSetting().getId());
90         prop.setProperty(PROP_FIX_FONT_SIZE, Boolean.toString(isSelfAdjustFontSize()));
91         prop.setProperty(PROP_OPAQUE_COMMENT, Boolean.toString(isCommentOpaque()));
92         prop.setProperty(PROP_DISABLE_VHOOK, Boolean.toString(isVhookDisabled()));
93         prop.setProperty(PROP_SHADOW_INDEX, Integer.toString(getShadowIndex()));
94     }
95
96     public static ConvertSetting load(Properties prop) {
97         String defaultFont = "";
98         String win_dir = System.getenv("windir");
99         if (win_dir != null) {
100             //windows の場合のデフォルトフォントパス
101             defaultFont = new File(win_dir, "Fonts" + File.separator + "msgothic.ttc").getPath();
102         }
103
104
105         int maxComment = Integer.parseInt(prop.getProperty(PROP_SHOW_COMMENT, "30"));
106         String font = prop.getProperty(PROP_FONT_PATH, defaultFont);
107         int fontIndex = Integer.parseInt(prop.getProperty(PROP_FONT_INDEX, "1"));
108         boolean showConv = Boolean.parseBoolean(prop.getProperty(PROP_SHOW_VIDEO, "true"));
109         String ngWord = prop.getProperty(PROP_NG_WORD, "");
110         String ngId = prop.getProperty(PROP_NG_ID, "");
111         boolean adjustFont = Boolean.parseBoolean(prop.getProperty(PROP_FIX_FONT_SIZE, "true"));
112         boolean opaque = Boolean.parseBoolean(prop.getProperty(PROP_OPAQUE_COMMENT, "false"));
113         boolean vhookDisabled = Boolean.parseBoolean(prop.getProperty(PROP_DISABLE_VHOOK, "false"));
114         int shadowIndex = Integer.parseInt(prop.getProperty(PROP_SHADOW_INDEX, "1"));
115
116         return new ConvertSetting(vhookDisabled, maxComment, new File(font), fontIndex, shadowIndex, showConv,
117                 adjustFont, opaque, new NgSetting(ngWord, ngId));
118     }
119 }