1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "ppapi/shared_impl/ppb_gamepad_shared.h"
7 #include "base/basictypes.h"
11 void ConvertWebKitGamepadData(const WebKitGamepads
& webkit_data
,
12 PP_GamepadsSampleData
* output_data
) {
13 output_data
->length
= webkit_data
.length
;
14 for (unsigned i
= 0; i
< webkit_data
.length
; ++i
) {
15 PP_GamepadSampleData
& output_pad
= output_data
->items
[i
];
16 const WebKitGamepad
& webkit_pad
= webkit_data
.items
[i
];
17 output_pad
.connected
= webkit_pad
.connected
? PP_TRUE
: PP_FALSE
;
18 if (webkit_pad
.connected
) {
19 static_assert(sizeof(output_pad
.id
) == sizeof(webkit_pad
.id
),
20 "id size does not match");
21 memcpy(output_pad
.id
, webkit_pad
.id
, sizeof(output_pad
.id
));
22 output_pad
.timestamp
= static_cast<double>(webkit_pad
.timestamp
);
23 output_pad
.axes_length
= webkit_pad
.axes_length
;
24 for (unsigned j
= 0; j
< webkit_pad
.axes_length
; ++j
)
25 output_pad
.axes
[j
] = static_cast<float>(webkit_pad
.axes
[j
]);
26 output_pad
.buttons_length
= webkit_pad
.buttons_length
;
27 for (unsigned j
= 0; j
< webkit_pad
.buttons_length
; ++j
)
28 output_pad
.buttons
[j
] = static_cast<float>(webkit_pad
.buttons
[j
].value
);