Warning: session_start(): open(/var/lib/php/sessions/sess_rppbsv9maobdmt4d61bjvj97e4, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
!7
module MiniVNC > DynImageSurface {
bool enabled, usePossiblyBrokenVersion = true;
S computerID;
int width = 256;
double videoInterval = 2.0, mouseInterval = 0.1;
transient Pt mousePosition;
S switchableFields() { ret "usePossiblyBrokenVersion videoInterval"; }
start {
doEvery(videoInterval, r grab);
doEvery(mouseInterval, r moveMouse);
}
visualize {
JComponent c = super.visualize();
imageSurfaceOnMouseMove(imageSurface, voidfunc(Pt p) { mousePosition = p });
enableDoubleBuffering();
ret northAndCenterWithMargins(vstackWithSpacing(
centerAndEastWithMargins(
withLabel("Computer to control:", dm_onlineComputerSelectorComboBox(dm_fieldLiveValue('computerID))), dm_fieldCheckBox('enabled)),
jRightAlignedLine(jLabel("Resize to width (pixels):"), jMinWidth(100, jLiveValueIntTextField(dm_fieldLiveValue('width))))),
c);
}
bool actuallyEnabled() {
ret enabled && possibleComputerID(computerID) && dm_isVisible();
}
void grab enter {
if (!actuallyEnabled()) ret;
time "Get Screenshot" {
setImage(dm_scaledDownScreenshotFromOtherMachine(computerID, width, +usePossiblyBrokenVersion));
}
}
transient Pt sentMousePosition;
void moveMouse enter {
if (!actuallyEnabled()) ret with sentMousePosition = null;
Pt p = mousePosition;
if (neq(p, sentMousePosition)) {
sentMousePosition = p;
if (p != null) {
time "Move Mouse On Other Machine" {
dm_evalOnOtherMachine(computerID, "dm_moveMouseImmediate_direct(" + p.x + ", " + p.y + ")");
}
}
}
}
}