| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #include "../mass_storage_app_i.h"
- static const struct {
- char* name;
- uint32_t value;
- } image_size[] = {
- {"1.44M", 1440 * 1024},
- {"2M", 2 * 1024 * 1024},
- {"4M", 4 * 1024 * 1024},
- {"8M", 8 * 1024 * 1024},
- {"16M", 16 * 1024 * 1024},
- {"32M", 32 * 1024 * 1024},
- {"64M", 64 * 1024 * 1024},
- };
- static void mass_storage_item_select(void* context, uint32_t index) {
- MassStorageApp* app = context;
- if(index == 0) {
- view_dispatcher_send_custom_event(app->view_dispatcher, MassStorageCustomEventFileSelect);
- } else {
- view_dispatcher_send_custom_event(app->view_dispatcher, MassStorageCustomEventNewImage);
- }
- }
- static void mass_storage_image_size(VariableItem* item) {
- MassStorageApp* app = variable_item_get_context(item);
- uint8_t index = variable_item_get_current_value_index(item);
- variable_item_set_current_value_text(item, image_size[index].name);
- app->new_file_size = image_size[index].value;
- }
- void mass_storage_scene_start_on_enter(void* context) {
- MassStorageApp* app = context;
- VariableItem* item =
- variable_item_list_add(app->variable_item_list, "Select disc image", 0, NULL, NULL);
- item = variable_item_list_add(
- app->variable_item_list, "New image", COUNT_OF(image_size), mass_storage_image_size, app);
- variable_item_list_set_enter_callback(app->variable_item_list, mass_storage_item_select, app);
- variable_item_set_current_value_index(item, 2);
- variable_item_set_current_value_text(item, image_size[2].name);
- app->new_file_size = image_size[2].value;
- view_dispatcher_switch_to_view(app->view_dispatcher, MassStorageAppViewStart);
- }
- bool mass_storage_scene_start_on_event(void* context, SceneManagerEvent event) {
- UNUSED(context);
- UNUSED(event);
- MassStorageApp* app = context;
- if(event.type == SceneManagerEventTypeCustom) {
- if(event.event == MassStorageCustomEventFileSelect) {
- scene_manager_next_scene(app->scene_manager, MassStorageSceneFileSelect);
- } else if(event.event == MassStorageCustomEventNewImage) {
- scene_manager_next_scene(app->scene_manager, MassStorageSceneFileName);
- }
- }
- return false;
- }
- void mass_storage_scene_start_on_exit(void* context) {
- UNUSED(context);
- MassStorageApp* app = context;
- variable_item_list_reset(app->variable_item_list);
- }
|