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
|
# Changes in forked version
|
||||||
|
|
||||||
- New target platform: Pi 3
|
- New target platform: Pi 3
|
||||||
- Optimizations for Pi 3 added
|
- Optimizations for Pi 3 added
|
||||||
- Pi 3 is now the default target if no Platform is specified
|
- 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)
|
- Added support for custom functions assignable to keyboard LEDs (e.g. HD activity)
|
||||||
- Code formatting and cleanup
|
- Code formatting and cleanup
|
||||||
|
- FullHD (1080p) resolution supported in Picasso96 mode.
|
||||||
- Pi Zero / Pi 1 version now has full Picasso96 support.
|
- Pi Zero / Pi 1 version now has full Picasso96 support.
|
||||||
- Removed Pandora specific keyboard shortcuts which caused crashes
|
- Removed Pandora specific keyboard shortcuts which caused crashes
|
||||||
- Loading the Configuration file now respects the input settings
|
- Loading the Configuration file now respects the input settings
|
||||||
|
|
|
@ -880,6 +880,27 @@ int handle_msgpump (void)
|
||||||
inputdevice_add_inputcode (AKS_ENTERGUI, 1);
|
inputdevice_add_inputcode (AKS_ENTERGUI, 1);
|
||||||
switch(rEvent.key.keysym.sym)
|
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
|
case SDLK_LSHIFT: // Shift key
|
||||||
inputdevice_do_keyboard(AK_LSH, 1);
|
inputdevice_do_keyboard(AK_LSH, 1);
|
||||||
|
@ -931,14 +952,6 @@ int handle_msgpump (void)
|
||||||
inputdevice_translatekeycode(0, rEvent.key.keysym.scancode, 1);
|
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;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -946,6 +959,27 @@ int handle_msgpump (void)
|
||||||
case SDL_KEYUP:
|
case SDL_KEYUP:
|
||||||
switch(rEvent.key.keysym.sym)
|
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
|
case SDLK_LSHIFT: // Shift key
|
||||||
inputdevice_do_keyboard(AK_LSH, 0);
|
inputdevice_do_keyboard(AK_LSH, 0);
|
||||||
|
@ -993,14 +1027,6 @@ int handle_msgpump (void)
|
||||||
else
|
else
|
||||||
inputdevice_translatekeycode(0, rEvent.key.keysym.scancode, 0);
|
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;
|
||||||
}
|
}
|
||||||
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
|
#ifdef RASPBERRY
|
||||||
unsigned long kbd_led_status;
|
#define LED_ALL -1 // Define for all LEDs
|
||||||
|
|
||||||
// Check current prefs/ update if changed
|
unsigned long kbd_led_status;
|
||||||
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;
|
// 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;
|
||||||
ioctl(0, KDGETLED, &kbd_led_status);
|
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;
|
||||||
// Handle floppy led status
|
|
||||||
if (led == LED_DF0 || led == LED_DF1 || led == LED_DF2 || led == LED_DF3)
|
ioctl(0, KDGETLED, &kbd_led_status);
|
||||||
{
|
|
||||||
if (currprefs.kbd_led_num == led || currprefs.kbd_led_num == LED_DFs)
|
// Handle floppy led status
|
||||||
{
|
if (led == LED_DF0 || led == LED_DF1 || led == LED_DF2 || led == LED_DF3)
|
||||||
if (on) kbd_led_status |= LED_NUM;
|
{
|
||||||
else kbd_led_status &= ~LED_NUM;
|
if (currprefs.kbd_led_num == led || currprefs.kbd_led_num == LED_DFs)
|
||||||
}
|
{
|
||||||
if (currprefs.kbd_led_scr == led || currprefs.kbd_led_scr == LED_DFs)
|
if (on) kbd_led_status |= LED_NUM; else kbd_led_status &= ~LED_NUM;
|
||||||
{
|
}
|
||||||
if (on) kbd_led_status |= LED_SCR;
|
if (currprefs.kbd_led_scr == led || currprefs.kbd_led_scr == LED_DFs)
|
||||||
else kbd_led_status &= ~LED_SCR;
|
{
|
||||||
}
|
if (on) kbd_led_status |= LED_SCR; else kbd_led_status &= ~LED_SCR;
|
||||||
}
|
}
|
||||||
else
|
}
|
||||||
// Handle power, hd/cd led status
|
|
||||||
{
|
// Handle power, hd/cd led status
|
||||||
if (currprefs.kbd_led_num == led)
|
if (led == LED_POWER || led == LED_HD || led == LED_CD)
|
||||||
{
|
{
|
||||||
if (on) kbd_led_status |= LED_NUM;
|
if (currprefs.kbd_led_num == led)
|
||||||
else kbd_led_status &= ~LED_NUM;
|
{
|
||||||
}
|
if (on) kbd_led_status |= LED_NUM; else kbd_led_status &= ~LED_NUM;
|
||||||
if (currprefs.kbd_led_scr == led)
|
}
|
||||||
{
|
if (currprefs.kbd_led_scr == led)
|
||||||
if (on) kbd_led_status |= LED_SCR;
|
{
|
||||||
else kbd_led_status &= ~LED_SCR;
|
if (on) kbd_led_status |= LED_SCR; else kbd_led_status &= ~LED_SCR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ioctl(0, KDSETLED, kbd_led_status);
|
|
||||||
|
// 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
|
#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
|
#ifdef RASPBERRY
|
||||||
// HD LED off
|
gui_led(led, status);
|
||||||
gui_led(LED_HD, 0);
|
|
||||||
#endif
|
#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