Reload lists after scanning, and move text to bottom to leave top solely to camera (#126)
* reload lists after qr code is scanned * move "press R to exit" to bottom screen
This commit is contained in:
@@ -141,7 +141,7 @@ bool start_capture_cam(qr_data *data)
|
||||
void update_qr(qr_data *data, EntryMode current_mode)
|
||||
{
|
||||
hidScanInput();
|
||||
if (hidKeysDown() & KEY_R) {
|
||||
if (hidKeysDown() & (KEY_R | KEY_B | KEY_TOUCH)) {
|
||||
exit_qr(data);
|
||||
return;
|
||||
}
|
||||
@@ -169,10 +169,11 @@ void update_qr(qr_data *data, EntryMode current_mode)
|
||||
pp2d_load_texture_memory(TEXTURE_QR, data->texture_buffer, 400, 240);
|
||||
|
||||
pp2d_draw_texture(TEXTURE_QR, 0, 0);
|
||||
pp2d_draw_rectangle(0, 216, 400, 24, RGBA8(55, 122, 168, 255));
|
||||
pp2d_draw_text_center(GFX_TOP, 220, 0.5, 0.5, RGBA8(255, 255, 255, 255), "Press \uE005 To Quit");
|
||||
|
||||
pp2d_draw_on(GFX_BOTTOM, GFX_LEFT);
|
||||
pp2d_draw_text_center(GFX_BOTTOM, 4, 0.5, 0.5, RGBA8(255, 255, 255, 255), "Press \uE005 To Quit");
|
||||
pp2d_end_draw();
|
||||
|
||||
|
||||
int w;
|
||||
int h;
|
||||
u8 *image = (u8*) quirc_begin(data->context, &w, &h);
|
||||
@@ -194,12 +195,13 @@ void update_qr(qr_data *data, EntryMode current_mode)
|
||||
{
|
||||
exit_qr(data);
|
||||
http_get((char*)scan_data.payload, main_paths[current_mode]);
|
||||
data->success = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
void init_qr(EntryMode current_mode)
|
||||
bool init_qr(EntryMode current_mode)
|
||||
{
|
||||
qr_data *data = calloc(1, sizeof(qr_data));
|
||||
data->capturing = false;
|
||||
@@ -211,6 +213,8 @@ void init_qr(EntryMode current_mode)
|
||||
data->texture_buffer = calloc(1, 400 * 240 * sizeof(u32));
|
||||
|
||||
while (!data->finished) update_qr(data, current_mode);
|
||||
|
||||
return (bool)data->success;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -108,17 +108,21 @@ static void exit_thread(void)
|
||||
}
|
||||
}
|
||||
|
||||
void exit_function(bool power_pressed)
|
||||
void free_lists(void)
|
||||
{
|
||||
stop_install_check();
|
||||
for(int i = 0; i < MODE_AMOUNT; i++)
|
||||
{
|
||||
Entry_List_s * current_list = &lists[i];
|
||||
free(current_list->entries);
|
||||
current_list->entries = NULL;
|
||||
memset(current_list, 0, sizeof(Entry_List_s));
|
||||
}
|
||||
|
||||
exit_thread();
|
||||
}
|
||||
|
||||
void exit_function(bool power_pressed)
|
||||
{
|
||||
free_lists();
|
||||
svcCloseHandle(update_icons_handle);
|
||||
exit_screens();
|
||||
exit_services();
|
||||
@@ -209,8 +213,7 @@ static void load_lists(Entry_List_s * lists)
|
||||
{
|
||||
ssize_t texture_id_offset = TEXTURE_ICON;
|
||||
|
||||
stop_install_check();
|
||||
exit_thread();
|
||||
free_lists();
|
||||
for(int i = 0; i < MODE_AMOUNT; i++)
|
||||
{
|
||||
InstallType loading_screen = INSTALL_NONE;
|
||||
@@ -222,8 +225,6 @@ static void load_lists(Entry_List_s * lists)
|
||||
draw_install(loading_screen);
|
||||
|
||||
Entry_List_s * current_list = &lists[i];
|
||||
free(current_list->entries);
|
||||
memset(current_list, 0, sizeof(Entry_List_s));
|
||||
Result res = load_entries(main_paths[i], current_list, i);
|
||||
if(R_SUCCEEDED(res))
|
||||
{
|
||||
@@ -353,7 +354,13 @@ int main(void)
|
||||
u32 out;
|
||||
ACU_GetWifiStatus(&out);
|
||||
if(out)
|
||||
init_qr(current_mode);
|
||||
{
|
||||
|
||||
if(init_qr(current_mode))
|
||||
{
|
||||
load_lists(lists);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
throw_error("Please connect to Wi-Fi before scanning QRs", ERROR_LEVEL_WARNING);
|
||||
|
||||
Reference in New Issue
Block a user