@@ -38,6 +38,15 @@ static void frequency_option_change(VariableItem* item) {
38
38
variable_item_set_current_value_text (item , frequencyStr );
39
39
}
40
40
41
+ char * volumeStr ;
42
+ static void volume_option_change (VariableItem * item ) {
43
+ struct AppContext_t * app = variable_item_get_context (item );
44
+ uint8_t index = variable_item_get_current_value_index (item );
45
+ ((struct ToneData_t * )app -> additionalData )-> volume = ((float )(index )) / 10.0f ;
46
+ snprintf (volumeStr , 5 , "%d" , (index * 10 ));
47
+ variable_item_set_current_value_text (item , volumeStr );
48
+ }
49
+
41
50
/** resets the menu, gives it content, callbacks and selection enums */
42
51
void scene_on_enter_settings_scene (void * context ) {
43
52
FURI_LOG_I (TAG , "scene_on_enter_settings_scene" );
@@ -51,6 +60,7 @@ void scene_on_enter_settings_scene(void* context) {
51
60
variable_item_list_reset (variableItemListView -> viewData );
52
61
53
62
FURI_LOG_D (TAG , "Adding options for settings" );
63
+ // Wave type setting
54
64
VariableItem * item = variable_item_list_add (
55
65
variableItemListView -> viewData ,
56
66
"Wave Type" ,
@@ -62,6 +72,7 @@ void scene_on_enter_settings_scene(void* context) {
62
72
variable_item_set_current_value_text (
63
73
item , wave_option_names [((struct ToneData_t * )app -> additionalData )-> waveType ]);
64
74
75
+ // Frequency setting
65
76
item = variable_item_list_add (
66
77
variableItemListView -> viewData ,
67
78
"Frequency" ,
@@ -75,6 +86,20 @@ void scene_on_enter_settings_scene(void* context) {
75
86
snprintf (frequencyStr , 8 , "%dhz" , ((struct ToneData_t * )app -> additionalData )-> frequency );
76
87
variable_item_set_current_value_text (item , frequencyStr );
77
88
89
+ // Volume setting
90
+ item = variable_item_list_add (
91
+ variableItemListView -> viewData , "Volume" , 11 , volume_option_change , app );
92
+ variable_item_set_current_value_index (
93
+ item , (uint8_t )(((struct ToneData_t * )app -> additionalData )-> volume * 10.0f ));
94
+
95
+ volumeStr = calloc (8 , sizeof (char ));
96
+ snprintf (
97
+ volumeStr ,
98
+ 5 ,
99
+ "%d" ,
100
+ ((uint8_t )(((struct ToneData_t * )app -> additionalData )-> volume * 100.0f )));
101
+ variable_item_set_current_value_text (item , volumeStr );
102
+
78
103
view_dispatcher_switch_to_view (app -> view_dispatcher , ToneGenAppView_VariableItemList );
79
104
}
80
105
@@ -90,4 +115,5 @@ void scene_on_exit_settings_scene(void* context) {
90
115
FURI_LOG_I (TAG , "scene_on_exit_settings_scene" );
91
116
UNUSED (context );
92
117
free (frequencyStr );
118
+ free (volumeStr );
93
119
}
0 commit comments