@@ -318,11 +318,12 @@ MetaWear.prototype.updateFirmwareWithUrl = function (url, callback) {
318318 } . bind ( this ) ) ;
319319
320320 var delegate = new MetaWear . DfuDelegate ( ) ;
321- delegate . on_dfu_started = MetaWear . FnVoid . toPointer ( onDfuStarted . bind ( this ) ) ;
322- delegate . on_dfu_cancelled = MetaWear . FnVoid . toPointer ( onDfuCancelled . bind ( this ) ) ;
323- delegate . on_transfer_percentage = MetaWear . FnVoid_Int . toPointer ( onTransferPercentage . bind ( this ) ) ;
324- delegate . on_successful_file_transferred = MetaWear . FnVoid . toPointer ( onSuccessfulFileTransfer . bind ( this ) ) ;
325- delegate . on_error = MetaWear . FnVoid_charP . toPointer ( onError . bind ( this ) ) ;
321+ delegate . context = ref . NULL ;
322+ delegate . on_dfu_started = MetaWear . FnVoid_VoidP . toPointer ( onDfuStarted . bind ( this ) ) ;
323+ delegate . on_dfu_cancelled = MetaWear . FnVoid_VoidP . toPointer ( onDfuCancelled . bind ( this ) ) ;
324+ delegate . on_transfer_percentage = MetaWear . FnVoid_VoidP_Int . toPointer ( onTransferPercentage . bind ( this ) ) ;
325+ delegate . on_successful_file_transferred = MetaWear . FnVoid_VoidP . toPointer ( onSuccessfulFileTransfer . bind ( this ) ) ;
326+ delegate . on_error = MetaWear . FnVoid_VoidP_charP . toPointer ( onError . bind ( this ) ) ;
326327 MetaWear . mbl_mw_metawearboard_perform_dfu ( this . board , delegate . ref ( ) , ref . allocCString ( filename ) ) ;
327328 }
328329 } . bind ( this ) ) ;
@@ -392,23 +393,23 @@ function invokeAndClearCallback(error) {
392393//
393394// DFU Delegate
394395//
395- function onDfuStarted ( ) {
396+ function onDfuStarted ( context ) {
396397 this . emit ( 'dfuStarted' ) ;
397398 debug ( 'onDfuStarted' ) ;
398399}
399- function onDfuCancelled ( ) {
400+ function onDfuCancelled ( context ) {
400401 debug ( 'onDfuCancelled' ) ;
401402}
402- function onTransferPercentage ( percentage ) {
403+ function onTransferPercentage ( context , percentage ) {
403404 debug ( 'transferPercentage ' + percentage ) ;
404405 this . percentage = percentage ;
405406 this . emit ( 'transferPercentage' , percentage ) ;
406407}
407- function onSuccessfulFileTransfer ( ) {
408+ function onSuccessfulFileTransfer ( context ) {
408409 debug ( 'onSuccessfulFileTransfer' ) ;
409410 this . emit ( 'onSuccessfulFileTransfer' ) ;
410411}
411- function onError ( message ) {
412+ function onError ( context , message ) {
412413 debug ( 'dfu error: ' + message ) ;
413414 invokeAndClearCallback . call ( this , new Error ( message ) ) ;
414415}
0 commit comments