VirtualBox

Changeset 27753 in vbox for trunk/src/VBox/Frontends


Ignore:
Timestamp:
Mar 26, 2010 4:18:45 PM (15 years ago)
Author:
vboxsync
Message:

Merged VNC contribution; disabled by default and currently not finished (not externally visible yet either)

Location:
trunk/src/VBox/Frontends/VBoxHeadless
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VBoxHeadless/Makefile.kmk

    r25797 r27753  
    6363 VBoxHeadless_LDFLAGS.darwin += -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxHeadless.dylib
    6464endif
     65ifdef VBOX_WITH_VNC
     66 VBoxHeadless_DEFS     += VBOX_WITH_VNC
     67 VBoxHeadless_SOURCES  += FramebufferVNC.cpp
     68endif
    6569
    6670include $(KBUILD_PATH)/subfooter.kmk
  • trunk/src/VBox/Frontends/VBoxHeadless/VBoxHeadless.cpp

    r27607 r27753  
    529529    RTPrintf("Usage:\n"
    530530             "   -s, -startvm, --startvm <name|uuid>   Start given VM (required argument)\n"
     531#ifdef VBOX_WITH_VNC
     532             "   -n, -vnc                              Enable the built in VNC server\n"
     533             "   -m, -vncport                          TCP port number to use for the VNC server\n"
     534             "   -o, -vncpass <pw>                     Set the VNC server password\n"
     535#endif
    531536#ifdef VBOX_WITH_VRDP
    532537             "   -v, -vrdp, --vrdp on|off|config       Enable (default) or disable the VRDP\n"
     
    605610    const char *vrdpEnabled = NULL;
    606611#endif
     612#ifdef VBOX_WITH_VNC
     613    bool        fVNCEnable      = false;
     614    unsigned    uVNCPort        = 0;          /* default port */
     615    char       *pszVNCPassword  = NULL;       /* no password */
     616#endif
    607617    unsigned fRawR0 = ~0U;
    608618    unsigned fRawR3 = ~0U;
     
    662672        { "--vrdp", 'v', RTGETOPT_REQ_STRING },
    663673#endif /* VBOX_WITH_VRDP defined */
     674#ifdef VBOX_WITH_VNC
     675        { "-vncport", 'm', RTGETOPT_REQ_INT32 },
     676        { "-vncpass", 'o', RTGETOPT_REQ_STRING },
     677        { "-vnc", 'n', 0 },
     678#endif /* VBOX_WITH_VNC */
    664679        { "-rawr0", OPT_RAW_R0, 0 },
    665680        { "--rawr0", OPT_RAW_R0, 0 },
     
    716731                break;
    717732#endif /* VBOX_WITH_VRDP defined */
     733#ifdef VBOX_WITH_VNC
     734            case 'n':
     735                fVNCEnable = true;
     736                break;
     737            case 'm':
     738                uVNCPort = ValueUnion.i32;
     739                break;
     740            case 'o':
     741                pszVNCPassword = (char*)ValueUnion.psz;
     742                break;
     743#endif /* VBOX_WITH_VNC */
    718744            case OPT_RAW_R0:
    719745                fRawR0 = true;
     
    933959        }
    934960#endif /* defined(VBOX_FFMPEG) */
    935 
     961#ifdef VBOX_WITH_VNC
     962            if (fVNCEnable)
     963        {
     964            VNCFB           *pFramebuffer;
     965            RTLDRMOD         hLdrVNC;
     966                PFNREGISTERVNCFB pfnRegisterVNCFB;
     967
     968                pFramebuffer = new VNCFB(console, uVNCPort, pszVNCPassword);
     969                rc = pFramebuffer->init();
     970                if (rc != S_OK)
     971            {
     972                LogError("Failed to load the vnc server extension, possibly due to a damaged file\n", rrc);
     973                delete pFramebuffer;
     974                break;
     975                }
     976
     977            Log2(("VBoxHeadless: Registering VNC framebuffer\n"));
     978            pFramebuffer->AddRef();
     979            display->SetFramebuffer(VBOX_VIDEO_PRIMARY_SCREEN, pFramebuffer);
     980        }
     981        if (rc != S_OK)
     982            break;
     983#endif
    936984        ULONG cMonitors = 1;
    937985        machine->COMGETTER(MonitorCount)(&cMonitors);
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette