Commit 1d514588 authored by dscho's avatar dscho

shared mode added

parent cddeb0d9
...@@ -266,6 +266,8 @@ PtrAddEvent(buttonMask, x, y, cl) ...@@ -266,6 +266,8 @@ PtrAddEvent(buttonMask, x, y, cl)
(buttonMask & (1 << 7)) ? TRUE : FALSE); (buttonMask & (1 << 7)) ? TRUE : FALSE);
} }
Bool viewOnly = FALSE, sharedMode = FALSE;
void void
ScreenInit(int argc, char**argv) ScreenInit(int argc, char**argv)
{ {
...@@ -278,8 +280,15 @@ ScreenInit(int argc, char**argv) ...@@ -278,8 +280,15 @@ ScreenInit(int argc, char**argv)
rfbScreen->paddedWidthInBytes = CGDisplayBytesPerRow(kCGDirectMainDisplay); rfbScreen->paddedWidthInBytes = CGDisplayBytesPerRow(kCGDirectMainDisplay);
rfbScreen->frameBuffer = rfbScreen->frameBuffer =
(char *)CGDisplayBaseAddress(kCGDirectMainDisplay); (char *)CGDisplayBaseAddress(kCGDirectMainDisplay);
rfbScreen->ptrAddEvent = PtrAddEvent;
rfbScreen->kbdAddEvent = KbdAddEvent; if(!viewOnly) {
rfbScreen->ptrAddEvent = PtrAddEvent;
rfbScreen->kbdAddEvent = KbdAddEvent;
}
if(sharedMode) {
rfbScreen->rfbAlwaysShared = TRUE;
}
rfbInitServer(rfbScreen); rfbInitServer(rfbScreen);
} }
...@@ -321,6 +330,10 @@ int main(int argc,char *argv[]) ...@@ -321,6 +330,10 @@ int main(int argc,char *argv[])
startTime = time(0); startTime = time(0);
} else if(strcmp(argv[i],"-runforever")==0) { } else if(strcmp(argv[i],"-runforever")==0) {
disconnectAfterFirstClient = FALSE; disconnectAfterFirstClient = FALSE;
} else if(strcmp(argv[i],"-viewonly")==0) {
viewOnly=TRUE;
} else if(strcmp(argv[i],"-shared")==0) {
sharedMode=TRUE;
} }
ScreenInit(argc,argv); ScreenInit(argc,argv);
......
...@@ -16,8 +16,10 @@ ...@@ -16,8 +16,10 @@
Display *dpy = 0; Display *dpy = 0;
int window; int window;
int c=0,blockLength = 32; int c=0,blockLength = 32;
int tileX=0,tileY=0,tileWidth=32,tileHeight=32*2,dontTile=True; int tileX=0,tileY=0,tileWidth=32,tileHeight=32*2,dontTile=TRUE;
Bool gotInput = FALSE; Bool gotInput = FALSE;
Bool viewOnly = FALSE;
Bool sharedMode = FALSE;
Bool disconnectAfterFirstClient = TRUE; Bool disconnectAfterFirstClient = TRUE;
...@@ -129,7 +131,7 @@ int oldButtonMask = 0; ...@@ -129,7 +131,7 @@ int oldButtonMask = 0;
void mouse(int buttonMask,int x,int y,rfbClientPtr cl) void mouse(int buttonMask,int x,int y,rfbClientPtr cl)
{ {
int i=0; int i=0;
//fprintf(stderr,"/");
XTestFakeMotionEvent(dpy,0,x,y,CurrentTime ); XTestFakeMotionEvent(dpy,0,x,y,CurrentTime );
while(i<5) { while(i<5) {
if ((oldButtonMask&(1<<i))!=(buttonMask&(1<<i))) if ((oldButtonMask&(1<<i))!=(buttonMask&(1<<i)))
...@@ -299,7 +301,11 @@ int main(int argc,char** argv) ...@@ -299,7 +301,11 @@ int main(int argc,char** argv)
} else if(strcmp(argv[i],"-runforever")==0) { } else if(strcmp(argv[i],"-runforever")==0) {
disconnectAfterFirstClient = FALSE; disconnectAfterFirstClient = FALSE;
} else if(strcmp(argv[i],"-tile")==0) { } else if(strcmp(argv[i],"-tile")==0) {
dontTile=False; dontTile=FALSE;
} else if(strcmp(argv[i],"-viewonly")==0) {
viewOnly=TRUE;
} else if(strcmp(argv[i],"-shared")==0) {
sharedMode=TRUE;
} }
updateCounter = dontTile?20:1; updateCounter = dontTile?20:1;
...@@ -380,8 +386,14 @@ int main(int argc,char** argv) ...@@ -380,8 +386,14 @@ int main(int argc,char** argv)
screen->frameBuffer = backupImage; screen->frameBuffer = backupImage;
screen->cursor = 0; screen->cursor = 0;
screen->newClientHook = newClient; screen->newClientHook = newClient;
screen->kbdAddEvent = keyboard;
screen->ptrAddEvent = mouse; if(!viewOnly) {
screen->kbdAddEvent = keyboard;
screen->ptrAddEvent = mouse;
}
if(sharedMode) {
screen->rfbAlwaysShared = TRUE;
}
screen->rfbDeferUpdateTime = 1; screen->rfbDeferUpdateTime = 1;
updateCounter /= screen->rfbDeferUpdateTime; updateCounter /= screen->rfbDeferUpdateTime;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment