Mon 21 Jul 22:43:21 CEST 2025
This commit is contained in:
parent
bd057883d6
commit
e8cf8b525e
100
js/x11/core/ext/dpms.js
Normal file
100
js/x11/core/ext/dpms.js
Normal file
|
@ -0,0 +1,100 @@
|
|||
// http://www.x.org/releases/X11R7.6/doc/xextproto/dpms.txt
|
||||
|
||||
var x11 = Require('x11/core/x11');
|
||||
// TODO: move to templates
|
||||
exports.requireExt = function(display, callback)
|
||||
{
|
||||
var X = display.client;
|
||||
X.QueryExtension('DPMS', function(err, ext) {
|
||||
|
||||
if (!ext.present)
|
||||
return callback(new Error('extension not available'));
|
||||
|
||||
ext.GetVersion = function(clientMaj, clientMin, callback)
|
||||
{
|
||||
X.seq_num++;
|
||||
X.pack_stream.pack('CCSSS', [ext.majorOpcode, 0, 2, clientMaj, clientMin]);
|
||||
X.replies[X.seq_num] = [
|
||||
function(buf, opt) {
|
||||
var res = buf.unpack('SS');
|
||||
return res;
|
||||
},
|
||||
callback
|
||||
];
|
||||
X.pack_stream.flush();
|
||||
};
|
||||
|
||||
ext.Capable = function(callback)
|
||||
{
|
||||
X.seq_num++;
|
||||
X.pack_stream.pack('CCS', [ext.majorOpcode, 1, 1]);
|
||||
X.replies[X.seq_num] = [
|
||||
function(buf, opt) {
|
||||
var res = buf.unpack('C');
|
||||
return res;
|
||||
},
|
||||
callback
|
||||
];
|
||||
X.pack_stream.flush();
|
||||
};
|
||||
|
||||
ext.GetTimeouts = function(callback)
|
||||
{
|
||||
X.seq_num++;
|
||||
X.pack_stream.pack('CCS', [ext.majorOpcode, 2, 1]);
|
||||
X.replies[X.seq_num] = [
|
||||
function(buf, opt) {
|
||||
var res = buf.unpack('SSS');
|
||||
return res;
|
||||
},
|
||||
callback
|
||||
];
|
||||
X.pack_stream.flush();
|
||||
};
|
||||
|
||||
ext.SetTimeouts = function(standby_t, suspend_t, off_t)
|
||||
{
|
||||
X.seq_num++;
|
||||
X.pack_stream.pack('CCSSSSxx', [ext.majorOpcode, 3, 3, standby_t, suspend_t, off_t]);
|
||||
X.pack_stream.flush();
|
||||
};
|
||||
|
||||
ext.Enable = function()
|
||||
{
|
||||
X.seq_num++;
|
||||
X.pack_stream.pack('CCS', [ext.majorOpcode, 4, 1]);
|
||||
X.pack_stream.flush();
|
||||
};
|
||||
|
||||
ext.Disable = function()
|
||||
{
|
||||
X.seq_num++;
|
||||
X.pack_stream.pack('CCS', [ext.majorOpcode, 5, 1]);
|
||||
X.pack_stream.flush();
|
||||
};
|
||||
|
||||
ext.ForceLevel = function(level) // 0 : On, 1 : Standby, 2 : Suspend, 3 : Off
|
||||
{
|
||||
X.seq_num++;
|
||||
X.pack_stream.pack('CCSSxx', [ext.majorOpcode, 6, 2, level]);
|
||||
X.pack_stream.flush();
|
||||
};
|
||||
|
||||
ext.Info = function(callback)
|
||||
{
|
||||
X.seq_num++;
|
||||
X.pack_stream.pack('CCS', [ext.majorOpcode, 7, 1]);
|
||||
X.replies[X.seq_num] = [
|
||||
function(buf, opt) {
|
||||
var res = buf.unpack('SC');
|
||||
return res;
|
||||
},
|
||||
callback
|
||||
];
|
||||
X.pack_stream.flush();
|
||||
};
|
||||
|
||||
callback(null, ext);
|
||||
});
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user