VirtualBox

Changeset 43405 in vbox for trunk/src


Ignore:
Timestamp:
Sep 22, 2012 1:53:03 PM (12 years ago)
Author:
vboxsync
Message:

Additions/haiku: cleanup.

Location:
trunk/src/VBox/Additions/haiku/VBoxMouse
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/haiku/VBoxMouse/VBoxMouse.cpp

    r43364 r43405  
    7070
    7171
     72static inline int vboxMouseAcquire()
     73{
     74    uint32_t fFeatures = 0;
     75    int rc = VbglR3GetMouseStatus(&fFeatures, NULL, NULL);
     76    if (RT_SUCCESS(rc))
     77    {
     78        rc = VbglR3SetMouseStatus(fFeatures | VMMDEV_MOUSE_GUEST_CAN_ABSOLUTE | VMMDEV_MOUSE_NEW_PROTOCOL);
     79        if (RT_FAILURE(rc))
     80            LogRel(("VbglR3SetMouseStatus failed. rc=%d\n", rc));
     81    }
     82    else
     83        LogRel(("VbglR3GetMouseStatus failed. rc=%d\n", rc));
     84    return rc;
     85}
     86
     87
     88static inline int vboxMouseRelease()
     89{
     90    uint32_t fFeatures = 0;
     91    int rc = VbglR3GetMouseStatus(&fFeatures, NULL, NULL);
     92    if (RT_SUCCESS(rc))
     93    {
     94        rc = VbglR3SetMouseStatus(fFeatures & ~VMMDEV_MOUSE_GUEST_CAN_ABSOLUTE & ~VMMDEV_MOUSE_NEW_PROTOCOL);
     95        if (RT_FAILURE(rc))
     96            LogRel(("VbglR3SetMouseStatus failed. rc=%d\n", rc));
     97    }
     98    else
     99        LogRel(("VbglR3GetMouseStatus failed. rc=%d\n", rc));
     100    return rc;
     101}
     102
     103
    72104VBoxMouse::VBoxMouse()
    73105     : BInputServerDevice(),
     
    114146status_t VBoxMouse::Start(const char *device, void *cookie)
    115147{
     148#if 0
    116149    status_t err;
    117150    int rc;
     
    149182
    150183    return B_ERROR;
     184#endif
     185
     186    status_t err = B_OK;
     187    int rc;
     188    uint32_t fFeatures = 0;
     189    LogFlowFunc(("device=%s cookie=%p\n", device, cookie));
     190
     191    rc = vboxMouseAcquire();
     192    if (RT_SUCCESS(rc))
     193    {
     194        err = fServiceThreadID = spawn_thread(_ServiceThreadNub, "VBoxMouse", B_NORMAL_PRIORITY, this);
     195        if (err >= B_OK)
     196        {
     197            resume_thread(fServiceThreadID);
     198            return B_OK;
     199        }
     200        else
     201            LogRel(("VBoxMouse::Start Error starting service thread: 0x%08lx\n", err));
     202
     203        vboxMouseRelease();
     204        err = B_ERROR;
     205    }
     206    else
     207    {
     208        LogRel(("VBoxMouse::Start vboxMouseAcquire failed. rc=%d\n", rc));
     209        err = B_DEVICE_NOT_FOUND;
     210    }
     211
     212    return err;
    151213}
    152214
     
    161223    fExiting = true;
    162224
    163 
    164     rc = VbglR3GetMouseStatus(&fFeatures, NULL, NULL);
    165     if (RT_SUCCESS(rc))
    166         rc = VbglR3SetMouseStatus(fFeatures
    167                                   & ~VMMDEV_MOUSE_GUEST_CAN_ABSOLUTE
    168                                   & ~VMMDEV_MOUSE_NEW_PROTOCOL);
    169 
     225    vboxMouseRelease();
    170226
    171227    close(fDriverFD);
     
    183239status_t VBoxMouse::Control(const char *device, void *cookie, uint32 code, BMessage *message)
    184240{
    185     // respond to changes in the system
    186241    switch (code)
    187242    {
     
    216271        uint32_t cx, cy, fFeatures;
    217272        int rc;
    218 
    219273
    220274        fd_set readSet, writeSet, errorSet;
     
    233287        }
    234288
    235         if (RT_SUCCESS(VbglR3GetMouseStatus(&fFeatures, &cx, &cy))
     289        int rc = VbglR3GetMouseStatus(&fFeatures, &cx, &cy);
     290        if (   RT_SUCCESS(rc)
    236291            && (fFeatures & VMMDEV_MOUSE_HOST_WANTS_ABSOLUTE))
    237292        {
     
    241296            _debugPrintf("VBoxMouse: at %d,%d %f,%f\n", cx, cy, x, y);
    242297
    243             /* send absolute movement */
    244 
     298            /* Send absolute movement */
    245299            bigtime_t now = system_time();
    246300            BMessage *event = new BMessage(B_MOUSE_MOVED);
  • trunk/src/VBox/Additions/haiku/VBoxMouse/VBoxMouse.h

    r43364 r43405  
    5050#include <InputServerDevice.h>
    5151
    52 extern "C"
    53 _EXPORT BInputServerDevice* instantiate_input_device();
     52extern "C" _EXPORT BInputServerDevice* instantiate_input_device();
    5453
    5554class VBoxMouse : public BInputServerDevice
     
    5958        virtual ~VBoxMouse();
    6059
    61         virtual status_t                InitCheck();
    62         virtual status_t                SystemShuttingDown();
     60        virtual status_t        InitCheck();
     61        virtual status_t        SystemShuttingDown();
    6362
    64         virtual status_t                Start(const char *device, void *cookie);
    65         virtual status_t                Stop(const char *device, void *cookie);
    66         virtual status_t                Control(const char      *device,
    67                                   void          *cookie,
    68                                   uint32                code,
    69                                   BMessage      *message);
     63        virtual status_t        Start(const char *device, void *cookie);
     64        virtual status_t        Stop(const char *device, void *cookie);
     65        virtual status_t        Control(const char *device, void *cookie, uint32 code, BMessage *message);
    7066
    7167    private:
    7268
    73         static status_t _ServiceThreadNub(void *_this);
    74         status_t        _ServiceThread();
     69        static status_t         _ServiceThreadNub(void *_this);
     70        status_t                _ServiceThread();
    7571
    76         int                     fDriverFD;
    77         thread_id       fServiceThreadID;
    78         bool            fExiting;
    79 
     72        int                     fDriverFD;
     73        thread_id               fServiceThreadID;
     74        bool                    fExiting;
    8075};
    81 
    8276
    8377#endif /* __VBOXMOUSE__H */
  • trunk/src/VBox/Additions/haiku/VBoxMouse/VBoxMouseFilter.cpp

    r43364 r43405  
    6262#include <iprt/err.h>
    6363
    64 // TODO can this be merged with VBoxMouse?
     64/* @todo can this be merged with VBoxMouse? */
    6565
    6666RTDECL(BInputServerFilter *)
     
    7979}
    8080
     81
    8182VBoxMouseFilter::~VBoxMouseFilter()
    8283{
    8384}
     85
    8486
    8587filter_result VBoxMouseFilter::Filter(BMessage *message, BList *outList)
     
    9294            printf("click|release\n");
    9395            message->FindInt32("buttons", &fCurrentButtons);
     96            /** @todo r=ramshankar this looks wrong, no 'break' here? */
    9497        }
     98
    9599        case B_MOUSE_MOVED:
    96100        {
    97101            printf("mouse moved\n");
    98102            message->ReplaceInt32("buttons", fCurrentButtons);
     103            /** @todo r=ramshankar: 'break' or explicit comment please. */
    99104        }
    100105    }
     
    102107    return B_DISPATCH_MESSAGE;
    103108}
     109
  • trunk/src/VBox/Additions/haiku/VBoxMouse/VBoxMouseFilter.h

    r43363 r43405  
    4545 */
    4646
    47 #ifndef __VBOXMOUSE__H
    48 #define __VBOXMOUSE__H
     47#ifndef __VBOXMOUSE_FILTER__H
     48#define __VBOXMOUSE_FILTER__H
    4949
    5050#include <InputServerFilter.h>
     
    5252extern "C" _EXPORT BInputServerFilter* instantiate_input_filter();
    5353
    54 class VBoxMouseFilter : public BInputServerFilter {
    55 public:
    56         VBoxMouseFilter();
    57         virtual ~VBoxMouseFilter();
    58 //      virtual status_t InitCheck();
    59         virtual filter_result Filter(BMessage* message, BList* outList);
     54class VBoxMouseFilter : public BInputServerFilter
     55{
     56    public:
     57        VBoxMouseFilter();
     58        virtual ~VBoxMouseFilter();
    6059
    61 private:
     60        virtual filter_result       Filter(BMessage* message, BList* outList);
    6261
    63 static status_t _ServiceThreadNub(void *_this);
    64         status_t        _ServiceThread();
     62    private:
     63        static status_t             _ServiceThreadNub(void *_this);
     64        status_t                    _ServiceThread();
    6565
    66         int                     fDriverFD;
    67         thread_id       fServiceThreadID;
    68         bool            fExiting;
    69         bool            fEnabled;
    70         int32           fCurrentButtons;
     66        int                         fDriverFD;
     67        thread_id                   fServiceThreadID;
     68        bool                        fExiting;
     69        bool                        fEnabled;
     70        int32                       fCurrentButtons;
    7171};
    7272
     73#endif /* __VBOXMOUSE_FILTER__H */
    7374
    74 #endif /* __VBOXMOUSE__H */
    75 
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