package funkin.audio.waveform; class WaveformDataParser { public static function parseWaveformData(path:String):Null { var rawJson:String = openfl.Assets.getText(path).trim(); return parseWaveformDataString(rawJson, path); } public static function parseWaveformDataString(contents:String, ?fileName:String):Null { var parser = new json2object.JsonParser(); parser.ignoreUnknownVariables = false; parser.fromJson(contents, fileName); if (parser.errors.length > 0) { printErrors(parser.errors, fileName); return null; } return parser.value; } static function printErrors(errors:Array, id:String = ''):Void { trace('[WAVEFORM] Failed to parse waveform data: ${id}'); for (error in errors) funkin.data.DataError.printError(error); } }