+ public String toString(){
+ return ToStringBuilder.reflectionToString(this);
+ }
+ }
+
+ private class InqubusGeneralProfile implements GeneralProfile {
+ private final String replaceFrom;
+ private final String replaceTo;
+ private InqubusGeneralProfile() {
+ final Config p = Config.INSTANCE;
+ this.replaceFrom = p.getReplaceFrom();
+ this.replaceTo = p.getReplaceTo();
+ }
+
+ @Override
+ public String getReplaceFrom() {
+ return this.replaceFrom;
+ }
+
+ @Override
+ public String getReplaceTo() {
+ return this.replaceTo;
+ }
+
+ @Override
+ public String toString(){
+ return ToStringBuilder.reflectionToString(this);
+ }
+ }
+
+ /*
+ * ここからConvertProfile作成用クラスの定義
+ */
+ private class InqubusConvertProfile implements ConvertProfile {
+ private final OutputProfile outputProfile;
+ private final GeneralProfile generalProfile;
+ private final FfmpegProfile ffmpegProfile;
+ private final boolean convert;
+ private final File ffmpeg;
+ private final boolean vhookDisabled;
+ private final boolean commentOverlay;
+ private final File vhook;
+ private final File tmpDir;
+ private final File font;
+ private final int fontIndex;
+ private final boolean commentOpaque;
+ private final boolean disableFontSizeArrange;
+ private final int shadowIndex;
+ private final boolean showConvrting;
+ private final int maxNumOfComment;
+ private final HideCondition ngSetting;
+
+ private InqubusConvertProfile() {
+ final Config p = Config.INSTANCE;
+ this.outputProfile = new InqubusOutputProfile();
+ this.generalProfile = new InqubusGeneralProfile();
+ this.ffmpegProfile = new InqubusFfmpegProfile();
+ this.convert = cbOutputEnable.isSelected();
+ this.ffmpeg = new File(p.getFfmpegPath());
+ // TODO コンフィグに設定なし
+ this.vhookDisabled = false;
+ this.commentOverlay = p.getOutputCommentOverlay();
+ this.vhook = new File(p.getFfmpegDllPath());
+ // TODO コンフィグに設定なし
+ this.tmpDir = new File(".");
+ this.font = new File(p.getFontPath());
+ this.fontIndex = Integer.parseInt(p.getFontIndex());
+ this.commentOpaque = p.getCommentOpaque();
+ this.disableFontSizeArrange = p.getFontSizeArrangeDisable();
+ this.shadowIndex = p.getFontShadow();
+ // TODO コンフィグに設定なし
+ this.showConvrting = true;
+ this.maxNumOfComment = (p.getCommentDisplaySizeDefault()) ? -1 : Integer.parseInt(p.
+ getCommentDisplaySizeManual());
+ this.ngSetting = new InqubusHideCondition();
+ }
+
+ @Override
+ public OutputProfile getOutputProfile() {
+ return this.outputProfile;
+ }
+
+ @Override
+ public GeneralProfile getGeneralProfile() {
+ return this.generalProfile;
+ }
+
+ @Override
+ public FfmpegProfile getFfmpegOption() {
+ return this.ffmpegProfile;
+ }
+
+ @Override
+ public boolean isConvert() {
+ return this.convert;
+ }
+
+ @Override
+ public File getFfmpeg() {
+ return this.ffmpeg;
+ }
+
+ @Override
+ public boolean isVhookDisabled() {
+ return this.vhookDisabled;
+ }
+
+ @Override
+ public boolean isCommentOverlay() {
+ return this.commentOverlay;
+ }
+
+ @Override
+ public File getVhook() {
+ return this.vhook;
+ }
+
+ @Override
+ public File getTempDir() {
+ return this.tmpDir;
+ }
+
+ @Override
+ public File getFont() {
+ return this.font;
+ }
+
+ @Override
+ public int getFontIndex() {
+ return this.fontIndex;
+ }
+
+ @Override
+ public boolean isCommentOpaque() {
+ return this.commentOpaque;
+ }
+
+ @Override
+ public boolean isDisableFontSizeArrange() {
+ return this.disableFontSizeArrange;
+ }
+
+ @Override
+ public int getShadowIndex() {
+ return this.shadowIndex;
+ }
+
+ @Override
+ public boolean isShowConverting() {
+ return this.showConvrting;
+ }
+
+ @Override
+ public int getMaxNumOfComment() {
+ return this.maxNumOfComment;
+ }
+
+ @Override
+ public HideCondition getNgSetting() {
+ return this.ngSetting;
+ }
+
+ @Override
+ public String toString(){
+ return ToStringBuilder.reflectionToString(this);
+ }
+ }
+
+ private class InqubusOutputProfile implements OutputProfile {
+ private final File dir;
+ private final String fileName;
+ private final String videoId;
+ private final String title;
+
+
+ private InqubusOutputProfile(){
+ final Config p = Config.INSTANCE;
+ this.dir = new File(p.getOutputDir());
+ this.fileName = fldOutput.getText();
+ // TODO この時点でのID/Titleはどうするか…
+ this.videoId = "";
+ this.title = "";