From 1f870efd26fd3d1504cdeeecea8d685bb2d3d4fd Mon Sep 17 00:00:00 2001 From: uvok Date: Sat, 12 Jul 2025 10:52:30 +0200 Subject: Start parsing song --- .../uvok/tuxguitar/SongsterrFileFormatDetector.java | 19 +++++++------------ .../java/de/uvok/tuxguitar/SongsterrInputStream.java | 12 +++++++++--- .../main/java/de/uvok/tuxguitar/SongsterrSong.java | 5 +++++ 3 files changed, 21 insertions(+), 15 deletions(-) create mode 100644 songsterr-reader/src/main/java/de/uvok/tuxguitar/SongsterrSong.java diff --git a/songsterr-reader/src/main/java/de/uvok/tuxguitar/SongsterrFileFormatDetector.java b/songsterr-reader/src/main/java/de/uvok/tuxguitar/SongsterrFileFormatDetector.java index 125df35..3d2c5e7 100644 --- a/songsterr-reader/src/main/java/de/uvok/tuxguitar/SongsterrFileFormatDetector.java +++ b/songsterr-reader/src/main/java/de/uvok/tuxguitar/SongsterrFileFormatDetector.java @@ -1,11 +1,8 @@ package de.uvok.tuxguitar; -import java.io.IOException; import java.io.InputStream; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonFactory; - +import com.fasterxml.jackson.databind.ObjectMapper; import org.herac.tuxguitar.io.base.TGFileFormat; import org.herac.tuxguitar.io.base.TGFileFormatDetector; @@ -14,17 +11,15 @@ public class SongsterrFileFormatDetector implements TGFileFormatDetector { new String[] { "json", "bin" }); @Override - public TGFileFormat getFileFormat(InputStream arg0) { - byte[] b = new byte[5]; + public TGFileFormat getFileFormat(InputStream stream) { try { - arg0.read(b, 0, 5); - return FILE_FORMAT; - // JsonFactory factory = JsonFactory.builder().build(); - // JsonParser p = factory.createParser(arg0); - } catch (IOException e) { + ObjectMapper om = new ObjectMapper(); + om.readTree(stream); + } catch (Exception e) { + System.err.println(e.toString()); return null; } - // return FILE_FORMAT; + return FILE_FORMAT; } } diff --git a/songsterr-reader/src/main/java/de/uvok/tuxguitar/SongsterrInputStream.java b/songsterr-reader/src/main/java/de/uvok/tuxguitar/SongsterrInputStream.java index 3f98c11..d822aba 100644 --- a/songsterr-reader/src/main/java/de/uvok/tuxguitar/SongsterrInputStream.java +++ b/songsterr-reader/src/main/java/de/uvok/tuxguitar/SongsterrInputStream.java @@ -1,5 +1,4 @@ package de.uvok.tuxguitar; - import java.io.IOException; import java.io.InputStream; @@ -7,6 +6,11 @@ import org.herac.tuxguitar.io.base.TGFileFormat; import org.herac.tuxguitar.io.base.TGFileFormatException; import org.herac.tuxguitar.io.base.TGSongReader; import org.herac.tuxguitar.io.base.TGSongReaderHandle; +import com.fasterxml.jackson.core.JsonFactory; +import com.fasterxml.jackson.core.StreamReadFeature; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; public class SongsterrInputStream implements TGSongReader { @@ -18,10 +22,12 @@ public class SongsterrInputStream implements TGSongReader { @Override public void read(TGSongReaderHandle arg0) throws TGFileFormatException { InputStream is = arg0.getInputStream(); - byte[] b = new byte[5]; try { - is.read(b, 0, 5); + ObjectMapper om = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + SongsterrSong song = om.readValue(is, SongsterrSong.class); + System.out.println(song); } catch (IOException e) { + throw new TGFileFormatException(); } } diff --git a/songsterr-reader/src/main/java/de/uvok/tuxguitar/SongsterrSong.java b/songsterr-reader/src/main/java/de/uvok/tuxguitar/SongsterrSong.java new file mode 100644 index 0000000..1693316 --- /dev/null +++ b/songsterr-reader/src/main/java/de/uvok/tuxguitar/SongsterrSong.java @@ -0,0 +1,5 @@ +package de.uvok.tuxguitar; + +public class SongsterrSong { + public int strings; +} -- cgit v1.2.3