Skip to content

Commit c3332e6

Browse files
authored
Merge pull request #91 from RogueMaster/gameOnly
Game only
2 parents 905fc36 + a17e061 commit c3332e6

File tree

3 files changed

+113
-22
lines changed

3 files changed

+113
-22
lines changed

applications/desktop/desktop_settings/desktop_settings.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,5 @@ typedef struct {
4444
uint8_t is_locked;
4545
uint32_t auto_lock_delay_ms;
4646
uint8_t displayBatteryPercentage;
47+
bool is_dumbmode;
4748
} DesktopSettings;

applications/desktop/desktop_settings/scenes/desktop_settings_scene_start.c

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,17 @@ const char* const battery_view_count_text[BATTERY_VIEW_COUNT] = {
3737
const uint32_t displayBatteryPercentage_value[BATTERY_VIEW_COUNT] =
3838
{0, 1, 2, 3, 4};
3939

40+
41+
#define DUMBMODE 1
42+
#define NOT_DUMBMODE 0
43+
#define DUMBMODE_COUNT 2
44+
const char* const dumbmode_text[DUMBMODE_COUNT] = {
45+
"OFF",
46+
"ON",
47+
};
48+
49+
const uint32_t dumbmode_value[DUMBMODE_COUNT] = {NOT_DUMBMODE, DUMBMODE};
50+
4051
static void desktop_settings_scene_start_var_list_enter_callback(void* context, uint32_t index) {
4152
DesktopSettingsApp* app = context;
4253
view_dispatcher_send_custom_event(app->view_dispatcher, index);
@@ -58,6 +69,13 @@ static void desktop_settings_scene_start_battery_view_changed(VariableItem* item
5869
app->settings.displayBatteryPercentage = index;
5970
}
6071

72+
static void desktop_settings_scene_start_dumbmode_changed(VariableItem* item) {
73+
DesktopSettingsApp* app = variable_item_get_context(item);
74+
uint8_t index = variable_item_get_current_value_index(item);
75+
76+
variable_item_set_current_value_text(item, dumbmode_text[index]);
77+
app->settings.is_dumbmode = dumbmode_value[index];
78+
}
6179

6280
void desktop_settings_scene_start_on_enter(void* context) {
6381
DesktopSettingsApp* app = context;
@@ -81,8 +99,6 @@ void desktop_settings_scene_start_on_enter(void* context) {
8199
desktop_settings_scene_start_auto_lock_delay_changed,
82100
app);
83101

84-
variable_item_list_set_enter_callback(
85-
variable_item_list, desktop_settings_scene_start_var_list_enter_callback, app);
86102
value_index = value_index_uint32(
87103
app->settings.auto_lock_delay_ms, auto_lock_delay_value, AUTO_LOCK_DELAY_COUNT);
88104
variable_item_set_current_value_index(item, value_index);
@@ -102,6 +118,19 @@ void desktop_settings_scene_start_on_enter(void* context) {
102118
variable_item_set_current_value_index(item, value_index);
103119
variable_item_set_current_value_text(item, battery_view_count_text[value_index]);
104120

121+
item = variable_item_list_add(
122+
variable_item_list,
123+
"Games Only",
124+
DUMBMODE_COUNT,
125+
desktop_settings_scene_start_dumbmode_changed,
126+
app);
127+
128+
value_index = value_index_uint32(app->settings.is_dumbmode, dumbmode_value, DUMBMODE_COUNT);
129+
variable_item_set_current_value_index(item, value_index);
130+
variable_item_set_current_value_text(item, dumbmode_text[value_index]);
131+
132+
variable_item_list_set_enter_callback(
133+
variable_item_list, desktop_settings_scene_start_var_list_enter_callback, app);
105134
view_dispatcher_switch_to_view(app->view_dispatcher, DesktopSettingsAppViewVarItemList);
106135
}
107136

applications/desktop/views/desktop_view_main.c

Lines changed: 81 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
#include "../desktop_i.h"
1010
#include "desktop_view_main.h"
11+
#include <applications/desktop/desktop_settings/desktop_settings.h>
12+
uint32_t codeSequence = 0;
1113

1214
struct DesktopMainView {
1315
View* view;
@@ -44,27 +46,86 @@ bool desktop_main_input(InputEvent* event, void* context) {
4446

4547
DesktopMainView* main_view = context;
4648

47-
if(event->type == InputTypeShort) {
48-
if(event->key == InputKeyOk) {
49-
main_view->callback(DesktopMainEventOpenMenu, main_view->context);
50-
} else if(event->key == InputKeyUp) {
51-
main_view->callback(DesktopMainEventOpenLockMenu, main_view->context);
52-
} else if(event->key == InputKeyDown) {
53-
main_view->callback(DesktopMainEventOpenArchive, main_view->context);
54-
} else if(event->key == InputKeyLeft) {
55-
main_view->callback(DesktopMainEventOpenFavoritePrimary, main_view->context);
56-
} else if(event->key == InputKeyRight) {
57-
main_view->callback(DesktopMainEventOpenPassport, main_view->context);
49+
DesktopSettings* desktop_settings = malloc(sizeof(DesktopSettings));
50+
LOAD_DESKTOP_SETTINGS(desktop_settings);
51+
if(!desktop_settings->is_dumbmode) {
52+
if(event->type == InputTypeShort) {
53+
if(event->key == InputKeyOk) {
54+
main_view->callback(DesktopMainEventOpenMenu, main_view->context);
55+
} else if(event->key == InputKeyUp) {
56+
main_view->callback(DesktopMainEventOpenLockMenu, main_view->context);
57+
} else if(event->key == InputKeyDown) {
58+
main_view->callback(DesktopMainEventOpenArchive, main_view->context);
59+
} else if(event->key == InputKeyLeft) {
60+
main_view->callback(DesktopMainEventOpenFavoritePrimary, main_view->context);
61+
} else if(event->key == InputKeyRight) {
62+
main_view->callback(DesktopMainEventOpenPassport, main_view->context);
63+
}
64+
} else if(event->type == InputTypeLong) {
65+
if(event->key == InputKeyOk) {
66+
main_view->callback(DesktopAnimationEventNewIdleAnimation, main_view->context);
67+
} else if(event->key == InputKeyUp) {
68+
main_view->callback(DesktopMainEventOpenFavoriteGame, main_view->context);
69+
} else if(event->key == InputKeyDown) {
70+
main_view->callback(DesktopMainEventOpenDebug, main_view->context);
71+
} else if(event->key == InputKeyLeft) {
72+
main_view->callback(DesktopMainEventOpenFavoriteSecondary, main_view->context);
73+
} else if(event->key == InputKeyRight) {
74+
// THIS DOESNT WORK
75+
}
5876
}
59-
} else if(event->type == InputTypeLong) {
60-
if(event->key == InputKeyDown) {
61-
main_view->callback(DesktopMainEventOpenDebug, main_view->context);
62-
} else if(event->key == InputKeyLeft) {
63-
main_view->callback(DesktopMainEventOpenFavoriteSecondary, main_view->context);
64-
} else if(event->key == InputKeyUp) {
65-
main_view->callback(DesktopMainEventOpenFavoriteGame, main_view->context);
66-
} else if (event->key == InputKeyOk) {
67-
main_view->callback(DesktopAnimationEventNewIdleAnimation, main_view->context);
77+
} else {
78+
if(event->type == InputTypeShort) {
79+
if(event->key == InputKeyOk) {
80+
// PREFER TO OPEN GAMES MENU, SINCE RIGHT ONLY WORKS FOR PASSPORT NEED TO USE TO EXIT GAME MODE
81+
if(codeSequence==5 || codeSequence==7) {
82+
codeSequence++;
83+
} else {
84+
codeSequence=0;
85+
main_view->callback(DesktopAnimationEventNewIdleAnimation, main_view->context);
86+
}
87+
} else if(event->key == InputKeyUp) {
88+
if(codeSequence==0 || codeSequence==1) {
89+
codeSequence++;
90+
} else {
91+
codeSequence=0;
92+
main_view->callback(DesktopMainEventOpenFavoriteGame, main_view->context);
93+
}
94+
} else if(event->key == InputKeyDown) {
95+
if(codeSequence==2 || codeSequence==3) {
96+
codeSequence++;
97+
} else {
98+
codeSequence=0;
99+
}
100+
} else if(event->key == InputKeyLeft) {
101+
if(codeSequence==4 || codeSequence==6) {
102+
codeSequence++;
103+
} else {
104+
codeSequence=0;
105+
main_view->callback(DesktopMainEventOpenFavoritePrimary, main_view->context);
106+
}
107+
} else if(event->key == InputKeyRight) {
108+
// GOES TO PASSPORT NO MATTER WHAT
109+
}
110+
if(codeSequence==8) {
111+
// UNLOCK!
112+
main_view->callback(DesktopMainEventOpenMenu, main_view->context);
113+
codeSequence=0;
114+
}
115+
} else if(event->type == InputTypeLong) {
116+
if (event->key == InputKeyOk) {
117+
main_view->callback(DesktopAnimationEventNewIdleAnimation, main_view->context);
118+
} else if(event->key == InputKeyUp) {
119+
main_view->callback(DesktopMainEventOpenFavoriteGame, main_view->context);
120+
} else if(event->key == InputKeyDown) {
121+
// main_view->callback(DesktopMainEventOpenMenu, main_view->context);
122+
} else if(event->key == InputKeyLeft) {
123+
// PREFER TO OPEN CLOCK INSTEAD OF FAVORITE PRIMARY, BUT THIS WILL DO
124+
main_view->callback(DesktopMainEventOpenFavoritePrimary, main_view->context);
125+
// main_view->callback(DesktopMainEventOpenPassport, main_view->context); THIS ONLY WORKS ON MENU RIGHT WITH NO HOLD
126+
} else if(event->key == InputKeyRight) {
127+
// THIS DOESNT WORK, PASSPORT WILL ONLY OPEN ON REGULAR RIGHT, NOTHING CAN GET ASSIGNED HERE
128+
}
68129
}
69130
}
70131

0 commit comments

Comments
 (0)