WIP: Using new page object, frames stored and retrieved in msgbase, code cleanup, more optimisations needed
This commit is contained in:
parent
29f82592ac
commit
701dd9f5e8
137
load/page.js
137
load/page.js
@ -40,7 +40,7 @@
|
|||||||
+ Character must be set to NULL when it's a control character
|
+ Character must be set to NULL when it's a control character
|
||||||
|
|
||||||
= EXAMPLE:
|
= EXAMPLE:
|
||||||
a = new Page('TEX') // root frame 80 x 24 for ANSItex
|
a = new Page() // root frame 80 x 24 for ANSItex
|
||||||
b = new Window(1,1,40,22,a.content) // b frame 40 x 22 - starting at 1,1
|
b = new Window(1,1,40,22,a.content) // b frame 40 x 22 - starting at 1,1
|
||||||
c = new Window(41,1,40,22,a.content) // c frame 40 x 22 - starting at 41,1 (child of a)
|
c = new Window(41,1,40,22,a.content) // c frame 40 x 22 - starting at 41,1 (child of a)
|
||||||
d = new Window(1,1,21,10,c) // d frame 20 x 11 - starting at 1,1 of c
|
d = new Window(1,1,21,10,c) // d frame 20 x 11 - starting at 1,1 of c
|
||||||
@ -109,7 +109,7 @@ require('sbbsdefs.js','SS_USERON'); // Need for our ANSI colors eg: BG_*
|
|||||||
* - save - Save the frame to the msgbase
|
* - save - Save the frame to the msgbase
|
||||||
* - load - Load the frame from the msgbase
|
* - load - Load the frame from the msgbase
|
||||||
*/
|
*/
|
||||||
function Page(service,debug) {
|
function Page(debug) {
|
||||||
this.__window__ = {
|
this.__window__ = {
|
||||||
layout: undefined, // Window - Full page content
|
layout: undefined, // Window - Full page content
|
||||||
header: undefined, // Window - Page Title
|
header: undefined, // Window - Page Title
|
||||||
@ -155,32 +155,28 @@ function Page(service,debug) {
|
|||||||
* @param service
|
* @param service
|
||||||
* @param debug
|
* @param debug
|
||||||
*/
|
*/
|
||||||
function init(service,debug) {
|
function init(debug) {
|
||||||
log(LOG_DEBUG,'- PAGE::init(): type ['+service+']');
|
log(LOG_DEBUG,'- PAGE::init(): type ['+SESSION_EXT+']');
|
||||||
|
|
||||||
|
this.__window__.layout = new Window(1,1,FRAME_WIDTH,FRAME_HEIGHT+1,'LAYOUT',this,debug);
|
||||||
|
this.__window__.body = new Window(1,2,FRAME_WIDTH,FRAME_HEIGHT,'CONTENT',this.__window__.layout,debug);
|
||||||
|
this.__window__.header = new Window(1,1,FRAME_WIDTH,1,'HEADER',this.__window__.layout,debug);
|
||||||
|
this.__window__.provider = new Window(1,1,FRAME_PROVIDER_LENGTH,1,'PROVIDER',this.__window__.header,debug);
|
||||||
|
|
||||||
switch (SESSION_EXT) {
|
switch (SESSION_EXT) {
|
||||||
case 'tex':
|
case 'tex':
|
||||||
require('ansitex/load/session/ansitex.js','SESSION_ANSITEX');
|
require('ansitex/load/session/ansitex.js','SESSION_ANSITEX');
|
||||||
this.__window__.layout = new Window(1,1,ANSI_FRAME_WIDTH,ANSI_FRAME_HEIGHT+1,'LAYOUT',this,debug);
|
|
||||||
this.__window__.body = new Window(1,2,ANSI_FRAME_WIDTH,ANSI_FRAME_HEIGHT,'CONTENT',this.__window__.layout,debug);
|
|
||||||
|
|
||||||
this.__window__.header = new Window(1,1,ANSI_FRAME_WIDTH,1,'HEADER',this.__window__.layout,debug);
|
this.__window__.pagenum = new Window(57,1,FRAME_PAGE_LENGTH,1,'#',this.__window__.header,debug);
|
||||||
this.__window__.provider = new Window(1,1,ANSI_FRAME_PROVIDER_LENGTH,1,'PROVIDER',this.__window__.header,debug);
|
this.__window__.cost = new Window(71,1,FRAME_COST_LENGTH,1,'$',this.__window__.header,debug);
|
||||||
this.__window__.pagenum = new Window(57,1,ANSI_FRAME_PAGE_LENGTH,1,'#',this.__window__.header,debug);
|
|
||||||
this.__window__.cost = new Window(71,1,ANSI_FRAME_COST_LENGTH,1,'$',this.__window__.header,debug);
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'vtx':
|
case 'vtx':
|
||||||
require('ansitex/load/session/viewdata.js','SESSION_VIEWDATA');
|
require('ansitex/load/session/viewdata.js','SESSION_VIEWDATA');
|
||||||
// @todo VTX hasnt been worked on at all - need at last a viewdata2attrs function
|
|
||||||
this.__window__.layout = new Window(1,1,VIEWDATA_FRAME_WIDTH,VIEWDATA_FRAME_HEIGHT+1,'LAYOUT',this,debug);
|
|
||||||
this.__window__.body = new Window(1,2,VIEWDATA_FRAME_WIDTH,VIEWDATA_FRAME_HEIGHT,'CONTENT',this.__window__.layout,debug)
|
|
||||||
|
|
||||||
this.__window__.header = new Window(1,1,VIEWDATA_FRAME_WIDTH,1,'HEADER',this.__window__.layout,debug);
|
this.__window__.pagenum = new Window(24,1,FRAME_PAGE_LENGTH,1,'#',this.__window__.header,debug);
|
||||||
this.__window__.provider = new Window(1,1,VIEWDATA_FRAME_PROVIDER_LENGTH,1,'PROVIDER',this.__window__.header,debug);
|
this.__window__.cost = new Window(35,1,FRAME_COST_LENGTH,1,'$',this.__window__.header,debug);
|
||||||
this.__window__.pagenum = new Window(24,1,VIEWDATA_FRAME_PAGE_LENGTH,1,'#',this.__window__.header,debug);
|
|
||||||
this.__window__.cost = new Window(35,1,VIEWDATA_FRAME_COST_LENGTH,1,'$',this.__window__.header,debug);
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -214,27 +210,27 @@ function Page(service,debug) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Page.prototype.__defineGetter__('cost',function() {
|
||||||
|
return Number(this.__properties__.cost);
|
||||||
|
});
|
||||||
Page.prototype.__defineSetter__('cost',function(int) {
|
Page.prototype.__defineSetter__('cost',function(int) {
|
||||||
if (typeof int !== 'number')
|
if (typeof int !== 'number')
|
||||||
throw new Error('Cost must be a number');
|
throw new Error('Cost must be a number');
|
||||||
|
|
||||||
this.__properties__.cost = int;
|
this.__properties__.cost = int;
|
||||||
|
|
||||||
|
if ((''+int).length > FRAME_COST_LENGTH-1-FRAME_ATTR_LENGTH)
|
||||||
|
throw new Error('Cost too large');
|
||||||
|
|
||||||
// Populate the cost window
|
// Populate the cost window
|
||||||
switch (SESSION_EXT) {
|
switch (SESSION_EXT) {
|
||||||
case 'tex':
|
case 'tex':
|
||||||
if ((''+int).length > ANSI_FRAME_COST_LENGTH-1-ANSI_FRAME_ATTR_LENGTH)
|
this.__window__.cost.__properties__.content = rawtoattrs(ESC+'[1;32m'+padright(int,FRAME_COST_LENGTH-1-FRAME_ATTR_LENGTH,' ')+FRAME_COSTUNIT).content;
|
||||||
throw new Error('Cost too large');
|
|
||||||
|
|
||||||
this.__window__.cost.__properties__.content = anstoattrs(ESC+'[1;32m'+padright(int,ANSI_FRAME_COST_LENGTH-1-ANSI_FRAME_ATTR_LENGTH,' ')+'c').content;
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'vtx':
|
case 'vtx':
|
||||||
if ((''+int).length > VIEWDATA_FRAME_COST_LENGTH-1-VIEWDATA_FRAME_ATTR_LENGTH)
|
this.__window__.cost.__properties__.content = rawtoattrs(VIEWDATA_BIN_GREEN+padright(int,FRAME_COST_LENGTH-1-FRAME_ATTR_LENGTH,' ')+FRAME_COSTUNIT).content;
|
||||||
throw new Error('Cost too large');
|
|
||||||
|
|
||||||
this.__window__.cost.__properties__.content = bintoattrs(VIEWDATA_BIN_GREEN+padright(int,VIEWDATA_FRAME_COST_LENGTH-1-VIEWDATA_FRAME_ATTR_LENGTH,' ')+'c').content;
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -242,9 +238,6 @@ function Page(service,debug) {
|
|||||||
throw new Error(SESSION_EXT+' type not implemented');
|
throw new Error(SESSION_EXT+' type not implemented');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
Page.prototype.__defineGetter__('cost',function() {
|
|
||||||
return Number(this.__properties__.cost);
|
|
||||||
});
|
|
||||||
|
|
||||||
Page.prototype.__defineGetter__('dimensions',function() {
|
Page.prototype.__defineGetter__('dimensions',function() {
|
||||||
return this.__properties__.width+' X '+this.__properties__.height;
|
return this.__properties__.width+' X '+this.__properties__.height;
|
||||||
@ -301,20 +294,17 @@ function Page(service,debug) {
|
|||||||
|
|
||||||
this.__properties__.name = object;
|
this.__properties__.name = object;
|
||||||
|
|
||||||
|
if ((''+this.__properties__.name.frame).length > FRAME_PAGE_LENGTH-1-FRAME_ATTR_LENGTH)
|
||||||
|
throw new Error('Pagenum too large');
|
||||||
|
|
||||||
switch (SESSION_EXT) {
|
switch (SESSION_EXT) {
|
||||||
case 'tex':
|
case 'tex':
|
||||||
if ((''+this.__properties__.name.frame).length > ANSI_FRAME_PAGE_LENGTH-1-ANSI_FRAME_ATTR_LENGTH)
|
this.__window__.pagenum.__properties__.content = rawtoattrs(ESC+'[1;37m'+this.__properties__.name.toString()).content;
|
||||||
throw new Error('Pagenum too large');
|
|
||||||
|
|
||||||
this.__window__.pagenum.__properties__.content = anstoattrs(ESC+'[1;37m'+this.__properties__.name.toString()).content;
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'vtx':
|
case 'vtx':
|
||||||
if ((''+this.__properties__.name.frame).length > VIEWDATA_FRAME_PAGE_LENGTH-1-VIEWDATA_FRAME_ATTR_LENGTH)
|
this.__window__.pagenum.__properties__.content = rawtoattrs(VIEWDATA_BIN_WHITE+this.__properties__.name.toString()).content;
|
||||||
throw new Error('Pagenum too large');
|
|
||||||
|
|
||||||
this.__window__.pagenum.__properties__.content = bintoattrs(VIEWDATA_BIN_WHITE+this.__properties__.name.toString()).content;
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -341,17 +331,17 @@ function Page(service,debug) {
|
|||||||
|
|
||||||
switch (SESSION_EXT) {
|
switch (SESSION_EXT) {
|
||||||
case 'tex':
|
case 'tex':
|
||||||
provider = anstoattrs(ansi+ESC+'[0m').content;
|
provider = rawtoattrs(ansi+ESC+'[0m').content;
|
||||||
|
|
||||||
if (provider[1].filter(function(child) { return child.ch; }).length-1 > ANSI_FRAME_PROVIDER_LENGTH)
|
if (provider[1].filter(function(child) { return child.ch; }).length-1 > FRAME_PROVIDER_LENGTH)
|
||||||
throw new Error('Provider too large');
|
throw new Error('Provider too large');
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'vtx':
|
case 'vtx':
|
||||||
provider = bintoattrs(ansi).content;
|
provider = rawtoattrs(ansi).content;
|
||||||
|
|
||||||
if (provider[1].length-1 > VIEWDATA_FRAME_PROVIDER_LENGTH)
|
if (provider[1].length-1 > FRAME_PROVIDER_LENGTH)
|
||||||
throw new Error('Provider too large');
|
throw new Error('Provider too large');
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@ -472,13 +462,13 @@ function Page(service,debug) {
|
|||||||
|
|
||||||
var attr;
|
var attr;
|
||||||
|
|
||||||
|
new_screen = BG_BLACK|LIGHTGRAY;
|
||||||
|
|
||||||
switch (SESSION_EXT) {
|
switch (SESSION_EXT) {
|
||||||
case 'tex':
|
case 'tex':
|
||||||
new_screen = BG_BLACK|LIGHTGRAY;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'vtx':
|
case 'vtx':
|
||||||
new_screen = BG_BLACK|LIGHTGRAY;
|
|
||||||
new_line = BG_BLACK|LIGHTGRAY;
|
new_line = BG_BLACK|LIGHTGRAY;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -937,8 +927,10 @@ function Page(service,debug) {
|
|||||||
switch (ext) {
|
switch (ext) {
|
||||||
// ANSI files
|
// ANSI files
|
||||||
case 'ans':
|
case 'ans':
|
||||||
log(LOG_DEBUG,'Processing ANSI file');
|
// ViewData files
|
||||||
var page = anstoattrs(contents,this.width,this.__window__.body.y,this.__window__.body.x);
|
case 'bin':
|
||||||
|
log(LOG_DEBUG,'Processing ANSI/VIEWDATA file');
|
||||||
|
var page = rawtoattrs(contents,this.width,this.__window__.body.y,this.__window__.body.x,debug);
|
||||||
|
|
||||||
this.__window__.body.__properties__.content = page.content;
|
this.__window__.body.__properties__.content = page.content;
|
||||||
this.dynamic_fields = page.dynamic_fields;
|
this.dynamic_fields = page.dynamic_fields;
|
||||||
@ -969,9 +961,9 @@ function Page(service,debug) {
|
|||||||
log(LOG_INFO,'- Parsing content');
|
log(LOG_INFO,'- Parsing content');
|
||||||
|
|
||||||
if (ext === 'tex')
|
if (ext === 'tex')
|
||||||
var page = anstoattrs(base64_decode(contents[index]).replace("\x0a\x0d\x0a\x0d","\x0a\x0d"),this.width,this.__window__.body.y,this.__window__.body.x);
|
var page = rawtoattrs(base64_decode(contents[index]).replace("\x0a\x0d\x0a\x0d","\x0a\x0d"),this.width,this.__window__.body.y,this.__window__.body.x);
|
||||||
else if (ext === 'vtx')
|
else if (ext === 'vtx')
|
||||||
var page = bintoattrs(base64_decode(contents[index]),this.width,this.__window__.body.y,this.__window__.body.x);
|
var page = rawtoattrs(base64_decode(contents[index]),this.width,this.__window__.body.y,this.__window__.body.x);
|
||||||
|
|
||||||
this.__window__.body.__properties__.content = page.content;
|
this.__window__.body.__properties__.content = page.content;
|
||||||
this.dynamic_fields = page.dynamic_fields;
|
this.dynamic_fields = page.dynamic_fields;
|
||||||
@ -1022,15 +1014,6 @@ function Page(service,debug) {
|
|||||||
this.key = contents[index];
|
this.key = contents[index];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/*
|
|
||||||
case 'name':
|
|
||||||
log(LOG_INFO,'- PAGE name : '+JSON.stringify(contents[index]));
|
|
||||||
this.name.frame = contents[index].frame;
|
|
||||||
this.name.index = contents[index].index;
|
|
||||||
|
|
||||||
break;
|
|
||||||
*/
|
|
||||||
|
|
||||||
case 'type':
|
case 'type':
|
||||||
this.type = contents[index];
|
this.type = contents[index];
|
||||||
break;
|
break;
|
||||||
@ -1040,7 +1023,6 @@ function Page(service,debug) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'window':
|
case 'window':
|
||||||
log(LOG_DEBUG,' - RAW: '+JSON.stringify(contents[index]));
|
|
||||||
for (var y in contents[index]) {
|
for (var y in contents[index]) {
|
||||||
//log(LOG_DEBUG,' - Y: '+y+', '+JSON.stringify(contents[index][y]));
|
//log(LOG_DEBUG,' - Y: '+y+', '+JSON.stringify(contents[index][y]));
|
||||||
|
|
||||||
@ -1058,13 +1040,11 @@ function Page(service,debug) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
log(LOG_DEBUG,' - CONTENT: '+JSON.stringify(this.__window__.body.__properties__.content));
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
log(LOG_ERROR,'! Frame property not handled: '+index+', value:'+contents[index]);
|
log(LOG_ERROR,'! Frame property not handled: '+index+', value:'+contents[index]);
|
||||||
|
|
||||||
//this[index] = contents[index];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1086,30 +1066,6 @@ function Page(service,debug) {
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// ViewData files
|
|
||||||
case 'bin':
|
|
||||||
log(LOG_DEBUG,'Processing VIEWDATA file');
|
|
||||||
var page = bintoattrs(contents,this.width,this.__window__.body.y,this.__window__.body.x,debug);
|
|
||||||
|
|
||||||
this.__window__.body.__properties__.content = page.content;
|
|
||||||
this.dynamic_fields = page.dynamic_fields;
|
|
||||||
// Our fields are sorted in x descending order
|
|
||||||
this.input_fields = page.input_fields.sort(function(a,b) { return a.x < b.x ? 1 : -1; });
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
/*
|
|
||||||
case 'ASC':
|
|
||||||
case 'MSG':
|
|
||||||
case 'TXT':
|
|
||||||
lines = contents.split(/\r*\n/);
|
|
||||||
|
|
||||||
while (lines.length > 0)
|
|
||||||
this.putmsg(lines.shift()+"\r\n");
|
|
||||||
|
|
||||||
break;
|
|
||||||
*/
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
throw new Error('Unsupported filetype:'+ext);
|
throw new Error('Unsupported filetype:'+ext);
|
||||||
}
|
}
|
||||||
@ -1170,13 +1126,13 @@ function Page(service,debug) {
|
|||||||
|
|
||||||
switch (SESSION_EXT) {
|
switch (SESSION_EXT) {
|
||||||
case 'tex':
|
case 'tex':
|
||||||
this.__window__.pagenum.__properties__.content = anstoattrs(ESC+'[1;37m'+this.name.toString()).content;
|
this.__window__.pagenum.__properties__.content = rawtoattrs(ESC+'[1;37m'+this.name.toString()).content;
|
||||||
this.provider = base64_decode(po.logoans);
|
this.provider = base64_decode(po.logoans);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'vtx':
|
case 'vtx':
|
||||||
this.__window__.pagenum.__properties__.content = bintoattrs(VIEWDATA_BIN_WHITE+this.name.toString()).content;
|
this.__window__.pagenum.__properties__.content = rawtoattrs(VIEWDATA_BIN_WHITE+this.name.toString()).content;
|
||||||
this.provider = base64_decode(po.logovtx);
|
this.provider = base64_decode(po.logovtx);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@ -1250,16 +1206,6 @@ function Page(service,debug) {
|
|||||||
content[FRAME_SAVE_ATTRS[index]] = this.key;
|
content[FRAME_SAVE_ATTRS[index]] = this.key;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/*
|
|
||||||
case 'name':
|
|
||||||
content[FRAME_SAVE_ATTRS[index]] = { frame: this.name.frame, index: this.name.index };
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'owner':
|
|
||||||
content[FRAME_SAVE_ATTRS[index]] = this.owner;
|
|
||||||
break;
|
|
||||||
*/
|
|
||||||
|
|
||||||
case 'type':
|
case 'type':
|
||||||
content[FRAME_SAVE_ATTRS[index]] = this.type;
|
content[FRAME_SAVE_ATTRS[index]] = this.type;
|
||||||
break;
|
break;
|
||||||
@ -1301,7 +1247,6 @@ function Page(service,debug) {
|
|||||||
|
|
||||||
log(LOG_DEBUG,'** Save frame with keys'+JSON.stringify(Object.keys(content)));
|
log(LOG_DEBUG,'** Save frame with keys'+JSON.stringify(Object.keys(content)));
|
||||||
|
|
||||||
//ma = new MsgBase(MSG_BASE);
|
|
||||||
if (! mb.save_msg(
|
if (! mb.save_msg(
|
||||||
{
|
{
|
||||||
subject: this.name.toString(),
|
subject: this.name.toString(),
|
||||||
|
@ -105,7 +105,7 @@ function Session() {
|
|||||||
throw new Error('page must be a PageObject');
|
throw new Error('page must be a PageObject');
|
||||||
|
|
||||||
this.baselineSend('LOADING');
|
this.baselineSend('LOADING');
|
||||||
this.page = new Page(SESSION_EXT);
|
this.page = new Page();
|
||||||
this.page.get(page);
|
this.page.get(page);
|
||||||
this.baselineClear();
|
this.baselineClear();
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
const SESSION_ANSITEX = (1<<1);
|
const SESSION_ANSITEX = (1<<1);
|
||||||
const SESSION_EXT = 'tex';
|
const SESSION_EXT = 'tex';
|
||||||
|
|
||||||
const ANSI_FRAME_WIDTH = 80;
|
const FRAME_WIDTH = 80;
|
||||||
const ANSI_FRAME_HEIGHT = 22;
|
const FRAME_HEIGHT = 22;
|
||||||
const ANSI_FRAME_PROVIDER_LENGTH = 55;
|
const FRAME_PROVIDER_LENGTH = 55;
|
||||||
const ANSI_FRAME_PAGE_LENGTH = 13;
|
const FRAME_PAGE_LENGTH = 13;
|
||||||
const ANSI_FRAME_COST_LENGTH = 10;
|
const FRAME_COST_LENGTH = 10;
|
||||||
const ANSI_FRAME_ATTR_LENGTH = 0; // Space that an attribute takes
|
const FRAME_ATTR_LENGTH = 0; // Space that an attribute takes
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This function converts ANSI text into an array of attributes
|
* This function converts ANSI text into an array of attributes
|
||||||
@ -20,7 +20,7 @@ const ANSI_FRAME_ATTR_LENGTH = 0; // Space that an attribute takes
|
|||||||
* @param xoffset - fields offset as discovered
|
* @param xoffset - fields offset as discovered
|
||||||
* @param debug - Enable debug mode
|
* @param debug - Enable debug mode
|
||||||
*/
|
*/
|
||||||
function anstoattrs(contents,width,yoffset,xoffset,debug) {
|
function rawtoattrs(contents,width,yoffset,xoffset,debug) {
|
||||||
if (debug)
|
if (debug)
|
||||||
writeln('DEBUG active: '+debug);
|
writeln('DEBUG active: '+debug);
|
||||||
|
|
||||||
|
@ -1,59 +1,59 @@
|
|||||||
var SESSION_VIEWDATA = (1<<2);
|
const SESSION_VIEWDATA = (1<<2);
|
||||||
var SESSION_EXT = 'vtx';
|
const SESSION_EXT = 'vtx';
|
||||||
|
|
||||||
var VIEWDATA_FRAME_WIDTH = 40;
|
const FRAME_WIDTH = 40;
|
||||||
var VIEWDATA_FRAME_HEIGHT = 22;
|
const FRAME_HEIGHT = 22;
|
||||||
var VIEWDATA_FRAME_PROVIDER_LENGTH = 23;
|
const FRAME_PROVIDER_LENGTH = 23;
|
||||||
var VIEWDATA_FRAME_PAGE_LENGTH = 11;
|
const FRAME_PAGE_LENGTH = 11;
|
||||||
var VIEWDATA_FRAME_COST_LENGTH = 6;
|
const FRAME_COST_LENGTH = 6;
|
||||||
const VIEWDATA_FRAME_ATTR_LENGTH = 0; // Space that an attribute takes
|
const FRAME_ATTR_LENGTH = 0; // Space that an attribute takes
|
||||||
|
|
||||||
var VIEWDATA_LEFT = '\x08';
|
const VIEWDATA_LEFT = '\x08';
|
||||||
var VIEWDATA_RIGHT = '\x09';
|
const VIEWDATA_RIGHT = '\x09';
|
||||||
var VIEWDATA_DOWN = '\x0a'; // \n
|
const VIEWDATA_DOWN = '\x0a'; // \n
|
||||||
var VIEWDATA_UP = '\x0b';
|
const VIEWDATA_UP = '\x0b';
|
||||||
var VIEWDATA_CLS = '\x0c';
|
const VIEWDATA_CLS = '\x0c';
|
||||||
var VIEWDATA_CR = '\x0d'; // \r
|
const VIEWDATA_CR = '\x0d'; // \r
|
||||||
var VIEWDATA_CON = '\x11';
|
const VIEWDATA_CON = '\x11';
|
||||||
var VIEWDATA_COFF = '\x14';
|
const VIEWDATA_COFF = '\x14';
|
||||||
var VIEWDATA_HOME = '\x1e';
|
const VIEWDATA_HOME = '\x1e';
|
||||||
|
|
||||||
var VIEWDATA_BLINK = '\x48';
|
const VIEWDATA_BLINK = '\x48';
|
||||||
var VIEWDATA_STEADY = '\x49';
|
const VIEWDATA_STEADY = '\x49';
|
||||||
var VIEWDATA_NORMAL = '\x4c';
|
const VIEWDATA_NORMAL = '\x4c';
|
||||||
var VIEWDATA_DOUBLE = '\x4d';
|
const VIEWDATA_DOUBLE = '\x4d';
|
||||||
var VIEWDATA_CONCEAL = '\x58';
|
const VIEWDATA_CONCEAL = '\x58';
|
||||||
var VIEWDATA_BLOCKS = '\x59';
|
const VIEWDATA_BLOCKS = '\x59';
|
||||||
var VIEWDATA_SEPARATED = '\x5a';
|
const VIEWDATA_SEPARATED = '\x5a';
|
||||||
var VIEWDATA_BLACKBACK = '\x5c';
|
const VIEWDATA_BLACKBACK = '\x5c';
|
||||||
var VIEWDATA_NEWBACK = '\x5d';
|
const VIEWDATA_NEWBACK = '\x5d';
|
||||||
var VIEWDATA_HOLD = '\x5e';
|
const VIEWDATA_HOLD = '\x5e';
|
||||||
var VIEWDATA_REVEAL = '\x5f';
|
const VIEWDATA_REVEAL = '\x5f';
|
||||||
|
|
||||||
var VIEWDATA_RED = '\x41';
|
const VIEWDATA_RED = '\x41';
|
||||||
var VIEWDATA_GREEN = '\x42';
|
const VIEWDATA_GREEN = '\x42';
|
||||||
var VIEWDATA_YELLOW = '\x43'; // C
|
const VIEWDATA_YELLOW = '\x43'; // C
|
||||||
var VIEWDATA_BLUE = '\x44';
|
const VIEWDATA_BLUE = '\x44';
|
||||||
var VIEWDATA_MAGENTA = '\x45';
|
const VIEWDATA_MAGENTA = '\x45';
|
||||||
var VIEWDATA_CYAN = '\x46';
|
const VIEWDATA_CYAN = '\x46';
|
||||||
var VIEWDATA_WHITE = '\x47';
|
const VIEWDATA_WHITE = '\x47';
|
||||||
|
|
||||||
var VIEWDATA_MOSIAC_RED = '\x51';
|
const VIEWDATA_MOSIAC_RED = '\x51';
|
||||||
var VIEWDATA_MOSIAC_GREEN = '\x52';
|
const VIEWDATA_MOSIAC_GREEN = '\x52';
|
||||||
var VIEWDATA_MOSIAC_YELLOW = '\x53';
|
const VIEWDATA_MOSIAC_YELLOW = '\x53';
|
||||||
var VIEWDATA_MOSIAC_BLUE = '\x54';
|
const VIEWDATA_MOSIAC_BLUE = '\x54';
|
||||||
var VIEWDATA_MOSIAC_MAGENTA = '\x55';
|
const VIEWDATA_MOSIAC_MAGENTA = '\x55';
|
||||||
var VIEWDATA_MOSIAC_CYAN = '\x56';
|
const VIEWDATA_MOSIAC_CYAN = '\x56';
|
||||||
var VIEWDATA_MOSIAC_WHITE = '\x57'; // W
|
const VIEWDATA_MOSIAC_WHITE = '\x57'; // W
|
||||||
|
|
||||||
/* BINARY DUMP LEVEL 1 ATTRIBUTES */
|
/* BINARY DUMP LEVEL 1 ATTRIBUTES */
|
||||||
var VIEWDATA_BIN_RED = '\x01';
|
const VIEWDATA_BIN_RED = '\x01';
|
||||||
var VIEWDATA_BIN_GREEN = '\x02';
|
const VIEWDATA_BIN_GREEN = '\x02';
|
||||||
var VIEWDATA_BIN_YELLOW = '\x03';
|
const VIEWDATA_BIN_YELLOW = '\x03';
|
||||||
var VIEWDATA_BIN_BLUE = '\x04';
|
const VIEWDATA_BIN_BLUE = '\x04';
|
||||||
var VIEWDATA_BIN_MAGENTA = '\x05';
|
const VIEWDATA_BIN_MAGENTA = '\x05';
|
||||||
var VIEWDATA_BIN_CYAN = '\x06';
|
const VIEWDATA_BIN_CYAN = '\x06';
|
||||||
var VIEWDATA_BIN_WHITE = '\x07';
|
const VIEWDATA_BIN_WHITE = '\x07';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ViewData characters are 7bit (0x00-0x7f)
|
* ViewData characters are 7bit (0x00-0x7f)
|
||||||
@ -91,7 +91,7 @@ var VIEWDATA_BIN_WHITE = '\x07';
|
|||||||
var MOSIAC = 0x10;
|
var MOSIAC = 0x10;
|
||||||
|
|
||||||
// Toggles
|
// Toggles
|
||||||
var CONCEAL = 0x20;
|
var CONCEAL = 0x20;
|
||||||
var REVEAL = 0x2000; // @temp Turns off Conceal
|
var REVEAL = 0x2000; // @temp Turns off Conceal
|
||||||
|
|
||||||
var SEPARATED = 0x40;
|
var SEPARATED = 0x40;
|
||||||
@ -103,9 +103,9 @@ var DOUBLE = 0x100;
|
|||||||
var NORMAL = 0x1000; // @temp Turns off Double Height
|
var NORMAL = 0x1000; // @temp Turns off Double Height
|
||||||
|
|
||||||
var HOLD = 0x200;
|
var HOLD = 0x200;
|
||||||
var RELEASE = 0x20000; // @temp turns off Hold
|
var RELEASE = 0x20000; // @temp turns off Hold
|
||||||
|
|
||||||
var NEWBACK = 0x400;
|
var NEWBACK = 0x400;
|
||||||
var BLACKBACK = 0x800;
|
var BLACKBACK = 0x800;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -117,7 +117,7 @@ var BLACKBACK = 0x800;
|
|||||||
* @param xoffset - fields offset as discovered
|
* @param xoffset - fields offset as discovered
|
||||||
* @param debug - Enable debug mode
|
* @param debug - Enable debug mode
|
||||||
*/
|
*/
|
||||||
function bintoattrs(contents,width,yoffset,xoffset,debug) {
|
function rawtoattrs(contents,width,yoffset,xoffset,debug) {
|
||||||
if (debug)
|
if (debug)
|
||||||
writeln('DEBUG active: '+debug);
|
writeln('DEBUG active: '+debug);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user