
#include <stdint.h>
#include <stdio.h>

#include "swis.h"
#include "Global/RISCOS.h"

#include "usbjoystick.h"
#include "USBJoystickHdr.h"
#include "cmdmap.h"
#include "cmdemu.h"
#include "cmdctrl.h"
#include "cmdshow.h"
#include "config.h"
#include "binding.h"

#include "cmds.h"


_kernel_oserror *command_handler(const char *args, int32_t argc, int32_t cmdno, void *pw)
{
  IGNORE(pw);

  switch (cmdno) {
    case CMD_USBJoystick_Read:
      return command_read(args, argc);

    case CMD_USBJoystick_Emulate:
      return command_emulate(args, argc);

    case CMD_USBJoystick_List:
      return command_list(args, argc);

    case CMD_USBJoystick_SetStick:
      return command_set_stick(args, argc);

    case CMD_USBJoystick_Debug:
      return command_debug(args, argc);

    case CMD_USBJoystick_Fingerprint:
      return command_fingerprint(args, argc);

    case CMD_USBJoystick_SaveMappings:
      return command_save_mapping(args, argc);

    case CMD_USBJoystick_RevertToDefaultMap:
      return command_revert_to_default_map(args, argc);

    case CMD_USBJoystick_ReloadConfig:
      return command_reload_config(args, argc);

    case CMD_USBJoystick_Map:
      return command_map(args, argc);

    case CMD_USBJoystick_Unmap:
      return command_unmap(args, argc);

    case CMD_USBJoystick_Mappings:
      return command_mappings(args, argc);

    case CMD_USBJoystick_Control:
      return command_control(args, argc);

    case CMD_USBJoystick_SaveSettings:
      return command_save_settings(args, argc);

    default:
      printf("Unimplemented command!\n");
  }

  return NULL;
}
