Skip to content

Commit

Permalink
Merge pull request #24 from jamiefaye/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
jamiefaye authored Dec 10, 2018
2 parents 26f6f95 + e250e9e commit 5a67d28
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 53 deletions.
22 changes: 9 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,27 +99,23 @@ If you really in trouble, you can find a tool for reinitializing a FlashAir card

http://www.toshiba-personalstorage.net/ww/support/download/flashair/w04/config02.htm

Jamie's CONFIG file is set up to run in station mode on a local WiFi network. Here is what is in it:
Here are the full contents of the CONFIG file as recommended:

```
[Vendor]
CIPATH=/DCIM/100__TSB/FA000001.JPG
APPMODE=5
APPSSID=CALICO KATIE_EXT
APPMODE=4
APPNETWORKKEY=********
APPNAME=synth2
VERSION=F15DBW3BW4.00.02
CID=02544d535731364754d108467b011601
VERSION=F15DBW3BW4.00.00
CID=02544d535731364754d0f21e7a011601
PRODUCT=FlashAir
VENDOR=TOSHIBA
MASTERCODE=***********
UPLOAD=1
LOCK=1
WEBDAV=2
IFMODE=1
DNSMODE=0
TELNET=1
REDIRECT=0
APPINFO=0000000000000000
APPAUTOTIME=0
LOCK=1
```
## Credits

Expand Down
51 changes: 29 additions & 22 deletions xmlView/src/JsonXMLUtils.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,11 @@ function registerClass(name, clas) {
}

var doNotSerialize = new Set();
doNotSerialize.add('uniqueId');
var doNotSerializeJson = new Set();

doNotSerialize.add('uniqueId');
doNotSerializeJson.add('uniqueId');
doNotSerialize.add('_class');

function isArrayLike(val) {
if (val === null) { return false;}
Expand Down Expand Up @@ -112,23 +115,6 @@ function xmlToJson(xml, fill) {
}


function reviveClass(k, v) {
if (doNotSerialize.has(k)) return undefined;
let classToMake = nameToClassTab[k];
if (classToMake) {
if (isArrayLike(v)) {
for(var i = 0; i < v.length; ++i) {
v[i] = new classToMake(v[i]);
}
return v;
} else {
let nv = new classToMake(v);
return nv;
}
}
return v;
}

function gentabs(d) {
var str = "";
for(var i = 0; i< d; ++i) str += '\t';
Expand All @@ -140,10 +126,25 @@ function isObject(val) {
return ( (typeof val === 'function') || (typeof val === 'object') );
}

function reviveClass(k, v) {
if (doNotSerializeJson.has(k)) return undefined;
if (k === 'kit') {
let cat = 7;
}
if (!isObject(v)) return v;
let kName = v._class;
if (!kName) return v;
let classToMake = nameToClassTab[kName];
if (!classToMake) {
console.log("class name not in class tab: " + kName);
return v;
}
delete v._class;
return new classToMake(v);
}

function jsonToXML(kv, j, d) {

console.log(kv);
// console.log(kv);
if(!isObject(j)) {
return gentabs(d) + "<" + kv + ">" + j + "</" + kv + ">\n";
}
Expand All @@ -161,7 +162,7 @@ function jsonToXML(kv, j, d) {
}
}
let insides = "";

let keyOrder = [];
let keyTab = keyOrderTab[kv];

Expand Down Expand Up @@ -363,6 +364,12 @@ function forceArray(obj) {
return aObj;
}

function classReplacer(key, value) {
let hkv = classToNameTab[value.constructor];
if (!hkv) return value;
return {...{_class: hkv}, ...value};
}

function zonkDNS(json) {
for (var k in json) {
if(json.hasOwnProperty(k)) {
Expand All @@ -385,4 +392,4 @@ function zonkDNS(json) {
}
}

export {getXmlDOMFromString, jsonequals, jsonToXMLString, xmlToJson, reviveClass, jsonToTable, forceArray, isArrayLike, nameToClassTab, registerClass, zonkDNS};
export {getXmlDOMFromString, jsonequals, jsonToXMLString, xmlToJson, reviveClass, jsonToTable, forceArray, isArrayLike, nameToClassTab, registerClass, classReplacer, zonkDNS};
34 changes: 16 additions & 18 deletions xmlView/src/viewXML.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ require('file-loader?name=[name].[ext]!../css/edit.css');
import {openFileBrowser, saveFileBrowser} from './FileBrowser.js';
import {formatKit} from "./KitList.jsx";
import {showArranger} from "./Arranger.jsx";
import {getXmlDOMFromString, jsonequals, jsonToXMLString, xmlToJson, reviveClass, jsonToTable, forceArray, isArrayLike, zonkDNS} from "./JsonXMLUtils.js";
import {getXmlDOMFromString, jsonequals, jsonToXMLString, xmlToJson, reviveClass, jsonToTable, forceArray, isArrayLike, classReplacer, zonkDNS} from "./JsonXMLUtils.js";
import {convertHexTo50, fixm50to50, syncLevelTab} from "./HBHelpers.js";
import React from 'react';
import ReactDOM from "react-dom";
Expand Down Expand Up @@ -537,9 +537,6 @@ function plotKit13(track, reftrack, obj) {
let labName = '';
if (row.drumIndex) {
let rowInfo = kitList[row.drumIndex];
if (!rowInfo) {
let cat = 2;
}
labName = rowInfo.name;
if (labName != undefined) {
let labdiv = $("<div class='kitlab'/>");
Expand Down Expand Up @@ -641,19 +638,20 @@ function plotKit14(track, reftrack, song, obj) {
}
}
if (y < 0) continue;

for (var nx = 2; nx < noteData.length; nx += 20) {
let notehex = noteData.substring(nx, nx + 20);
let x = parseInt(notehex.substring(0, 8), 16);
let dur = parseInt(notehex.substring(8, 16), 16);
let vel = parseInt(notehex.substring(16, 18), 16);
let cond = parseInt(notehex.substring(18, 20), 16);
let noteInfo = notehex + labName;
x += xPlotOffset;
if (dur > 1) dur--;
let ndiv = $("<div class='trnkn npop' data-note='" + noteInfo + "'/>");
ndiv.css({left: x + 'px', bottom: ypos + 'px', width: dur + 'px', "background-color": colorEncodeNote(vel, cond)});
parentDiv.append(ndiv);
if (noteData) {
for (var nx = 2; nx < noteData.length; nx += 20) {
let notehex = noteData.substring(nx, nx + 20);
let x = parseInt(notehex.substring(0, 8), 16);
let dur = parseInt(notehex.substring(8, 16), 16);
let vel = parseInt(notehex.substring(16, 18), 16);
let cond = parseInt(notehex.substring(18, 20), 16);
let noteInfo = notehex + labName;
x += xPlotOffset;
if (dur > 1) dur--;
let ndiv = $("<div class='trnkn npop' data-note='" + noteInfo + "'/>");
ndiv.css({left: x + 'px', bottom: ypos + 'px', width: dur + 'px', "background-color": colorEncodeNote(vel, cond)});
parentDiv.append(ndiv);
}
}
}
obj.append(parentDiv);
Expand Down Expand Up @@ -1048,7 +1046,7 @@ function getTrackText(trackNum, songJ)
}
zonkDNS(trackD);
let trackWrap = {"track": trackD};
let asText = JSON.stringify(trackWrap, null, 1);
let asText = JSON.stringify(trackWrap, classReplacer, 1);
return asText;
}

Expand Down

0 comments on commit 5a67d28

Please sign in to comment.