VirtualBox

Changeset 99620 in vbox


Ignore:
Timestamp:
May 5, 2023 9:08:00 AM (2 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
157146
Message:

Guest / Host: Renamed SessionType -> DisplayServerType (better naming to reflect its purpose). bugref:10427

Location:
trunk
Files:
9 edited
2 moved

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/GuestHost/DisplayServerType.h

    r99619 r99620  
    11/* $Id$ */
    22/** @file
    3  * Guest / Host common code - Session type detection + handling.
     3 * Guest / Host common code - Display server type detection + handling.
    44 */
    55
     
    5151
    5252/**
    53  * Enumeration holding a guest / host desktop session type.
     53 * Enumeration holding a guest / host desktop display server type.
    5454 */
    5555typedef enum
    5656{
    57     /** No session detected or (explicitly) not set. */
    58     VBGHSESSIONTYPE_NONE = 0,
     57    /** No display server detected or (explicitly) not set. */
     58    VBGHDISPLAYSERVERTYPE_NONE = 0,
    5959    /** Automatic detection -- might not work reliably on all systems. */
    60     VBGHSESSIONTYPE_AUTO,
     60    VBGHDISPLAYSERVERTYPE_AUTO,
    6161    /** X11 (X.org). */
    62     VBGHSESSIONTYPE_X11,
     62    VBGHDISPLAYSERVERTYPE_X11,
    6363    /** Wayland. */
    64     VBGHSESSIONTYPE_WAYLAND,
     64    VBGHDISPLAYSERVERTYPE_WAYLAND,
    6565    /** XWayland; Wayland is running, but some (older) apps need X as a bridge as well. */
    66     VBGHSESSIONTYPE_XWAYLAND
    67 } VBGHSESSIONTYPE;
     66    VBGHDISPLAYSERVERTYPE_XWAYLAND
     67} VBGHDISPLAYSERVERTYPE;
    6868
    69 const char *VBGHSessionTypeToStr(VBGHSESSIONTYPE enmType);
    70 VBGHSESSIONTYPE VBGHSessionTypeDetect(void);
    71 bool VBGHSessionTypeIsXAvailable(VBGHSESSIONTYPE enmType);
    72 bool VBGHSessionTypeIsWaylandAvailable(VBGHSESSIONTYPE enmType);
     69const char *VBGHDisplayServerTypeToStr(VBGHDISPLAYSERVERTYPE enmType);
     70VBGHDISPLAYSERVERTYPE VBGHDisplayServerTypeDetect(void);
     71bool VBGHServerTypeIsXAvailable(VBGHDISPLAYSERVERTYPE enmType);
     72bool VBGHDisplayServerTypeIsWaylandAvailable(VBGHDISPLAYSERVERTYPE enmType);
    7373
    7474#endif /* !VBOX_INCLUDED_GuestHost_SessionType_h */
  • trunk/src/VBox/Additions/x11/VBoxClient/Makefile.kmk

    r99595 r99620  
    5252VBOX_GH_SOURCES := \
    5353        $(PATH_ROOT)/src/VBox/GuestHost/Log.cpp \
    54         $(PATH_ROOT)/src/VBox/GuestHost/SessionType.cpp
     54        $(PATH_ROOT)/src/VBox/GuestHost/DisplayServerType.cpp
    5555
    5656VBoxClient_TEMPLATE = VBoxGuestR3Exe
  • trunk/src/VBox/Additions/x11/VBoxClient/VBoxClient.h

    r99585 r99620  
    3838
    3939#include <VBox/GuestHost/Log.h>
    40 #include <VBox/GuestHost/SessionType.h>
     40#include <VBox/GuestHost/DisplayServerType.h>
    4141
    4242int VBClShowNotify(const char *pszHeader, const char *pszBody);
     
    5454extern void VBClShutdown(bool fExit = true);
    5555
    56 extern VBGHSESSIONTYPE VBClGetSessionType(void);
     56extern VBGHDISPLAYSERVERTYPE VBClGetDisplayServerType(void);
    5757
    5858/**
  • trunk/src/VBox/Additions/x11/VBoxClient/clipboard.cpp

    r99590 r99620  
    8383    int rc = VINF_SUCCESS;
    8484
    85     if (VBClGetSessionType() == VBGHSESSIONTYPE_X11)
     85    if (VBClGetDisplayServerType() == VBGHDISPLAYSERVERTYPE_X11)
    8686    {
    8787        rc = VBClX11ClipboardInit();
     
    9595    }
    9696#if 0
    97     else (VBClGetSessionType() == VBGHSESSIONTYPE_WAYLAND)
     97    else (VBClGetSessionType() == GHDISPLAYSERVERTYPE_WAYLAND)
    9898    {
    9999
  • trunk/src/VBox/Additions/x11/VBoxClient/display-helper-gnome3.cpp

    r99585 r99620  
    982982    int rc;
    983983
    984     if (VBClGetSessionType() == VBGHSESSIONTYPE_X11)
     984    if (VBClGetDisplayServerType() == VBGHDISPLAYSERVERTYPE_X11)
    985985    {
    986986        rc = vbcl_hlp_generic_init();
     
    998998    int rc;
    999999
    1000     if (VBClGetSessionType() == VBGHSESSIONTYPE_X11)
     1000    if (VBClGetDisplayServerType() == VBGHDISPLAYSERVERTYPE_X11)
    10011001    {
    10021002        rc = vbcl_hlp_generic_term();
  • trunk/src/VBox/Additions/x11/VBoxClient/display-svga-x11.cpp

    r99585 r99620  
    581581    }
    582582
    583     if (VBClGetSessionType() == VBGHSESSIONTYPE_WAYLAND)
     583    if (VBClGetDisplayServerType() == VBGHDISPLAYSERVERTYPE_WAYLAND)
    584584    {
    585585        rc = VbglR3DrmClientStart();
  • trunk/src/VBox/Additions/x11/VBoxClient/draganddrop.cpp

    r99603 r99620  
    4242static DECLCALLBACK(int) vbclDnDInit(void)
    4343{
    44     switch (VBClGetSessionType())
     44    switch (VBClGetDisplayServerType())
    4545    {
    46         case VBGHSESSIONTYPE_X11:
     46        case VBGHDISPLAYSERVERTYPE_X11:
    4747            g_pSvc = new VBClX11DnDSvc();
    4848            break;
    4949
    50         case VBGHSESSIONTYPE_WAYLAND:
     50        case VBGHDISPLAYSERVERTYPE_WAYLAND:
    5151            RT_FALL_THROUGH();
    5252        default:
  • trunk/src/VBox/Additions/x11/VBoxClient/main.cpp

    r99616 r99620  
    114114/** The file handle of parent process pidfile. */
    115115static RTFILE          g_hControlPidFile;
    116 /** The session type to use. */
    117 static VBGHSESSIONTYPE g_enmSessionType = VBGHSESSIONTYPE_AUTO;
     116/** The display server type to use. */
     117static VBGHDISPLAYSERVERTYPE g_enmDisplayServerType = VBGHDISPLAYSERVERTYPE_AUTO;
    118118
    119119/** Global critical section held during the clean-up routine (to prevent it
     
    165165
    166166/**
    167  * Returns the current session type.
     167 * Returns the current display server type.
    168168 *
    169  * @returns The session type.
    170  */
    171 VBGHSESSIONTYPE VBClGetSessionType(void)
    172 {
    173     return g_enmSessionType;
     169 * @returns The display server type.
     170 */
     171VBGHDISPLAYSERVERTYPE VBClGetDisplayServerType(void)
     172{
     173    return g_enmDisplayServerType;
    174174}
    175175
     
    668668            {
    669669                if (!RTStrICmp(ValueUnion.psz, "x11"))
    670                     g_enmSessionType = VBGHSESSIONTYPE_X11;
     670                    g_enmDisplayServerType = VBGHDISPLAYSERVERTYPE_X11;
    671671                else if (!RTStrICmp(ValueUnion.psz, "wayland"))
    672                     g_enmSessionType = VBGHSESSIONTYPE_WAYLAND;
     672                    g_enmDisplayServerType = VBGHDISPLAYSERVERTYPE_WAYLAND;
    673673                else if (!RTStrICmp(ValueUnion.psz, "none"))
    674                     g_enmSessionType = VBGHSESSIONTYPE_NONE;
     674                    g_enmDisplayServerType = VBGHDISPLAYSERVERTYPE_NONE;
    675675                else if (!RTStrICmp(ValueUnion.psz, "auto"))
    676                     g_enmSessionType = VBGHSESSIONTYPE_AUTO;
     676                    g_enmDisplayServerType = VBGHDISPLAYSERVERTYPE_AUTO;
    677677                else
    678678                {
    679679                    RTMsgError("Session type \"%s\" is invalid; defaulting to \"auto\" instead.\n", ValueUnion.psz);
    680                     g_enmSessionType = VBGHSESSIONTYPE_AUTO;
     680                    g_enmDisplayServerType = VBGHDISPLAYSERVERTYPE_AUTO;
    681681                }
    682682                break;
     
    741741
    742742    /* Try to detect the current session type early on, if needed. */
    743     if (g_enmSessionType == VBGHSESSIONTYPE_AUTO)
    744     {
    745         g_enmSessionType = VBGHSessionTypeDetect();
     743    if (g_enmDisplayServerType == VBGHDISPLAYSERVERTYPE_AUTO)
     744    {
     745        g_enmDisplayServerType = VBGHDisplayServerTypeDetect();
    746746    }
    747747    else
    748         VBClLogInfo("Session type was manually set to: %s\n", VBGHSessionTypeToStr(g_enmSessionType));
    749 
    750     VBClLogInfo("Session type is: %s\n", VBGHSessionTypeToStr(g_enmSessionType));
     748        VBClLogInfo("Session type was manually set to: %s\n", VBGHDisplayServerTypeToStr(g_enmDisplayServerType));
     749
     750    VBClLogInfo("Session type is: %s\n", VBGHDisplayServerTypeToStr(g_enmDisplayServerType));
    751751
    752752    VBClLogInfo("Service: %s\n", g_Service.pDesc->pszDesc);
     
    796796    }
    797797
    798     if (g_enmSessionType == VBGHSESSIONTYPE_X11)
     798    if (g_enmDisplayServerType == VBGHDISPLAYSERVERTYPE_X11)
    799799    {
    800800        /* This should never be called twice in one process - in fact one Display
  • trunk/src/VBox/Additions/x11/VBoxClient/seamless.cpp

    r99603 r99620  
    8484static DECLCALLBACK(int) vbclSeamlessInit(void)
    8585{
    86     switch (VBClGetSessionType())
     86    switch (VBClGetDisplayServerType())
    8787    {
    88         case VBGHSESSIONTYPE_X11:
     88        case VBGHDISPLAYSERVERTYPE_X11:
    8989            g_pSvc = new VBClX11SeamlessSvc();
    9090            break;
    9191
    92         case VBGHSESSIONTYPE_WAYLAND:
     92        case VBGHDISPLAYSERVERTYPE_WAYLAND:
    9393            RT_FALL_THROUGH();
    9494        default:
  • trunk/src/VBox/Additions/x11/VBoxClient/testcase/tstSeamlessX11.cpp

    r99600 r99620  
    3535
    3636#include <VBox/VBoxGuestLib.h>
    37 #include <VBox/GuestHost/SessionType.h>
     37#include <VBox/GuestHost/DisplayServerType.h>
    3838
    3939#include "../seamless.h"
     
    4141static RTSEMEVENT eventSem;
    4242
    43 VBGHSESSIONTYPE VBClGetSessionType(void)
     43VBGHDISPLAYSERVERTYPE VBClGetDisplayServerType(void)
    4444{
    45     return VBGHSESSIONTYPE_X11;
     45    return VBGHDISPLAYSERVERTYPE_X11;
    4646}
    4747
  • trunk/src/VBox/GuestHost/DisplayServerType.cpp

    r99619 r99620  
    3636
    3737#include <VBox/GuestHost/Log.h>
    38 #include <VBox/GuestHost/SessionType.h>
     38#include <VBox/GuestHost/DisplayServerType.h>
    3939
    4040
     
    4444
    4545/**
    46  * Returns the VBGHSESSIONTYPE as a string.
    47  *
    48  * @returns VBGHSESSIONTYPE as a string.
    49  * @param   enmType             VBGHSESSIONTYPE to return as a string.
    50  */
    51 const char *VBGHSessionTypeToStr(VBGHSESSIONTYPE enmType)
     46 * Returns the VBGHDISPLAYSERVERTYPE as a string.
     47 *
     48 * @returns VBGHDISPLAYSERVERTYPE as a string.
     49 * @param   enmType             VBGHDISPLAYSERVERTYPE to return as a string.
     50 */
     51const char *VBGHDisplayServerTypeToStr(VBGHDISPLAYSERVERTYPE enmType)
    5252{
    5353    switch (enmType)
    5454    {
    55         RT_CASE_RET_STR(VBGHSESSIONTYPE_NONE);
    56         RT_CASE_RET_STR(VBGHSESSIONTYPE_AUTO);
    57         RT_CASE_RET_STR(VBGHSESSIONTYPE_X11);
    58         RT_CASE_RET_STR(VBGHSESSIONTYPE_WAYLAND);
    59         RT_CASE_RET_STR(VBGHSESSIONTYPE_XWAYLAND);
     55        RT_CASE_RET_STR(VBGHDISPLAYSERVERTYPE_NONE);
     56        RT_CASE_RET_STR(VBGHDISPLAYSERVERTYPE_AUTO);
     57        RT_CASE_RET_STR(VBGHDISPLAYSERVERTYPE_X11);
     58        RT_CASE_RET_STR(VBGHDISPLAYSERVERTYPE_WAYLAND);
     59        RT_CASE_RET_STR(VBGHDISPLAYSERVERTYPE_XWAYLAND);
    6060        default: break;
    6161    }
     
    6565
    6666/**
    67  * Tries to detect the desktop session type the process is running in.
    68  *
    69  * @returns A value of VBGHSESSIONTYPE, or VBGHSESSIONTYPE_NONE if detection was not successful.
     67 * Tries to detect the desktop display server type the process is running in.
     68 *
     69 * @returns A value of VBGHDISPLAYSERVERTYPE, or VBGHDISPLAYSERVERTYPE_NONE if detection was not successful.
    7070 *
    7171 * @note    Precedence is:
     
    7777 *          Will print a warning to the release log if configuration mismatches.
    7878 */
    79 VBGHSESSIONTYPE VBGHSessionTypeDetect(void)
    80 {
    81     VBGHLogVerbose(1, "Detecting session type ...\n");
     79VBGHDISPLAYSERVERTYPE VBGHDisplayServerTypeDetect(void)
     80{
     81    VBGHLogVerbose(1, "Detecting display server ...\n");
    8282
    8383    /* Try to connect to the wayland display, assuming it succeeds only when a wayland compositor is active: */
     
    110110
    111111    /* If both wayland and X11 display can be connected then we should have XWayland: */
    112     VBGHSESSIONTYPE retSessionType = VBGHSESSIONTYPE_NONE;
     112    VBGHDISPLAYSERVERTYPE retSessionType = VBGHDISPLAYSERVERTYPE_NONE;
    113113    if (pWaylandDisplay && pXDisplay)
    114         retSessionType = VBGHSESSIONTYPE_XWAYLAND;
     114        retSessionType = VBGHDISPLAYSERVERTYPE_XWAYLAND;
    115115    else if (pWaylandDisplay && !pXDisplay)
    116         retSessionType = VBGHSESSIONTYPE_WAYLAND;
     116        retSessionType = VBGHDISPLAYSERVERTYPE_WAYLAND;
    117117    else if (!pWaylandDisplay && pXDisplay)
    118         retSessionType = VBGHSESSIONTYPE_X11;
    119 
    120     VBGHLogVerbose(1, "Detected via connection: %s\n", VBGHSessionTypeToStr(retSessionType));
     118        retSessionType = VBGHDISPLAYSERVERTYPE_X11;
     119
     120    VBGHLogVerbose(1, "Detected via connection: %s\n", VBGHDisplayServerTypeToStr(retSessionType));
    121121
    122122    /* If retSessionType is set, we assume we're done here;
    123123     * otherwise try the environment variables as a fallback. */
    124     if (retSessionType != VBGHSESSIONTYPE_NONE)
     124    if (retSessionType != VBGHDISPLAYSERVERTYPE_NONE)
    125125        return retSessionType;
    126126
     
    130130     * Therefore we check the Wayland specific display environment variable first.
    131131     */
    132     VBGHSESSIONTYPE waylandDisplayType = VBGHSESSIONTYPE_NONE;
     132    VBGHDISPLAYSERVERTYPE waylandDisplayType = VBGHDISPLAYSERVERTYPE_NONE;
    133133    const char *const pWaylandDisplayType = RTEnvGet(VBGH_ENV_WAYLAND_DISPLAY);
    134134    if (pWaylandDisplayType != NULL)
    135         waylandDisplayType = VBGHSESSIONTYPE_WAYLAND;
    136 
    137     VBGHLogVerbose(1, "Wayland display type is: %s\n", VBGHSessionTypeToStr(waylandDisplayType));
    138 
    139     VBGHSESSIONTYPE xdgSessionType = VBGHSESSIONTYPE_NONE;
     135        waylandDisplayType = VBGHDISPLAYSERVERTYPE_WAYLAND;
     136
     137    VBGHLogVerbose(1, "Wayland display type is: %s\n", VBGHDisplayServerTypeToStr(waylandDisplayType));
     138
     139    VBGHDISPLAYSERVERTYPE xdgSessionType = VBGHDISPLAYSERVERTYPE_NONE;
    140140    const char *pSessionType = RTEnvGet(VBGH_ENV_XDG_SESSION_TYPE);
    141141    if (pSessionType)
    142142    {
    143143        if (RTStrIStartsWith(pSessionType, "wayland"))
    144             xdgSessionType = VBGHSESSIONTYPE_WAYLAND;
     144            xdgSessionType = VBGHDISPLAYSERVERTYPE_WAYLAND;
    145145        else if (RTStrIStartsWith(pSessionType, "x11"))
    146             xdgSessionType = VBGHSESSIONTYPE_X11;
    147     }
    148 
    149     VBGHLogVerbose(1, "XDG session type is: %s\n", VBGHSessionTypeToStr(xdgSessionType));
    150 
    151     VBGHSESSIONTYPE xdgCurrentDesktopType = VBGHSESSIONTYPE_NONE;
     146            xdgSessionType = VBGHDISPLAYSERVERTYPE_X11;
     147    }
     148
     149    VBGHLogVerbose(1, "XDG session type is: %s\n", VBGHDisplayServerTypeToStr(xdgSessionType));
     150
     151    VBGHDISPLAYSERVERTYPE xdgCurrentDesktopType = VBGHDISPLAYSERVERTYPE_NONE;
    152152
    153153    const char *pszCurDesktop = RTEnvGet(VBGH_ENV_XDG_CURRENT_DESKTOP);
     
    155155    {
    156156        if (RTStrIStr(pszCurDesktop, "wayland"))
    157             xdgCurrentDesktopType = VBGHSESSIONTYPE_WAYLAND;
     157            xdgCurrentDesktopType = VBGHDISPLAYSERVERTYPE_WAYLAND;
    158158        else if (RTStrIStr(pszCurDesktop, "x11"))
    159             xdgCurrentDesktopType = VBGHSESSIONTYPE_X11;
    160     }
    161 
    162     VBGHLogVerbose(1, "XDG current desktop type is: %s\n", VBGHSessionTypeToStr(xdgCurrentDesktopType));
     159            xdgCurrentDesktopType = VBGHDISPLAYSERVERTYPE_X11;
     160    }
     161
     162    VBGHLogVerbose(1, "XDG current desktop type is: %s\n", VBGHDisplayServerTypeToStr(xdgCurrentDesktopType));
    163163
    164164    /* Set the returning type according to the precedence. */
    165     if      (waylandDisplayType    != VBGHSESSIONTYPE_NONE) retSessionType = waylandDisplayType;
    166     else if (xdgSessionType        != VBGHSESSIONTYPE_NONE) retSessionType = xdgSessionType;
    167     else if (xdgCurrentDesktopType != VBGHSESSIONTYPE_NONE) retSessionType = xdgCurrentDesktopType;
    168     else                                                    retSessionType = VBGHSESSIONTYPE_NONE;
     165    if      (waylandDisplayType    != VBGHDISPLAYSERVERTYPE_NONE) retSessionType = waylandDisplayType;
     166    else if (xdgSessionType        != VBGHDISPLAYSERVERTYPE_NONE) retSessionType = xdgSessionType;
     167    else if (xdgCurrentDesktopType != VBGHDISPLAYSERVERTYPE_NONE) retSessionType = xdgCurrentDesktopType;
     168    else                                                    retSessionType = VBGHDISPLAYSERVERTYPE_NONE;
    169169
    170170    /* Try to detect any mismatches between the variables above.
    171171     * This might indicate a misconfigred / broken system, and we can warn the user then. */
    172172#define COMPARE_SESSION_TYPES(a_Type1, a_Type2) \
    173     if (   (a_Type1 != VBGHSESSIONTYPE_NONE) \
    174         && (a_Type2 != VBGHSESSIONTYPE_NONE) \
     173    if (   (a_Type1 != VBGHDISPLAYSERVERTYPE_NONE) \
     174        && (a_Type2 != VBGHDISPLAYSERVERTYPE_NONE) \
    175175        && (a_Type1 != a_Type2)) \
    176176        { \
    177177            VBGHLogError("Unable to reliably detect desktop environment:\n"); \
    178178            VBGHLogError("Mismatch between %s (%s) and %s (%s) detected! This might indicate a misconfigured and/or broken system!\n", \
    179                          #a_Type1, VBGHSessionTypeToStr(a_Type1), #a_Type2, VBGHSessionTypeToStr(a_Type2)); \
     179                         #a_Type1, VBGHDisplayServerTypeToStr(a_Type1), #a_Type2, VBGHDisplayServerTypeToStr(a_Type2)); \
    180180            VBGHLogError("Use --session-type to override this detection.\n"); \
    181             retSessionType = VBGHSESSIONTYPE_NONE; \
     181            retSessionType = VBGHDISPLAYSERVERTYPE_NONE; \
    182182        }
    183183
     
    197197 * @param   enmType             Type to check.
    198198 */
    199 bool VBGHSessionTypeIsXAvailable(VBGHSESSIONTYPE enmType)
    200 {
    201     return    enmType == VBGHSESSIONTYPE_XWAYLAND
    202            || enmType == VBGHSESSIONTYPE_X11;
     199bool VBGHDisplayServerTypeIsXAvailable(VBGHDISPLAYSERVERTYPE enmType)
     200{
     201    return    enmType == VBGHDISPLAYSERVERTYPE_XWAYLAND
     202           || enmType == VBGHDISPLAYSERVERTYPE_X11;
    203203}
    204204
     
    209209 * @param   enmType             Type to check.
    210210 */
    211 bool VBGHSessionTypeIsWaylandAvailable(VBGHSESSIONTYPE enmType)
    212 {
    213     return    enmType == VBGHSESSIONTYPE_XWAYLAND
    214            || enmType == VBGHSESSIONTYPE_WAYLAND;
    215 }
    216 
     211bool VBGHDisplayServerTypeIsWaylandAvailable(VBGHDISPLAYSERVERTYPE enmType)
     212{
     213    return    enmType == VBGHDISPLAYSERVERTYPE_XWAYLAND
     214           || enmType == VBGHDISPLAYSERVERTYPE_WAYLAND;
     215}
     216
Note: See TracChangeset for help on using the changeset viewer.

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