2023-03-28 08:39:00 -04:00
/*
* Copyright ( C ) 2015 Jared Boone , ShareBrained Technology , Inc .
* Copyright ( C ) 2023 Bernd Herzog
*
* This file is part of PortaPack .
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 2 , or ( at your option )
* any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program ; see the file COPYING . If not , write to
* the Free Software Foundation , Inc . , 51 Franklin Street ,
* Boston , MA 02110 - 1301 , USA .
*/
# ifndef __UI_FLSH_UITILTY_H__
# define __UI_FLSH_UITILTY_H__
# include "ui_widget.hpp"
# include "ui_navigation.hpp"
# include "string_format.hpp"
# include "ff.h"
# include "baseband_api.hpp"
# include "core_control.hpp"
2024-01-03 08:05:24 -05:00
# include "untar.hpp"
2023-03-28 08:39:00 -04:00
# include <cstdint>
namespace ui {
class FlashUtilityView : public View {
2023-05-18 16:16:05 -04:00
public :
FlashUtilityView ( NavigationView & nav ) ;
2023-03-28 08:39:00 -04:00
2023-05-18 16:16:05 -04:00
void focus ( ) override ;
2023-03-28 08:39:00 -04:00
2023-06-29 12:24:18 -04:00
std : : string title ( ) const override { return " Flash Utility " ; } ;
2023-03-28 08:39:00 -04:00
2023-05-18 16:16:05 -04:00
private :
NavigationView & nav_ ;
2023-03-28 08:39:00 -04:00
2023-05-18 16:16:05 -04:00
bool confirmed = false ;
static Thread * thread ;
2023-03-28 08:39:00 -04:00
2023-05-18 16:16:05 -04:00
Labels labels {
{ { 4 , 4 } , " Select firmware to flash: " , Color : : white ( ) } } ;
MenuView menu_view {
{ 0 , 2 * 8 , 240 , 26 * 8 } ,
true } ;
2024-01-03 08:05:24 -05:00
std : : filesystem : : path extract_tar ( std : : filesystem : : path : : string_type path ) ; // extracts the tar file, and returns the firmware.bin path from it. empty string if no fw
2023-05-18 16:16:05 -04:00
void firmware_selected ( std : : filesystem : : path : : string_type path ) ;
void flash_firmware ( std : : filesystem : : path : : string_type path ) ;
2024-01-03 08:05:24 -05:00
bool endsWith ( const std : : u16string & str , const std : : u16string & suffix ) ;
2023-03-28 08:39:00 -04:00
} ;
} /* namespace ui */
2023-05-18 16:16:05 -04:00
# endif /*__UI_FLSH_UITILTY_H__*/