rockbox/firmware/target/hosted/surfans/button-f28.c
Solomon Peachy 82f3d0c18f WIP hosted port to the Surfans F28
* Only bootloader builds
 * Plugins disabled
 * No keymaps to anything else
 * No simulator
 * Touchscreen not wired up yet
 * Audio still untested

Bugs:

 * rotary encoder does nothing in bootloader
   (might be bootloader bug, might be something else)

Other stuff pulled in:

 * Unify all of the (identical!) hibyos makefiles
 * Rename the "bootloader" to more generic name

Change-Id: I6d8a3b58de726db8e89cf193c90960a070a575c2
2025-05-04 18:34:22 -04:00

64 lines
1.8 KiB
C

/***************************************************************************
* __________ __ ___
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
*
* Copyright (C) 2017 Marcin Bukat
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#include <linux/input.h>
#include "sysfs.h"
#include "button.h"
#include "button-target.h"
#include "surfanslinux_codec.h"
/*
/dev/input/event0: rotary encoder (left/right)
/dev/input/event1: adc (prev/play)
/dev/input/event2: touchscreen
/dev/input/event3: gpios (power/next)
*/
int button_map(int keycode)
{
switch(keycode)
{
case KEY_LEFT:
return BUTTON_LEFT;
case KEY_RIGHT:
return BUTTON_RIGHT;
case KEY_PLAYPAUSE:
return BUTTON_PLAY;
case KEY_NEXTSONG:
return BUTTON_NEXT;
case KEY_PREVIOUSSONG:
return BUTTON_PREV;
case KEY_POWER:
return BUTTON_POWER;
default:
return 0;
}
}
bool headphones_inserted(void)
{
#ifdef BOOTLOADER
int ps = 0;
#else
int ps = surfans_get_outputs();
#endif
return (ps == 2 || ps == 3);
}