/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsISupports.idl"

interface nsIVariant;

/*
 * This interface is intended only for use in tests.
 */
[scriptable, uuid(c03ec4ed-8a7e-40e7-99da-c609f1760d0c)]
interface nsIGamepadServiceTest : nsISupports
{
  const unsigned long NO_MAPPING = 0;
  const unsigned long STANDARD_MAPPING = 1;

  unsigned long addGamepad(in string id,
                           in unsigned long mapping,
                           in unsigned long numButtons,
			   in unsigned long numAxes);
  void removeGamepad(in unsigned long index);
  void newButtonEvent(in unsigned long index, in unsigned long button,
		      in boolean pressed);
  void newButtonValueEvent(in unsigned long index, in unsigned long button,
                           in boolean pressed, in double value);
  void newAxisMoveEvent(in unsigned long index, in unsigned long axis,
			in double value);
};
