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.
4
5// Define the default data fetcher that GamepadProvider will use if none is
6// supplied. (GamepadPlatformDataFetcher).
7
8#ifndef CONTENT_BROWSER_GAMEPAD_GAMEPAD_PLATFORM_DATA_FETCHER_H_
9#define CONTENT_BROWSER_GAMEPAD_GAMEPAD_PLATFORM_DATA_FETCHER_H_
10
11#include "base/basictypes.h"
12#include "base/compiler_specific.h"
13#include "content/browser/gamepad/gamepad_data_fetcher.h"
14
15#if defined(OS_WIN)
16#include "content/browser/gamepad/gamepad_platform_data_fetcher_win.h"
17#elif defined(OS_MACOSX)
18#include "content/browser/gamepad/gamepad_platform_data_fetcher_mac.h"
19#elif defined(OS_LINUX)
20#include "content/browser/gamepad/gamepad_platform_data_fetcher_linux.h"
21#endif
22
23namespace content {
24
25#if defined(OS_WIN)
26
27typedef GamepadPlatformDataFetcherWin GamepadPlatformDataFetcher;
28
29#elif defined(OS_MACOSX)
30
31typedef GamepadPlatformDataFetcherMac GamepadPlatformDataFetcher;
32
33#elif defined(OS_LINUX)
34
35typedef GamepadPlatformDataFetcherLinux GamepadPlatformDataFetcher;
36
37#else
38
39class GamepadDataFetcherEmpty : public GamepadDataFetcher {
40 public:
41  GamepadDataFetcherEmpty();
42
43  virtual void GetGamepadData(WebKit::WebGamepads* pads,
44                              bool devices_changed_hint) OVERRIDE;
45
46 private:
47  DISALLOW_COPY_AND_ASSIGN(GamepadDataFetcherEmpty);
48};
49typedef GamepadDataFetcherEmpty GamepadPlatformDataFetcher;
50
51#endif
52
53}  // namespace content
54
55#endif  // CONTENT_BROWSER_GAMEPAD_GAMEPAD_PLATFORM_DATA_FETCHER_H_
56