Counter Strike : Global Offensive Source Code
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//===== Copyright 1996-2005, Valve Corporation, All rights reserved. ======//
//
// Purpose: Access to the cuter features of the PS3
// devkit, like the front LEDs.
//
// $NoKeywords: $
//
//===========================================================================//
#ifndef PS3_FRONTPANELLED_H
#define PS3_FRONTPANELLED_H
#ifdef _WIN32
#pragma once
#endif
/// encapsulates the DECR-1000's front panel LEDs, dip switches, and foot pedal
/// the system only lets you set a subset of the LEDs; there are FOUR LIGHTS.
/// (really. you can set LEDs 0..3)
namespace CPS3FrontPanelLED { // sets the on/off state of the LEDs on the front panel.
// you simply specify them as a bitmask -- ie, LED0 | LED 2 would light the zeroth and twoth LED and darken the other two.
inline bool SetLEDs( uint64 lights );
// you can use this to eg set LED1 while leaving the rest undisturbed. a 1 bit in the mask means the corresponding
// bit in value will be written to the hardware.
inline bool SetLEDsMasked( uint64 mask, uint64 lights );
// gets the on/off state of the LEDs on the front panel
inline uint64 GetLEDs();
// gets the on/off state of the switches on the front panel
inline uint64 GetSwitches();
// you will notice there is no function to set the state of the DIP switches from software.
// you don't actually need to use these, but just to be obvious:
enum eLEDIndex_t { kPS3LED0 = 1, kPS3LED1 = 2, kPS3LED2 = 4, kPS3LED3 = 8 };
enum eSwitchIndex_t { kPS3SWITCH0 = 1, kPS3SWITCH1 = 2, kPS3SWITCH2 = 4, kPS3SWITCH3 = 8 }; };
#if !defined(_PS3)
inline bool CPS3FrontPanelLED::SetLEDs( uint64 lights ) {return false;} inline bool CPS3FrontPanelLED::SetLEDsMasked( uint64 mask, uint64 lights ) {return false;} inline uint64 CPS3FrontPanelLED::GetLEDs() {return 0;} inline uint64 CPS3FrontPanelLED::GetSwitches() {return 0;} #else
#include <sys/gpio.h>
inline bool CPS3FrontPanelLED::SetLEDs( uint64 lights ) { return sys_gpio_set( SYS_GPIO_LED_DEVICE_ID, SYS_GPIO_LED_USER_AVAILABLE_BITS, lights ) == CELL_OK; }
inline bool CPS3FrontPanelLED::SetLEDsMasked( uint64 mask, uint64 lights ) { return sys_gpio_set( SYS_GPIO_LED_DEVICE_ID, SYS_GPIO_LED_USER_AVAILABLE_BITS & mask, SYS_GPIO_LED_USER_AVAILABLE_BITS & lights ) == CELL_OK; }
inline uint64 CPS3FrontPanelLED::GetLEDs() { uint64 val; if ( sys_gpio_get( SYS_GPIO_LED_DEVICE_ID, &val ) == CELL_OK ) { return val & SYS_GPIO_LED_USER_AVAILABLE_BITS; } else { return 0; } }
inline uint64 CPS3FrontPanelLED::GetSwitches() { uint64 val; if ( sys_gpio_get( SYS_GPIO_DIP_SWITCH_DEVICE_ID, &val ) == CELL_OK ) { return val & SYS_GPIO_DIP_SWITCH_USER_AVAILABLE_BITS; } else { return 0; } }
#endif
#endif // PS3_FRONTPANELLED_H
|