Home | History | Annotate | Download | only in platform
      1 // Copyright (C) 2011, Google Inc. All rights reserved.
      2 //
      3 // Redistribution and use in source and binary forms, with or without
      4 // modification, are permitted provided that the following conditions are met:
      5 //
      6 // 1. Redistributions of source code must retain the above copyright
      7 //    notice, this list of conditions and the following disclaimer.
      8 // 2. Redistributions in binary form must reproduce the above copyright
      9 //    notice, this list of conditions and the following disclaimer in the
     10 //    documentation and/or other materials provided with the distribution.
     11 //
     12 // THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
     13 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     14 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     15 // ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE
     16 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     17 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
     18 // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
     19 // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     20 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     21 // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
     22 // DAMAGE.
     23 
     24 #ifndef WebGamepads_h
     25 #define WebGamepads_h
     26 
     27 #include "WebGamepad.h"
     28 
     29 #if WEBKIT_IMPLEMENTATION
     30 #include <wtf/Assertions.h>
     31 #endif
     32 
     33 namespace WebKit {
     34 
     35 #pragma pack(push, 1)
     36 
     37 // This structure is intentionally POD and fixed size so that it can be stored
     38 // in shared memory between hardware polling threads and the rest of the
     39 // browser.
     40 class WebGamepads {
     41 public:
     42     WebGamepads()
     43         : length(0) { }
     44 
     45     static const size_t itemsLengthCap = 4;
     46 
     47     // Number of valid entries in the items array.
     48     unsigned length;
     49 
     50     // Gamepad data for N separate gamepad devices.
     51     WebGamepad items[itemsLengthCap];
     52 };
     53 
     54 #if WEBKIT_IMPLEMENTATION
     55 COMPILE_ASSERT(sizeof(WebGamepads) == 1864, WebGamepads_has_wrong_size);
     56 #endif
     57 
     58 #pragma pack(pop)
     59 
     60 }
     61 
     62 #endif // WebGamepads_h
     63