1
0
Fork 0
mirror of https://github.com/openstf/stf synced 2025-10-05 02:29:26 +02:00

Support variable bit depths. Fix color issues.

This commit is contained in:
Simo Kinnunen 2015-09-21 16:28:05 +09:00
parent 9d20484dcb
commit 977b8c198e
3 changed files with 41 additions and 10 deletions

View file

@ -1,5 +1,6 @@
var net = require('net')
var util = require('util')
var os = require('os')
var syrup = require('stf-syrup')
var Promise = require('bluebird')
@ -65,6 +66,9 @@ module.exports = syrup.serial()
, frameHeight: 0
, sentFrameTime: null
, updateRequests: 0
, frameConfig: {
format: jpeg.FORMAT_RGB
}
}
var pointerTranslator = new PointerTranslator()
@ -115,7 +119,9 @@ module.exports = syrup.serial()
return
}
var decoded = jpeg.decompressSync(connState.lastFrame)
var decoded = jpeg.decompressSync(
connState.lastFrame, connState.frameConfig)
conn.writeFramebufferUpdate([
{ xPosition: 0
, yPosition: 0
@ -150,6 +156,35 @@ module.exports = syrup.serial()
maybeSendFrame()
})
conn.on('formatchange', function(format) {
var same = os.endianness() == 'BE' == format.bigEndianFlag
switch (format.bitsPerPixel) {
case 8:
connState.frameConfig = {
format: jpeg.FORMAT_GRAY
}
break
case 24:
connState.frameConfig = {
format: ((format.redShift > format.blueShift) === same)
? jpeg.FORMAT_BGR
: jpeg.FORMAT_RGB
}
break
case 32:
connState.frameConfig = {
format: ((format.redShift > format.blueShift) === same)
? (format.blueShift === 0
? jpeg.FORMAT_BGRX
: jpeg.FORMAT_XBGR)
: (format.redShift === 0
? jpeg.FORMAT_RGBX
: jpeg.FORMAT_XRGB)
}
break
}
})
conn.on('pointer', function(event) {
pointerTranslator.push(event)
})