forked from len0rd/rockbox
test_codec/test_fps: Use pluginlib_touchscreen API to make them fit for touchscreen including point mode.
Enable test_fps on RaaA also. Change-Id: Ifeb60d5ad30bde1f8a645cd9e9d5d5ae34f4425d
This commit is contained in:
parent
049f3c782a
commit
93a4b32d03
3 changed files with 107 additions and 5 deletions
|
@ -17,6 +17,7 @@ boomshine.lua
|
||||||
|
|
||||||
|
|
||||||
#ifdef HAVE_TEST_PLUGINS /* enable in advanced build options */
|
#ifdef HAVE_TEST_PLUGINS /* enable in advanced build options */
|
||||||
|
test_fps.c
|
||||||
#ifdef HAVE_ADJUSTABLE_CPU_FREQ
|
#ifdef HAVE_ADJUSTABLE_CPU_FREQ
|
||||||
test_boost.c
|
test_boost.c
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
|
#include "lib/pluginlib_touchscreen.h"
|
||||||
|
#include "lib/pluginlib_exit.h"
|
||||||
|
|
||||||
/* All swcodec targets have BUTTON_SELECT apart from the H10 and M3 */
|
/* All swcodec targets have BUTTON_SELECT apart from the H10 and M3 */
|
||||||
|
|
||||||
|
@ -42,7 +44,7 @@
|
||||||
#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
|
#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
|
||||||
#define TESTCODEC_EXITBUTTON BUTTON_BACK
|
#define TESTCODEC_EXITBUTTON BUTTON_BACK
|
||||||
#elif defined(HAVE_TOUCHSCREEN)
|
#elif defined(HAVE_TOUCHSCREEN)
|
||||||
#define TESTCODEC_EXITBUTTON BUTTON_TOPLEFT
|
#define TESTCODEC_EXITBUTTON (BUTTON_BOTTOMMIDDLE|BUTTON_REL)
|
||||||
#else
|
#else
|
||||||
#define TESTCODEC_EXITBUTTON BUTTON_SELECT
|
#define TESTCODEC_EXITBUTTON BUTTON_SELECT
|
||||||
#endif
|
#endif
|
||||||
|
@ -807,6 +809,54 @@ exit:
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_TOUCHSCREEN
|
||||||
|
void cleanup(void)
|
||||||
|
{
|
||||||
|
rb->screens[0]->set_viewport(NULL);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
static struct touchbutton button[] = {
|
||||||
|
{
|
||||||
|
.action = ACTION_STD_OK,
|
||||||
|
.title = "OK",
|
||||||
|
/* viewport runtime initialized, rest false/NULL */
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
void plugin_quit(void)
|
||||||
|
{
|
||||||
|
int btn;
|
||||||
|
#ifdef HAVE_TOUCHSCREEN
|
||||||
|
struct viewport *vp = &button[0].vp;
|
||||||
|
struct screen *lcd = rb->screens[SCREEN_MAIN];
|
||||||
|
rb->viewport_set_defaults(vp, SCREEN_MAIN);
|
||||||
|
const int border = 10;
|
||||||
|
const int height = 50;
|
||||||
|
|
||||||
|
lcd->set_viewport(vp);
|
||||||
|
/* button matches the bottom center in the grid */
|
||||||
|
vp->x = lcd->lcdwidth/3;
|
||||||
|
vp->width = lcd->lcdwidth/3;
|
||||||
|
vp->height = height;
|
||||||
|
vp->y = lcd->lcdheight - height - border;
|
||||||
|
|
||||||
|
touchbutton_draw(button, ARRAYLEN(button));
|
||||||
|
lcd->update_viewport();
|
||||||
|
if (rb->touchscreen_get_mode() == TOUCHSCREEN_POINT)
|
||||||
|
{
|
||||||
|
while (codec_action != CODEC_ACTION_HALT &&
|
||||||
|
touchbutton_get(button, ARRAYLEN(button)) != ACTION_STD_OK);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
do {
|
||||||
|
btn = rb->button_get(true);
|
||||||
|
exit_on_usb(btn);
|
||||||
|
} while (codec_action != CODEC_ACTION_HALT && btn != TESTCODEC_EXITBUTTON);
|
||||||
|
}
|
||||||
|
|
||||||
/* plugin entry point */
|
/* plugin entry point */
|
||||||
enum plugin_status plugin_start(const void* parameter)
|
enum plugin_status plugin_start(const void* parameter)
|
||||||
{
|
{
|
||||||
|
@ -839,6 +889,10 @@ enum plugin_status plugin_start(const void* parameter)
|
||||||
rb->lcd_clear_display();
|
rb->lcd_clear_display();
|
||||||
rb->lcd_update();
|
rb->lcd_update();
|
||||||
|
|
||||||
|
#ifdef HAVE_TOUCHSCREEN
|
||||||
|
rb->touchscreen_set_mode(rb->global_settings->touch_mode);
|
||||||
|
#endif
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
SPEED_TEST = 0,
|
SPEED_TEST = 0,
|
||||||
|
@ -980,10 +1034,8 @@ menu:
|
||||||
close_wav();
|
close_wav();
|
||||||
log_text("Wrote /test.wav",true);
|
log_text("Wrote /test.wav",true);
|
||||||
}
|
}
|
||||||
|
|
||||||
while (codec_action != CODEC_ACTION_HALT &&
|
|
||||||
rb->button_get(true) != TESTCODEC_EXITBUTTON);
|
|
||||||
}
|
}
|
||||||
|
plugin_quit();
|
||||||
|
|
||||||
#ifdef HAVE_ADJUSTABLE_CPU_FREQ
|
#ifdef HAVE_ADJUSTABLE_CPU_FREQ
|
||||||
if(boost)
|
if(boost)
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
#include "lib/helper.h"
|
#include "lib/helper.h"
|
||||||
#include "lib/grey.h"
|
#include "lib/grey.h"
|
||||||
|
#include "lib/pluginlib_touchscreen.h"
|
||||||
|
#include "lib/pluginlib_exit.h"
|
||||||
|
|
||||||
#if (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \
|
#if (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \
|
||||||
(CONFIG_KEYPAD == IPOD_1G2G_PAD)
|
(CONFIG_KEYPAD == IPOD_1G2G_PAD)
|
||||||
|
@ -39,6 +41,8 @@
|
||||||
#define FPS_QUIT (BUTTON_M|BUTTON_REPEAT)
|
#define FPS_QUIT (BUTTON_M|BUTTON_REPEAT)
|
||||||
#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
|
#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
|
||||||
#define FPS_QUIT BUTTON_BACK
|
#define FPS_QUIT BUTTON_BACK
|
||||||
|
#elif defined(HAVE_TOUCHSCREEN)
|
||||||
|
#define FPS_QUIT (BUTTON_BOTTOMMIDDLE|BUTTON_REL)
|
||||||
#elif defined(BUTTON_OFF)
|
#elif defined(BUTTON_OFF)
|
||||||
#define FPS_QUIT BUTTON_OFF
|
#define FPS_QUIT BUTTON_OFF
|
||||||
#else
|
#else
|
||||||
|
@ -356,6 +360,47 @@ static void time_greyscale(void)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static struct touchbutton button[] = {
|
||||||
|
{
|
||||||
|
.action = ACTION_STD_OK,
|
||||||
|
.title = "OK",
|
||||||
|
/* viewport runtime initialized, rest false/NULL */
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
void plugin_quit(void)
|
||||||
|
{
|
||||||
|
#ifdef HAVE_TOUCHSCREEN
|
||||||
|
struct viewport *vp = &button[0].vp;
|
||||||
|
struct screen *lcd = rb->screens[SCREEN_MAIN];
|
||||||
|
rb->viewport_set_defaults(vp, SCREEN_MAIN);
|
||||||
|
const int border = 10;
|
||||||
|
const int height = 50;
|
||||||
|
|
||||||
|
lcd->set_viewport(vp);
|
||||||
|
/* button matches the bottom center in the grid */
|
||||||
|
vp->x = lcd->lcdwidth/3;
|
||||||
|
vp->width = lcd->lcdwidth/3;
|
||||||
|
vp->height = height;
|
||||||
|
vp->y = lcd->lcdheight - height - border;
|
||||||
|
|
||||||
|
touchbutton_draw(button, ARRAYLEN(button));
|
||||||
|
lcd->update_viewport();
|
||||||
|
if (rb->touchscreen_get_mode() == TOUCHSCREEN_POINT)
|
||||||
|
{
|
||||||
|
while(touchbutton_get(button, ARRAYLEN(button)) != ACTION_STD_OK);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
int btn = rb->button_get(true);
|
||||||
|
exit_on_usb(btn);
|
||||||
|
if (btn == FPS_QUIT)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* plugin entry point */
|
/* plugin entry point */
|
||||||
enum plugin_status plugin_start(const void* parameter)
|
enum plugin_status plugin_start(const void* parameter)
|
||||||
{
|
{
|
||||||
|
@ -367,6 +412,10 @@ enum plugin_status plugin_start(const void* parameter)
|
||||||
/* standard stuff */
|
/* standard stuff */
|
||||||
(void)parameter;
|
(void)parameter;
|
||||||
|
|
||||||
|
#ifdef HAVE_TOUCHSCREEN
|
||||||
|
rb->touchscreen_set_mode(rb->global_settings->touch_mode);
|
||||||
|
#endif
|
||||||
|
|
||||||
log_init();
|
log_init();
|
||||||
#if (CONFIG_PLATFORM & PLATFORM_NATIVE)
|
#if (CONFIG_PLATFORM & PLATFORM_NATIVE)
|
||||||
cpu_freq = *rb->cpu_frequency; /* remember CPU frequency */
|
cpu_freq = *rb->cpu_frequency; /* remember CPU frequency */
|
||||||
|
@ -396,7 +445,7 @@ enum plugin_status plugin_start(const void* parameter)
|
||||||
backlight_use_settings();
|
backlight_use_settings();
|
||||||
|
|
||||||
/* wait until user closes plugin */
|
/* wait until user closes plugin */
|
||||||
while (rb->button_get(true) != FPS_QUIT);
|
plugin_quit();
|
||||||
|
|
||||||
return PLUGIN_OK;
|
return PLUGIN_OK;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue