Ellen v2.0: Marrow
Marrow is a refined version of the Ellen library in support of the Centurion project. Marrow seeks out data in a Linux context from various LSB, libusb, and SDL2 calls and translates and stores the returned metadata into a unified, platform agnostic mapping that is utilized across all platforms covered by the Centurion project. The retrieved fields include information about the hardware, operating system, user and available devices in the form of a C++ structure to be used by a consuming application. Marrow does translation to strip all library and OS specific data-types out of the collected information to maintain portability between different platforms. For fields where Ellen does not have permission to access certain information, or the data does not exist, Ellen will populate said fields with default values.
Tested Distros:
- Ubuntu 15.04 Vivid Vervet
- Ubuntu 14.04 LTS
- Don't see your distro here? Email me @ [email protected]
New to Marrow:
SDL_GameControllerDB/:
- Clone of the SDL_GameControllerDB project for getting mapping data for various gamepad style devices for use with SDL2
Cylon.h:
- Added constant for the home button for controllerStruct buttons masks
- Added device type values for HID, physical, printer, hub, communications data, smart card, content security, wireless phone, personal healthcare, and billboard devices
- Added error values for scenarios when controllers and detectedDevices lists fail to synchronize and for when a controllerStruct has a negative player number/user index
- Added usb_bus and udev_deviceNumber fields to deviceStruct
- Split deviceStruct id field into id_int and id_string
- Added horizontalResolution, verticalResolution, upperLeftX, upperLeftY, and driverData fields to displayStruct
- Added id field to controllerStruct
- Expanded buttons mask for controllerStruct to 32 bits
Ellen.h:
- Added constants for normalizing controllerStruct axis and trigger inputs
- Added typedefs and constants for handling dynamically linked library methods from SDL2 and libusb
- Added opened field to dynLib
- Added enums for SDL2 and libusb functions for list traversal
Ellen.cpp:
Supported Metadata Retrieval New to Marrow:
- developer specified dynamically loaded libraries, including their methods
- select methods from libusb and SDL2
- Controller/gamepad devices, including real-time button polling
- Storage drives, including GVFS mounted spaces
- Display devices
- USB devices, including udev device number information
README.md:
- Added Goal, Tested Distros, Documentation and Contact sections