Merge branch 'master' into sdl2
This commit is contained in:
commit
ca03dea1ab
3 changed files with 90 additions and 94 deletions
|
@ -1,9 +1,11 @@
|
|||
# Changes in forked version
|
||||
|
||||
- New target platform: Pi 3
|
||||
- Optimizations for Pi 3 added
|
||||
- Pi 3 is now the default target if no Platform is specified
|
||||
- Added support for custom functions assignable to keyboard LEDs (e.g. HD activity)
|
||||
- Code formatting and cleanup
|
||||
- FullHD (1080p) resolution supported in Picasso96 mode.
|
||||
- Pi Zero / Pi 1 version now has full Picasso96 support.
|
||||
- Removed Pandora specific keyboard shortcuts which caused crashes
|
||||
- Loading the Configuration file now respects the input settings
|
||||
|
|
|
@ -880,6 +880,27 @@ int handle_msgpump (void)
|
|||
inputdevice_add_inputcode (AKS_ENTERGUI, 1);
|
||||
switch(rEvent.key.keysym.sym)
|
||||
{
|
||||
#ifdef CAPSLOCK_DEBIAN_WORKAROUND
|
||||
case SDLK_CAPSLOCK: // capslock
|
||||
// Treat CAPSLOCK as a toggle. If on, set off and vice/versa
|
||||
ioctl(0, KDGKBLED, &kbd_flags);
|
||||
ioctl(0, KDGETLED, &kbd_led_status);
|
||||
if ((kbd_flags & 07) & LED_CAP)
|
||||
{
|
||||
// On, so turn off
|
||||
kbd_led_status &= ~LED_CAP;
|
||||
kbd_flags &= ~LED_CAP;
|
||||
inputdevice_do_keyboard(AK_CAPSLOCK, 0);
|
||||
} else {
|
||||
// Off, so turn on
|
||||
kbd_led_status |= LED_CAP;
|
||||
kbd_flags |= LED_CAP;
|
||||
inputdevice_do_keyboard(AK_CAPSLOCK, 1);
|
||||
}
|
||||
ioctl(0, KDSETLED, kbd_led_status);
|
||||
ioctl(0, KDSKBLED, kbd_flags);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case SDLK_LSHIFT: // Shift key
|
||||
inputdevice_do_keyboard(AK_LSH, 1);
|
||||
|
@ -931,14 +952,6 @@ int handle_msgpump (void)
|
|||
inputdevice_translatekeycode(0, rEvent.key.keysym.scancode, 1);
|
||||
|
||||
}
|
||||
#ifdef CAPSLOCK_DEBIAN_WORKAROUND
|
||||
if (rEvent.key.keysym.sym == SDLK_CAPSLOCK)
|
||||
{
|
||||
ioctl(0, KDGETLED, &kbd_led_status);
|
||||
kbd_led_status |= LED_CAP;
|
||||
ioctl(0, KDSETLED, kbd_led_status);
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
@ -946,6 +959,27 @@ int handle_msgpump (void)
|
|||
case SDL_KEYUP:
|
||||
switch(rEvent.key.keysym.sym)
|
||||
{
|
||||
#ifdef CAPSLOCK_DEBIAN_WORKAROUND
|
||||
case SDLK_CAPSLOCK: // capslock
|
||||
// Treat CAPSLOCK as a toggle. If on, set off and vice/versa
|
||||
ioctl(0, KDGKBLED, &kbd_flags);
|
||||
ioctl(0, KDGETLED, &kbd_led_status);
|
||||
if ((kbd_flags & 07) & LED_CAP)
|
||||
{
|
||||
// On, so turn off
|
||||
kbd_led_status &= ~LED_CAP;
|
||||
kbd_flags &= ~LED_CAP;
|
||||
inputdevice_do_keyboard(AK_CAPSLOCK, 0);
|
||||
} else {
|
||||
// Off, so turn on
|
||||
kbd_led_status |= LED_CAP;
|
||||
kbd_flags |= LED_CAP;
|
||||
inputdevice_do_keyboard(AK_CAPSLOCK, 1);
|
||||
}
|
||||
ioctl(0, KDSETLED, kbd_led_status);
|
||||
ioctl(0, KDSKBLED, kbd_flags);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case SDLK_LSHIFT: // Shift key
|
||||
inputdevice_do_keyboard(AK_LSH, 0);
|
||||
|
@ -993,14 +1027,6 @@ int handle_msgpump (void)
|
|||
else
|
||||
inputdevice_translatekeycode(0, rEvent.key.keysym.scancode, 0);
|
||||
}
|
||||
#ifdef CAPSLOCK_DEBIAN_WORKAROUND
|
||||
if (rEvent.key.keysym.sym == SDLK_CAPSLOCK)
|
||||
{
|
||||
ioctl(0, KDGETLED, &kbd_led_status);
|
||||
kbd_led_status &= ~LED_CAP;
|
||||
ioctl(0, KDSETLED, kbd_led_status);
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -614,92 +614,60 @@ void gui_disk_image_change(int unitnum, const char *name, bool writeprotected)
|
|||
{
|
||||
}
|
||||
|
||||
void gui_led(int led, int on)
|
||||
void gui_led (int led, int on)
|
||||
{
|
||||
#ifdef RASPBERRY
|
||||
unsigned long kbd_led_status;
|
||||
|
||||
// Check current prefs/ update if changed
|
||||
if (currprefs.kbd_led_num != changed_prefs.kbd_led_num) currprefs.kbd_led_num = changed_prefs.kbd_led_num;
|
||||
if (currprefs.kbd_led_scr != changed_prefs.kbd_led_scr) currprefs.kbd_led_scr = changed_prefs.kbd_led_scr;
|
||||
|
||||
ioctl(0, KDGETLED, &kbd_led_status);
|
||||
|
||||
// Handle floppy led status
|
||||
if (led == LED_DF0 || led == LED_DF1 || led == LED_DF2 || led == LED_DF3)
|
||||
{
|
||||
if (currprefs.kbd_led_num == led || currprefs.kbd_led_num == LED_DFs)
|
||||
{
|
||||
if (on) kbd_led_status |= LED_NUM;
|
||||
else kbd_led_status &= ~LED_NUM;
|
||||
}
|
||||
if (currprefs.kbd_led_scr == led || currprefs.kbd_led_scr == LED_DFs)
|
||||
{
|
||||
if (on) kbd_led_status |= LED_SCR;
|
||||
else kbd_led_status &= ~LED_SCR;
|
||||
}
|
||||
}
|
||||
else
|
||||
// Handle power, hd/cd led status
|
||||
{
|
||||
if (currprefs.kbd_led_num == led)
|
||||
{
|
||||
if (on) kbd_led_status |= LED_NUM;
|
||||
else kbd_led_status &= ~LED_NUM;
|
||||
}
|
||||
if (currprefs.kbd_led_scr == led)
|
||||
{
|
||||
if (on) kbd_led_status |= LED_SCR;
|
||||
else kbd_led_status &= ~LED_SCR;
|
||||
}
|
||||
}
|
||||
ioctl(0, KDSETLED, kbd_led_status);
|
||||
#define LED_ALL -1 // Define for all LEDs
|
||||
|
||||
unsigned long kbd_led_status;
|
||||
|
||||
// Check current prefs/ update if changed
|
||||
if (currprefs.kbd_led_num != changed_prefs.kbd_led_num) currprefs.kbd_led_num = changed_prefs.kbd_led_num;
|
||||
if (currprefs.kbd_led_scr != changed_prefs.kbd_led_scr) currprefs.kbd_led_scr = changed_prefs.kbd_led_scr;
|
||||
if (currprefs.kbd_led_cap != changed_prefs.kbd_led_cap) currprefs.kbd_led_cap = changed_prefs.kbd_led_cap;
|
||||
|
||||
ioctl(0, KDGETLED, &kbd_led_status);
|
||||
|
||||
// Handle floppy led status
|
||||
if (led == LED_DF0 || led == LED_DF1 || led == LED_DF2 || led == LED_DF3)
|
||||
{
|
||||
if (currprefs.kbd_led_num == led || currprefs.kbd_led_num == LED_DFs)
|
||||
{
|
||||
if (on) kbd_led_status |= LED_NUM; else kbd_led_status &= ~LED_NUM;
|
||||
}
|
||||
if (currprefs.kbd_led_scr == led || currprefs.kbd_led_scr == LED_DFs)
|
||||
{
|
||||
if (on) kbd_led_status |= LED_SCR; else kbd_led_status &= ~LED_SCR;
|
||||
}
|
||||
}
|
||||
|
||||
// Handle power, hd/cd led status
|
||||
if (led == LED_POWER || led == LED_HD || led == LED_CD)
|
||||
{
|
||||
if (currprefs.kbd_led_num == led)
|
||||
{
|
||||
if (on) kbd_led_status |= LED_NUM; else kbd_led_status &= ~LED_NUM;
|
||||
}
|
||||
if (currprefs.kbd_led_scr == led)
|
||||
{
|
||||
if (on) kbd_led_status |= LED_SCR; else kbd_led_status &= ~LED_SCR;
|
||||
}
|
||||
}
|
||||
|
||||
// Handle all LEDs off
|
||||
if (led == LED_ALL) {
|
||||
kbd_led_status &= ~LED_NUM;
|
||||
kbd_led_status &= ~LED_SCR;
|
||||
}
|
||||
ioctl(0, KDSETLED, kbd_led_status);
|
||||
#endif
|
||||
}
|
||||
|
||||
void gui_flicker_led(int led, int unitnum, int status)
|
||||
void gui_flicker_led (int led, int unitnum, int status)
|
||||
{
|
||||
static int hd_resetcounter;
|
||||
|
||||
switch (led)
|
||||
{
|
||||
case -1: // Reset HD and CD
|
||||
gui_data.hd = 0;
|
||||
break;
|
||||
|
||||
case LED_POWER:
|
||||
if (status == 0)
|
||||
gui_led(LED_POWER, 0);
|
||||
else
|
||||
gui_led(LED_POWER, 1);
|
||||
break;
|
||||
|
||||
case LED_CD:
|
||||
if (status == 0)
|
||||
gui_led(LED_CD, 0);
|
||||
else
|
||||
gui_led(LED_CD, 1);
|
||||
break;
|
||||
|
||||
case LED_HD:
|
||||
if (status == 0)
|
||||
{
|
||||
hd_resetcounter--;
|
||||
if (hd_resetcounter > 0)
|
||||
return;
|
||||
#ifdef RASPBERRY
|
||||
// HD LED off
|
||||
gui_led(LED_HD, 0);
|
||||
gui_led(led, status);
|
||||
#endif
|
||||
}
|
||||
#ifdef RASPBERRY
|
||||
// HD LED on
|
||||
else gui_led(LED_HD, 1);
|
||||
#endif
|
||||
gui_data.hd = status;
|
||||
hd_resetcounter = 2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue