瀏覽代碼

adding version to program data

Willie 6 年之前
父節點
當前提交
6016ea23a7

+ 8 - 4
src/main/java/de/mcs/tools/midicontroller/ConvertJsonData2Hex.java

@@ -33,6 +33,7 @@ import de.mcs.tools.midicontroller.data.ButtonData;
 import de.mcs.tools.midicontroller.data.DataData;
 import de.mcs.tools.midicontroller.data.EventData;
 import de.mcs.tools.midicontroller.data.ProgramData;
+import de.mcs.tools.midicontroller.data.Programs;
 import de.mcs.tools.sps.utils.IntelHex;
 import de.mcs.utils.Files;
 import de.mcs.utils.JacksonUtils;
@@ -49,10 +50,13 @@ public class ConvertJsonData2Hex {
 	 */
 	public static void main(String[] args) throws Exception {
 		InputStream source = ClassLoader.getSystemResourceAsStream("programdata.json");
-		ProgramData[] programDatas = JacksonUtils.getJsonMapper().readValue(source, ProgramData[].class);
-
+		Programs programs = JacksonUtils.getJsonMapper().readValue(source, Programs.class);
+		int saveSize = 0;
 		try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
-			for (ProgramData programData : programDatas) {
+			out.write((byte) programs.getVersion());
+
+			for (ProgramData programData : programs.getPrograms()) {
+				saveSize = out.size();
 				System.out.println(programData.toString());
 				byte[] name = copyInto(getEmptyByteArray(12), getStringAsByte(programData.getName(), 12));
 
@@ -132,7 +136,7 @@ public class ConvertJsonData2Hex {
 				}
 
 				out.write(0xFF);
-				System.out.println(String.format("actual size: %d", out.size()));
+				System.out.println(String.format("actual size: %d", out.size() - saveSize));
 			}
 			out.close();
 			byte[] outBytes = out.toByteArray();

+ 74 - 72
src/main/java/de/mcs/tools/midicontroller/data/ProgramData.java

@@ -29,76 +29,78 @@ import java.util.Arrays;
  *
  */
 public class ProgramData {
-  private String name;
-  private int prgNumber;
-  private int internalMidi;
-  private int externalMidi;
-  private ButtonData[] buttons;
-  private EventData[] events;
-
-  @Override
-  public String toString() {
-    return String.format("PRG[name: %s, prgNumber: %d, buttons: %s, events: %s]", name, prgNumber,
-        Arrays.toString(buttons), Arrays.toString(events));
-  }
-
-  public String getName() {
-    return name;
-  }
-
-  public void setName(String name) {
-    this.name = name;
-  }
-
-  public int getPrgNumber() {
-    return prgNumber;
-  }
-
-  public void setPrgNumber(int prgNumber) {
-    this.prgNumber = prgNumber;
-  }
-
-  public ButtonData[] getButtons() {
-    return buttons;
-  }
-
-  public void setButtons(ButtonData[] buttons) {
-    this.buttons = buttons;
-  }
-
-  public EventData[] getEvents() {
-    return events;
-  }
-
-  public void setEvents(EventData[] events) {
-    this.events = events;
-  }
-
-  /**
-   * @return the internalMidi
-   */
-  public int getInternalMidi() {
-    return internalMidi;
-  }
-
-  /**
-   * @param internalMidi the internalMidi to set
-   */
-  public void setInternalMidi(int internalMidi) {
-    this.internalMidi = internalMidi;
-  }
-
-  /**
-   * @return the externalMidi
-   */
-  public int getExternalMidi() {
-    return externalMidi;
-  }
-
-  /**
-   * @param externalMidi the externalMidi to set
-   */
-  public void setExternalMidi(int externalMidi) {
-    this.externalMidi = externalMidi;
-  }
+	private String name;
+	private int prgNumber;
+	private int internalMidi;
+	private int externalMidi;
+	private ButtonData[] buttons;
+	private EventData[] events;
+
+	@Override
+	public String toString() {
+		return String.format("PRG[name: %s, prgNumber: %d, buttons: %s, events: %s]", name, prgNumber, Arrays.toString(buttons), Arrays.toString(events));
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public int getPrgNumber() {
+		return prgNumber;
+	}
+
+	public void setPrgNumber(int prgNumber) {
+		this.prgNumber = prgNumber;
+	}
+
+	public ButtonData[] getButtons() {
+		return buttons;
+	}
+
+	public void setButtons(ButtonData[] buttons) {
+		this.buttons = buttons;
+	}
+
+	public EventData[] getEvents() {
+		return events;
+	}
+
+	public void setEvents(EventData[] events) {
+		this.events = events;
+	}
+
+	/**
+	 * @return the internalMidi
+	 */
+	public int getInternalMidi() {
+		return internalMidi;
+	}
+
+	/**
+	 * @param internalMidi
+	 *            the internalMidi to set
+	 */
+	public void setInternalMidi(int internalMidi) {
+		this.internalMidi = internalMidi;
+	}
+
+	/**
+	 * @return the externalMidi
+	 */
+	public int getExternalMidi() {
+		return externalMidi;
+	}
+
+	/**
+	 * @param externalMidi
+	 *            the externalMidi to set
+	 */
+	public void setExternalMidi(int externalMidi) {
+		this.externalMidi = externalMidi;
+	}
+
 }

+ 48 - 0
src/main/java/de/mcs/tools/midicontroller/data/Programs.java

@@ -0,0 +1,48 @@
+/**
+ * MCS Media Computer Software
+ * <one line to give the program's name and a brief idea of what it does.>
+ * Copyright (C) 2018 by Wilfried Klaas
+ * Project: SPSEmulator
+ * File: Programs.java
+ * EMail: W.Klaas@gmx.de
+ * Created: 29.12.2018 wklaa
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+package de.mcs.tools.midicontroller.data;
+
+/**
+ * @author wklaa
+ *
+ */
+public class Programs {
+	private int version;
+	private ProgramData[] programs;
+
+	public int getVersion() {
+		return version;
+	}
+
+	public void setVersion(int version) {
+		this.version = version;
+	}
+
+	public ProgramData[] getPrograms() {
+		return programs;
+	}
+
+	public void setPrograms(ProgramData[] programs) {
+		this.programs = programs;
+	}
+}

+ 4 - 0
src/main/resources/programdata.json

@@ -1,5 +1,8 @@
+{ "version" : 1,
+"programs" :
 [
 	{
+		
 		"name": "Rock",
 		"prgNumber": 100,
 		"internalMidi": 0,
@@ -176,3 +179,4 @@
 		]
 	}
 ]
+}