@ -2246,18 +2246,28 @@ var mspHelper = (function (gui) {
} ;
} ;
self . _getSetting = function ( name ) {
self . _getSetting = function ( name ) {
if ( ! this . _settings ) {
var promise ;
if ( this . _settings ) {
promise = Promise . resolve ( this . _settings ) ;
} else {
promise = new Promise ( function ( resolve , reject ) {
var $this = this ;
var $this = this ;
$ . ajax ( {
$ . ajax ( {
url : chrome . extension . getURL ( '/resources/settings.json' ) ,
url : chrome . runtime . getURL ( '/resources/settings.json' ) ,
dataType : 'json' ,
dataType : 'json' ,
async : false ,
error : function ( jqXHR , text , error ) {
reject ( error ) ;
} ,
success : function ( data ) {
success : function ( data ) {
$this . _settings = data ;
$this . _settings = data ;
resolve ( data ) ;
}
}
} ) ;
} ) ;
} ) ;
}
}
return this . _settings [ name ] ;
return promise . then ( function ( data ) {
return data [ name ] ;
} ) ;
} ;
} ;
self . _encodeSettingName = function ( name , data ) {
self . _encodeSettingName = function ( name , data ) {
@ -2268,9 +2278,10 @@ var mspHelper = (function (gui) {
} ;
} ;
self . getSetting = function ( name , callback ) {
self . getSetting = function ( name , callback ) {
var setting = this . _getSetting ( name ) ;
var $this = this ;
return this . _getSetting ( name ) . then ( function ( setting ) {
var data = [ ] ;
var data = [ ] ;
this. _encodeSettingName ( name , data ) ;
$ this. _encodeSettingName ( name , data ) ;
MSP . send _message ( MSPCodes . MSPV2 _SETTING , data , false , function ( resp ) {
MSP . send _message ( MSPCodes . MSPV2 _SETTING , data , false , function ( resp ) {
var value ;
var value ;
switch ( setting . type ) {
switch ( setting . type ) {
@ -2305,10 +2316,12 @@ var mspHelper = (function (gui) {
callback ( value , setting ) ;
callback ( value , setting ) ;
}
}
} ) ;
} ) ;
} ) ;
} ;
} ;
self . encodeSetting = function ( name , value ) {
self . encodeSetting = function ( name , value ) {
var setting = this . _getSetting ( name ) ;
var $this = this ;
return this . _getSetting ( name ) . then ( function ( setting ) {
if ( setting . table ) {
if ( setting . table ) {
var found = false ;
var found = false ;
for ( var ii = 0 ; ii < setting . table . values . length ; ii ++ ) {
for ( var ii = 0 ; ii < setting . table . values . length ; ii ++ ) {
@ -2323,7 +2336,7 @@ var mspHelper = (function (gui) {
}
}
}
}
var data = [ ] ;
var data = [ ] ;
this. _encodeSettingName ( name , data ) ;
$ this. _encodeSettingName ( name , data ) ;
switch ( setting . type ) {
switch ( setting . type ) {
case "uint8_t" :
case "uint8_t" :
case "int8_t" :
case "int8_t" :
@ -2346,11 +2359,13 @@ var mspHelper = (function (gui) {
throw "Unknown setting type " + setting . type ;
throw "Unknown setting type " + setting . type ;
}
}
return data ;
return data ;
} ) ;
} ;
} ;
self . setSetting = function ( name , value , callback ) {
self . setSetting = function ( name , value , callback ) {
var data = this . encodeSetting ( name , value ) ;
this . encodeSetting ( name , value ) .then ( function ( data ) {
MSP . send _message ( MSPCodes . MSPV2 _SET _SETTING , data , false , callback ) ;
MSP . send _message ( MSPCodes . MSPV2 _SET _SETTING , data , false , callback ) ;
} ) ;
} ;
} ;
return self ;
return self ;