diff --git a/lib/handshake.js b/lib/handshake.js index 1abb9a4..8f9c1c9 100644 --- a/lib/handshake.js +++ b/lib/handshake.js @@ -32,38 +32,39 @@ function readVisuals(bl, visuals, n_visuals, cb) }); } -function readDepths(bl, display, depths, n_depths, cb) -{ - if (n_depths == 0) - { - cb(); - return; - } - - bl.unpack( 'CxSxxxx', function(res) { - var dep = res[0]; - var n_visuals = res[1]; - var visuals = {}; - readVisuals(bl, visuals, n_visuals, function() - { - if (dep in depths) { - for (var visual in visuals) { - depths[dep][visual] = visuals[visual]; - } - n_depths--; - } else { - depths[dep] = visuals; - } - if (Object.keys(depths).length == n_depths) - cb(); - else - readDepths(bl, display, depths, n_depths, cb); - }); - }); -} - function readScreens(bl, display, cbDisplayReady) { + var numParsedDepths = 0; + var readDepths = function(bl, display, depths, n_depths, cb) + { + if (n_depths == 0) + { + cb(); + return; + } + + bl.unpack( 'CxSxxxx', function(res) { + var dep = res[0]; + var n_visuals = res[1]; + var visuals = {}; + readVisuals(bl, visuals, n_visuals, function() + { + if (dep in depths) { + for (var visual in visuals) { + depths[dep][visual] = visuals[visual]; + } + } else { + depths[dep] = visuals; + } + numParsedDepths++; + if (numParsedDepths == n_depths) + cb(); + else + readDepths(bl, display, depths, n_depths, cb); + }); + }); + } + // for (i=0; i < display.screen_num; ++i) { var scr = {};