The MityDSP RFB server allows you to easily add a Remote Frame Buffer server interface into your MityDSP based aplication. An RFB interface can be used to allow virtual network computing (VNC) clients to connect to the MityDSP and display framebuffer interfaces such as that provided by the MityDSP ggui library.
By itself the RFB deamon is not very useful, but in conjunction with your MityDSP application it can allow remote graphical access that is platform independent for tasks such as status display or remote configuration.
The MityDSP RFB deamon complies with version 3.8 of the RFB Protocol. Currently, only RAW encoding techniques are supported, and NO athentication mechanisms are provided. However, users may extend the authentication/security protocols as well as the encoding mechanisms by implementing and registering them using the tcSecurity and the tcEncoding abstraction classes accordingly.
The following simple example will start a RFB deamon with the name "MityDSP" using the ggui graphics library framework.
#include "net/rfb/rfb.h" #include "ggui/RFBIface.h" #include "ggui/GuiDspDisplay.h" #include "ggui/guiFrameWork.h" #inlcude "core/DspLcd.h" void start_rfb_server () { tcGuiDspDisplay* lpDisplay; tcDspLcd* lpDspLcd; tcGuiFrameWork* lpFrameWork; // build references to the ggui framework (see the ggui library for details) lpDspLcd = new tcDspLcd(...); lpDisplay = new tcGuiDspDisplay(...); lpGuiFrameWork = new tcGuiFrameWork(...); // new up a frame buffer interface derived from tcFrameBufferIface, in this case one // provided by the GGUI MityDSP Library, but you can make your own... tcRFBIface* lpRFBIface = new tcRFBIface(lpDisplay, lpDspLcd, lpFramWork, "MityDSP"); // build a remote frame buffer class // The GGUI tcRFBIface class provides a framebuffer interface as well as an // event handler interface, so we provide references to it for each arguement in the constructor tcRFB* lpRFB = new tcRFB(lpRFBIface, lpRFBIface); // tell the remote frame buffer that it should accept and process pointer events from clients lpRFB->mbAcceptPointerEvents = true; // start the server using the default settings (port = 7000, net address is "any") // the thread will launch (and not block) lpRFB->StartServer(); }