/******	fake.h ************************************************************\

Project:	USBJoystick
Component:	Fake device injection (development/testing only)

Injects one or more synthetic joystick devices into the module's slot table
at initialisation, so the whole native/slot/binding interface - and its
JoySetup UI - can be exercised on an emulator with no real USB hardware. A
fake device occupies a real slot with in_use/open set and fp == 0; nothing
polls it (the UpCall read path matches on a real file handle), but every SWI
(DeviceInfo/AxisInfo/AxisValues/ReadBindings/WriteBindings) works on it as it
would for hardware, so mappings genuinely read and write.

\**************************************************************************/

#ifndef fake_h
#define fake_h

/* 1 = inject the fake device(s) at module init; 0 = normal build.
   >>> SET TO 0 FOR RELEASE - a shipped module must not fake hardware. <<< */
#define USBJOY_FAKE_DEVICE	0

/* Create the fake device(s) if enabled; a no-op when USBJOY_FAKE_DEVICE is 0.
   Call once, after the real USB scan, from module_initialise. */
void fake_devices_create (void);

#endif
