public class AppParameters extends Properties {
static final String FILE_PATH = "AdjustTime.ini";
- // GPX出力: 時間的に間隔が開いたGPXログを別の<>セグメントに分割する。 {ON | OFF}
+ // GPX: 時間的に間隔が開いたGPXログを別の<trkseg>セグメントに分割する。 {ON | OFF}
public static String GPX_GPXSPLIT = "GPX.gpxSplit";
- // EXIF出力: 画像ファイルのEXIF情報を変更する {ON | OFF}
- public static String EXIF_GPXSPLIT = "EXIF.noEXIF";
+ // GPX: <trkseg>セグメントの最初の1ノードは無視する。 {ON | OFF}
+ public static String GPX_NO_FIRST_NODE = "GPX.noFirstNode";
+
+ // GPX: 生成されたGPXファイル(ファイル名が'_.gpx'で終わるもの)も対象にする。 {ON | OFF}
+ public static String GPX_REUSE = "GPX.REUSE";
+
+ // GPX: 基準時刻 {FILE_UPDATE | EXIF}
+ public static String GPX_BASETIME = "GPX.BASETIME";
+
+ // 対象フォルダ:(位置情報を付加したい画像ファイルが格納されているフォルダ)
+ public static String IMG_SOURCE_FOLDER = "IMG.SOURCE_FOLDER";
+
+ // 基準時刻画像(正確な撮影時刻が判明できる画像)
+ public static String IMG_BASE_FILE = "IMG.BASE_FILE";
+
+ // 出力フォルダ:(変換した画像ファイルとGPXファイルを出力するフォルダ)
+ public static String IMG_OUTPUT_FOLDER = "IMG.OUTPUT_FOLDER";
+
+ File file;
public AppParameters() throws FileNotFoundException, IOException {
super();
void syncFile() throws FileNotFoundException, IOException {
boolean update = false;
- File file = new File(FILE_PATH);
+ this.file = new File(FILE_PATH);
if (file.exists()) {
- update = true;
+ // ファイルが存在すれば、その内容をロードする。
+ this.load(new FileInputStream(file));
}
else {
- // ファイルがあれば、その内容をロードする。
- this.load(new FileInputStream(file));
+ update = true;
}
//------------------------------------------------
- // GPX出力: 時間的に間隔が開いたGPXログを別の<>セグメントに分割する。 {ON | OFF}
- String valueStr = this.getProperty(GPX_GPXSPLIT);
+ // 対象フォルダ:(位置情報を付加したい画像ファイルが格納されているフォルダ)
+ String valueStr = this.getProperty(IMG_SOURCE_FOLDER);
+ if (valueStr == null) {
+ update = true;
+ this.setProperty(IMG_SOURCE_FOLDER, (new File(".")).getAbsolutePath());
+ }
+
+ //------------------------------------------------
+ // 基準時刻画像(正確な撮影時刻が判明できる画像)
+ valueStr = this.getProperty(IMG_BASE_FILE);
+ if (valueStr == null) {
+ update = true;
+ this.setProperty(IMG_BASE_FILE, "");
+ }
+
+ //------------------------------------------------
+ // 出力フォルダ:(変換した画像ファイルとGPXファイルを出力するフォルダ)
+ valueStr = this.getProperty(IMG_OUTPUT_FOLDER);
+ if (valueStr == null) {
+ update = true;
+ this.setProperty(IMG_OUTPUT_FOLDER, (new File(".")).getAbsolutePath());
+ }
+
+ //------------------------------------------------
+ // GPX出力: 時間的に間隔が開いたGPXログを別の<trkseg>セグメントに分割する。 {ON | OFF}
+ valueStr = this.getProperty(GPX_GPXSPLIT);
if (valueStr == null) {
update = true;
this.setProperty(GPX_GPXSPLIT, "ON");
}
//------------------------------------------------
- // EXIF出力: 画像ファイルのEXIF情報を変更する {ON | OFF}
- valueStr = this.getProperty(EXIF_GPXSPLIT);
+ // GPX出力: <trkseg>セグメントの最初の1ノードは無視する。 {ON | OFF}
+ valueStr = this.getProperty(GPX_NO_FIRST_NODE);
+ if (valueStr == null) {
+ update = true;
+ this.setProperty(GPX_NO_FIRST_NODE, "ON");
+ }
+
+ //------------------------------------------------
+ // GPX出力: 生成されたGPXファイル(ファイル名が'_.gpx'で終わるもの)も対象にする。 {ON | OFF}
+ valueStr = this.getProperty(GPX_REUSE);
if (valueStr == null) {
update = true;
- this.setProperty(EXIF_GPXSPLIT, "ON");
+ this.setProperty(GPX_REUSE, "OFF");
+ }
+
+ //------------------------------------------------
+ // GPX: 基準時刻 {FILE_UPDATE | EXIF}
+ valueStr = this.getProperty(GPX_BASETIME);
+ if (valueStr == null) {
+ update = true;
+ this.setProperty(GPX_BASETIME, "FILE_UPDATE");
}
if (update) {
// ・ファイルがなければ新たに作る
// ・項目が足りない時は書き足す。
- this.store(new FileOutputStream(file), "defuilt settings");
+ this.store(new FileOutputStream(this.file), "defuilt settings");
}
}
+
+ public void store() throws FileNotFoundException, IOException {
+ this.store(new FileOutputStream(this.file), "by AdjustTime");
+ }
}