#ifndef MAIN_H_
#define MAIN_H_

/* 
==================================
	 version1="2026-09-07";
==================================
*/

#include <Arduino.h>


#include <FS.h>
#include "SD.h"
#include <Wire.h>
#include <stdint.h>

#include <bouton.h>
#include <Free_Fonts.h>
#include "Couleurs_AEC.h"

#include "TFT_eSPI.h"
#include "SPI.h"
#include <XPT2046_Touchscreen.h>


// pour obtenir ces valeurs simplement, ouvrir une image bmp565 320x240 (ok) avec l'éditeur Hexa ImHex (Linux)
// sélectionner la partie entête, puis File/export/Text Formatted Bytes/C++ Array
// ce qui est vachement pratique !
const uint8_t bmp565_header[] PROGMEM = 
{
    0x42, 0x4D, 0x8A, 0x58, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x00, 0x7C, 0x00, 
    0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x10, 0x00, 0x03, 0x00, 
    0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x23, 0x2E, 0x00, 0x00, 0x23, 0x2E, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x00, 0x1F, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x47, 0x52, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
};
// soit 138 octets


void TS_calibrate();  // calibrage de l'écran tactile
//void init_SDcard();
uint16_t read_16(File fp);
uint32_t read_32(File fp);
//void affi_image_from_SD(String filename, uint16_t x0, uint16_t y0);
//void write_fichier_params();// sur la SDcard
//String read_line_params(uint16_t line_num);
//int32_t extract_params(String ligne, String label);
//void read_params(); // lecture du fichier '/params.txt' en SD	
void init_WiFi();
void httpGetParams(); 
void httpGet_num_airport(); // envoie requete au serveur
void interroge_WiFi();
void requete_WiFi_3();
void affi_train(uint16_t couleur_i); // "Les trois vertes !"
void set_params();
void init_panels();
void init_affichages();
void affi_message1();
void get_XY_touch();
void traite_affi_etiquette_info();
void affi_page_info();
void toutes_les_1s();
void affi_flags();
void affi_options_nav();
void traitement_boutons_graphiques();
void init_1_bouton(uint8_t n_font, uint16_t xi, uint16_t yi, uint8_t dx, uint8_t dy, String si, TOUCH_BOUTON *bouton_i);
void trace_sinusoide();
void setup();
void get_XY_touch(); // pour affi 320 x 240px
void loop(); 


#endif