393ca9a124
* Include sorting, header style, macro naming, variable naming, spacing, ... * Some simplifications, early returns and the like. * The device name list items were allocated with new but deleted with free. The whole private BJoystick list being modified by a friend class is dubious though and should be reworked. Ideally node monitoring would be implemented so that the list can be re-populated on demand instead of scanning through every time. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41868 a95241bf-73f2-0310-859d-f6bbb57e9c96
63 lines
1.3 KiB
C++
63 lines
1.3 KiB
C++
/*
|
|
* Copyright 2008, Haiku, Inc.
|
|
* Distributed under the terms of the MIT License.
|
|
*
|
|
* Authors:
|
|
* Fredrik Modeen
|
|
*/
|
|
|
|
#include <joystick_driver.h>
|
|
|
|
#include <Entry.h>
|
|
#include <List.h>
|
|
|
|
|
|
#if DEBUG
|
|
#include <stdio.h>
|
|
#endif
|
|
|
|
#define DEVICE_BASE_PATH "/dev/joystick/"
|
|
#define JOYSTICK_CONFIG_BASE_PATH "/boot/home/config/settings/joysticks/"
|
|
// TODO: this should use find_directory() instead and it should take
|
|
// common/system into account as well
|
|
|
|
class BJoystick;
|
|
|
|
typedef struct _joystick_info {
|
|
joystick_module_info module_info;
|
|
bool calibration_enable;
|
|
bigtime_t max_latency;
|
|
BList axis_names;
|
|
BList hat_names;
|
|
BList button_names;
|
|
} joystick_info;
|
|
|
|
|
|
class _BJoystickTweaker {
|
|
public:
|
|
_BJoystickTweaker();
|
|
_BJoystickTweaker(BJoystick &stick);
|
|
virtual ~_BJoystickTweaker();
|
|
status_t SendIOCT(uint32 op);
|
|
status_t GetInfo(_joystick_info* info, const char *ref);
|
|
|
|
// BeOS R5's joystick pref need these
|
|
status_t save_config(const entry_ref *ref = NULL);
|
|
void scan_including_disabled();
|
|
status_t get_info();
|
|
|
|
private:
|
|
void _BuildFromJoystickDesc(char *string,
|
|
_joystick_info *info);
|
|
status_t _ScanIncludingDisabled(const char *rootPath,
|
|
BList *list, BEntry *rootEntry = NULL);
|
|
|
|
void _EmpyList(BList *list);
|
|
|
|
BJoystick * fJoystick;
|
|
#if DEBUG
|
|
public:
|
|
static FILE * sLogFile;
|
|
#endif
|
|
};
|