#pragma once

//start definition
/*
tentetive pin mapping

1-4 Lights
    1: row 1
    2: row 2
    3: row 3
    4: row 4
(value from 0-3) 


change light assignment
1: row 1 column 1
2: row 1 column 2
3: row 2 column 1
4: row 2 column 2
5: row 3 column 1
6: row 3 column 2
7: row 4 column 1
8: row 4 column 2
*/

#define DAIKIN_MAX_TEMP 32
#define DAIKIN_MIN_TEMP 16

#define YORK_MAX_TEMP 30
#define YORK_MIN_TEMP 18


#define LIGHT_ROW1_COLUMN1 10
#define LIGHT_ROW1_COLUMN2 11
#define LIGHT_ROW2_COLUMN1 9
#define LIGHT_ROW2_COLUMN2 8
#define LIGHT_ROW3_COLUMN1 3
#define LIGHT_ROW3_COLUMN2 2
#define LIGHT_ROW4_COLUMN1 0
#define LIGHT_ROW4_COLUMN2 1

/*
5: Air Purifier status (on/off)
6: Air Purifier fan speed (0-20)

lights have 4 states
0: off
1: low
2: mid
3: high

*/
#define COMPUTER_DESK_SWITCH_OUT 12

#define COMPUTER_DESK_SWITCH_IN 12

#define LIGHT_ROW1_COLUMN1_IN 4
#define LIGHT_ROW1_COLUMN2_IN 5
#define LIGHT_ROW2_COLUMN1_IN 6
#define LIGHT_ROW2_COLUMN2_IN 7
#define LIGHT_ROW3_COLUMN1_IN 0
#define LIGHT_ROW3_COLUMN2_IN 1
#define LIGHT_ROW4_COLUMN1_IN 2
#define LIGHT_ROW4_COLUMN2_IN 3

#define MOTION_FRONT 8
#define MOTION_REAR 9

//PM fanspeed setting
#define PM_FAN_SPEED_LOW 1
#define PM_FAN_SPEED_MID 5
#define PM_FAN_SPEED_HIGH 9

//
#define DISPLAY_TIMEOUT 5*60*1000 // 5 minutes

// Touch Types
#define TOUCH_TYPE_PRESS 1
#define TOUCH_TYPE_RELEASE 0

// Page IDs
#define PAGE_BOOT 0
#define PAGE_STANDBY 1
#define PAGE_DASHBOARD 2

//gmov logo size
#define COMPONENT_LOGO_500X500 0 //original size
#define COMPONENT_LOGO_260X260 1 //use for boot page loading
#define COMPONENT_LOGO_140X140 2 //use for standby page logo
#define COMPONENT_LOGO_62X62 3 //use for dashboard page top left logo

//font
#define COMPONENT_FONT_K2D_SB_24 0 //use for date
#define COMPONENT_FONT_BAIJ_B_32 1 //use for PM
#define COMPONENT_FONT_BAIJ_B_48 2 //use for time
#define COMPONENT_FONT_BAIJ_SB_80 3 //use for AC temperature
#define COMPONENT_FONT_BAIJ_B_40 4 //use for PM

//color (PCO)
#define COMPONENT_COLOR_ACTIVE_BLUE 7775
#define COMPONENT_COLOR_INACTIVE_GREY 44405
#define COMPONENT_COLOR_WHITE 65535
#define COMPONENT_COLOR_BLACK 0


//-------------BOOT PAGE----------------
//logo gmov boot
#define COMPONENT_OBJ_BOOT_LOGO 1

//boot background
#define COMPONENT_BOOT_BACKGROUND_PIC 0
#define COMPONENT_BOOT_BACKGROUND_PIC_REFERENCE 1

//-------------STANDBY PAGE----------------
//standby page object id and object name
#define COMPONENT_OBJ_STANDBY_LOGO 1 //logo
#define COMPONENT_OBJ_STANDBY_BTN_OPEN_ALL_TOGGLE 2 //s_open_all
#define COMPONENT_OBJ_STANDBY_BTN_LIGHT_TOGGLE 3 //s_light_toggle
#define COMPONENT_OBJ_STANDBY_BTN_AC_TOGGLE 4 //s_ac_toggle
#define COMPONENT_OBJ_STANDBY_BTN_PM_TOGGLE 5 //s_pm_toggle
#define COMPONENT_OBJ_STANDBY_TXT_TIME 6 //time
#define COMPONENT_OBJ_STANDBY_TXT_DATE 7 //date
#define COMPONENT_OBJ_STANDBY_TIMER_IDLE 8 //idle_timer
#define COMPONENT_OBJ_STANDBY_TXT_PM_OUTSIDE 9 //pm_out
#define COMPONENT_OBJ_STANDBY_TXT_PM_INSIDE 10 //pm_in

//---------standby page picture id and picture name------------

//Standby background
#define COMPONENT_STANDBY_PIC_BACKGROUND 2
#define COMPONENT_STANDBY_PIC_BACKGROUND_REFERENCE 3

//Standby open all toggle
#define COMPONENT_STANDBY_PIC_OPEN_ALL_TOGGLE_OFF 4
#define COMPONENT_STANDBY_PIC_OPEN_ALL_TOGGLE_OFF_PRESSED 5
#define COMPONENT_STANDBY_PIC_OPEN_ALL_TOGGLE_ON 6
#define COMPONENT_STANDBY_PIC_OPEN_ALL_TOGGLE_ON_PRESSED 7

//Standby light toggle
#define COMPONENT_STANDBY_PIC_LIGHT_TOGGLE_OFF 8
#define COMPONENT_STANDBY_PIC_LIGHT_TOGGLE_OFF_PRESSED 9
#define COMPONENT_STANDBY_PIC_LIGHT_TOGGLE_ON 10
#define COMPONENT_STANDBY_PIC_LIGHT_TOGGLE_ON_PRESSED 11

//Standby AC toggle
#define COMPONENT_STANDBY_PIC_AC_TOGGLE_OFF 12
#define COMPONENT_STANDBY_PIC_AC_TOGGLE_OFF_PRESSED 13
#define COMPONENT_STANDBY_PIC_AC_TOGGLE_ON 14
#define COMPONENT_STANDBY_PIC_AC_TOGGLE_ON_PRESSED 15

//Standby PM toggle
#define COMPONENT_STANDBY_PIC_PM_TOGGLE_OFF 16
#define COMPONENT_STANDBY_PIC_PM_TOGGLE_OFF_PRESSED 17
#define COMPONENT_STANDBY_PIC_PM_TOGGLE_ON 18
#define COMPONENT_STANDBY_PIC_PM_TOGGLE_ON_PRESSED 19

//-------------DASHBOARD PAGE----------------
//dashboard page object id and object name

//AC
#define COMPONENT_OBJ_DASHBOARD_NUM_AC_TEMP 1 //ac_temp
#define COMPONENT_OBJ_DASHBOARD_BTN_AC_TOGGLE 2 //ac_sw
#define COMPONENT_OBJ_DASHBOARD_BTN_AC_MODE 3 //ac_mode
#define COMPONENT_OBJ_DASHBOARD_BTN_AC_FAN_SPEED 4 //ac_speed
#define COMPONENT_OBJ_DASHBOARD_BTN_AC_TEMP_MINUS 5 //ac_minus
#define COMPONENT_OBJ_DASHBOARD_BTN_AC_TEMP_PLUS 6 //ac_plus

//PM
#define COMPONENT_OBJ_DASHBOARD_BTN_PM_TOGGLE 7 //pm_sw
#define COMPONENT_OBJ_DASHBOARD_TXT_PM_INSIDE 8 //pm_in
#define COMPONENT_OBJ_DASHBOARD_TXT_PM_OUTSIDE 9 //pm_out

//DECAPRICATED
#define DONTUSE_COMPONENT_OBJ_DASHBOARD_BTN_LIGHT_MASTER 10 //DONT USE THIS D_light_master

//Light Pic Holder
#define COMPONENT_OBJ_DASHBOARD_HOLDER_PIC_LIGHT_ROW1 11 //light_row1
#define COMPONENT_OBJ_DASHBOARD_HOLDER_PIC_LIGHT_ROW2 12 //light_row2
#define COMPONENT_OBJ_DASHBOARD_HOLDER_PIC_LIGHT_ROW3 13 //light_row3
#define COMPONENT_OBJ_DASHBOARD_HOLDER_PIC_LIGHT_ROW4 14 //light_row4

//Light Button
#define COMPONENT_OBJ_DASHBOARD_BTN_LIGHT_ROW1 15 //light_row1_sw
#define COMPONENT_OBJ_DASHBOARD_BTN_LIGHT_ROW2 16 //light_row2_sw
#define COMPONENT_OBJ_DASHBOARD_BTN_LIGHT_ROW3 17 //light_row3_sw
#define COMPONENT_OBJ_DASHBOARD_BTN_LIGHT_ROW4 18 //light_row4_sw

//Timer
#define COMPONENT_OBJ_DASHBOARD_TIMER_TEN_SEC 19 //time_10sec
#define COMPONENT_OBJ_DASHBOARD_VAL_TIME_PAST 20 //time_past
#define COMPONENT_OBJ_DASHBOARD_TIMER_INACTIVE_CHECK 21 //inactive_check

//System toggle
#define COMPONENT_OBJ_DASHBOARD_BTN_SYSTEM_TOGGLE 22 //system_toggle

//PM Button
#define COMPONENT_OBJ_DASHBOARD_BTN_PM_SPEED 23 //pm_speed
#define COMPONENT_OBJ_DASHBOARD_BTN_PM_MODE 24 //pm_mode

//Light Master Pic Holder
#define COMPONENT_OBJ_DASHBOARD_HOLDER_PIC_MASTER_LIGHT 25 //master_light

//Logo
#define COMPONENT_OBJ_DASHBOARD_LOGO 26 //small_ise_logo

//Lock Pic Holder
#define COMPONENT_OBJ_DASHBOARD_HOLDER_PIC_PM_LOCK 27 //pm_lock
#define COMPONENT_OBJ_DASHBOARD_HOLDER_PIC_AC_LOCK 28 //ac_lock

//Light Master Button
#define COMPONENT_OBJ_DASHBOARD_BTN_LIGHT_MASTER 29 //light_m_sw

//Light Master Hotspot
#define COMPONENT_OBJ_DASHBOARD_HOTSPOT_LIGHT_MASTER_LV1 30 //light_m_lv1
#define COMPONENT_OBJ_DASHBOARD_HOTSPOT_LIGHT_MASTER_LV2 31 //light_m_lv2
#define COMPONENT_OBJ_DASHBOARD_HOTSPOT_LIGHT_MASTER_LV3 32 //light_m_lv3

//Light Row1 Hotspot
#define COMPONENT_OBJ_DASHBOARD_HOTSPOT_LIGHT_ROW1_LV1 33 //light_row1_lv1
#define COMPONENT_OBJ_DASHBOARD_HOTSPOT_LIGHT_ROW1_LV2 34 //light_row1_lv2
#define COMPONENT_OBJ_DASHBOARD_HOTSPOT_LIGHT_ROW1_LV3 35 //light_row1_lv3

//Light Row2 Hotspot
#define COMPONENT_OBJ_DASHBOARD_HOTSPOT_LIGHT_ROW2_LV1 36 //light_row2_lv1
#define COMPONENT_OBJ_DASHBOARD_HOTSPOT_LIGHT_ROW2_LV2 37 //light_row2_lv2
#define COMPONENT_OBJ_DASHBOARD_HOTSPOT_LIGHT_ROW2_LV3 38 //light_row2_lv3

//Light Row3 Hotspot
#define COMPONENT_OBJ_DASHBOARD_HOTSPOT_LIGHT_ROW3_LV1 39 //light_row3_lv1
#define COMPONENT_OBJ_DASHBOARD_HOTSPOT_LIGHT_ROW3_LV2 40 //light_row3_lv2
#define COMPONENT_OBJ_DASHBOARD_HOTSPOT_LIGHT_ROW3_LV3 41 //light_row3_lv3

//Light Row4 Hotspot
#define COMPONENT_OBJ_DASHBOARD_HOTSPOT_LIGHT_ROW4_LV1 42 //light_row4_lv1
#define COMPONENT_OBJ_DASHBOARD_HOTSPOT_LIGHT_ROW4_LV2 43 //light_row4_lv2
#define COMPONENT_OBJ_DASHBOARD_HOTSPOT_LIGHT_ROW4_LV3 44 //light_row4_lv3

//Degree Pic Holder
#define COMPONENT_OBJ_DASHBOARD_HOLDER_PIC_C_DEGREE 45 //c_degree

//-----------------dashboard page picture id and picture name----------------

//Dashboard Background
#define COMPONENT_DASHBOARD_PIC_BACKGROUND_WITH_C 20
#define COMPONENT_DASHBOARD_PIC_BACKGROUND 21 //use this
#define COMPONENT_DASHBOARD_PIC_BACKGROUND_REFERENCE 22

//System Toggle Button
#define COMPONENT_DASHBOARD_PIC_SYSTEM_TOGGLE_OFF 23
#define COMPONENT_DASHBOARD_PIC_SYSTEM_TOGGLE_OFF_PRESSED 24
#define COMPONENT_DASHBOARD_PIC_SYSTEM_TOGGLE_ON 25
#define COMPONENT_DASHBOARD_PIC_SYSTEM_TOGGLE_ON_PRESSED 26

//AC Temperature Minus
#define COMPONENT_DASHBOARD_PIC_AC_TEMP_MINUS 27
#define COMPONENT_DASHBOARD_PIC_AC_TEMP_MINUS_PRESSED 28

//AC Temperature Plus
#define COMPONENT_DASHBOARD_PIC_AC_TEMP_PLUS 29
#define COMPONENT_DASHBOARD_PIC_AC_TEMP_PLUS_PRESSED 30

//AC Mode Cool
#define COMPONENT_DASHBOARD_PIC_AC_MODE_COOL_OFF 31
#define COMPONENT_DASHBOARD_PIC_AC_MODE_COOL_OFF_PRESSED 32
#define COMPONENT_DASHBOARD_PIC_AC_MODE_COOL_ON 33
#define COMPONENT_DASHBOARD_PIC_AC_MODE_COOL_ON_PRESSED 34

//AC Mode Dry
#define COMPONENT_DASHBOARD_PIC_AC_MODE_DRY_OFF 35
#define COMPONENT_DASHBOARD_PIC_AC_MODE_DRY_OFF_PRESSED 36
#define COMPONENT_DASHBOARD_PIC_AC_MODE_DRY_ON 37
#define COMPONENT_DASHBOARD_PIC_AC_MODE_DRY_ON_PRESSED 38

//AC Mode Fan
#define COMPONENT_DASHBOARD_PIC_AC_MODE_FAN_OFF 39
#define COMPONENT_DASHBOARD_PIC_AC_MODE_FAN_OFF_PRESSED 40
#define COMPONENT_DASHBOARD_PIC_AC_MODE_FAN_ON 41
#define COMPONENT_DASHBOARD_PIC_AC_MODE_FAN_ON_PRESSED 42

//AC Fan Speed Auto
#define COMPONENT_DASHBOARD_PIC_AC_FAN_AUTO_OFF 43
#define COMPONENT_DASHBOARD_PIC_AC_FAN_AUTO_OFF_PRESSED 44
#define COMPONENT_DASHBOARD_PIC_AC_FAN_AUTO_ON 45
#define COMPONENT_DASHBOARD_PIC_AC_FAN_AUTO_ON_PRESSED 46

//AC Fan Speed High
#define COMPONENT_DASHBOARD_PIC_AC_FAN_HIGH_OFF 47
#define COMPONENT_DASHBOARD_PIC_AC_FAN_HIGH_OFF_PRESSED 48
#define COMPONENT_DASHBOARD_PIC_AC_FAN_HIGH_ON 49
#define COMPONENT_DASHBOARD_PIC_AC_FAN_HIGH_ON_PRESSED 50

//AC Fan Speed Mid
#define COMPONENT_DASHBOARD_PIC_AC_FAN_MID_OFF 51
#define COMPONENT_DASHBOARD_PIC_AC_FAN_MID_OFF_PRESSED 52  
#define COMPONENT_DASHBOARD_PIC_AC_FAN_MID_ON 53
#define COMPONENT_DASHBOARD_PIC_AC_FAN_MID_ON_PRESSED 54

//AC Fan Speed Low
#define COMPONENT_DASHBOARD_PIC_AC_FAN_LOW_OFF 55
#define COMPONENT_DASHBOARD_PIC_AC_FAN_LOW_OFF_PRESSED 56
#define COMPONENT_DASHBOARD_PIC_AC_FAN_LOW_ON 57
#define COMPONENT_DASHBOARD_PIC_AC_FAN_LOW_ON_PRESSED 58

//AC Toggle Button
#define COMPONENT_DASHBOARD_PIC_AC_TOGGLE_OFF 59
#define COMPONENT_DASHBOARD_PIC_AC_TOGGLE_OFF_PRESSED 60
#define COMPONENT_DASHBOARD_PIC_AC_TOGGLE_ON 61
#define COMPONENT_DASHBOARD_PIC_AC_TOGGLE_ON_PRESSED 62

//PM Toggle Button
#define COMPONENT_DASHBOARD_PIC_PM_TOGGLE_OFF 63
#define COMPONENT_DASHBOARD_PIC_PM_TOGGLE_OFF_PRESSED 64
#define COMPONENT_DASHBOARD_PIC_PM_TOGGLE_ON 65
#define COMPONENT_DASHBOARD_PIC_PM_TOGGLE_ON_PRESSED 66

//Light Switch Button
#define COMPONENT_DASHBOARD_PIC_LIGHT_SWITCH_OFF 67
#define COMPONENT_DASHBOARD_PIC_LIGHT_SWITCH_OFF_PRESSED 68
#define COMPONENT_DASHBOARD_PIC_LIGHT_SWITCH_ON 69
#define COMPONENT_DASHBOARD_PIC_LIGHT_SWITCH_ON_PRESSED 70

//Light Row Level
#define COMPONENT_DASHBOARD_PIC_LIGHT_ROW_LEVEL_0 71
#define COMPONENT_DASHBOARD_PIC_LIGHT_ROW_LEVEL_1 72
#define COMPONENT_DASHBOARD_PIC_LIGHT_ROW_LEVEL_2 73
#define COMPONENT_DASHBOARD_PIC_LIGHT_ROW_LEVEL_3 74

//Light Master Switch Button
#define COMPONENT_DASHBOARD_PIC_LIGHT_MASTER_OFF 75
#define COMPONENT_DASHBOARD_PIC_LIGHT_MASTER_OFF_PRESSED 76
#define COMPONENT_DASHBOARD_PIC_LIGHT_MASTER_ON 77
#define COMPONENT_DASHBOARD_PIC_LIGHT_MASTER_ON_PRESSED 78

//Light Master Level
#define COMPONENT_DASHBOARD_PIC_LIGHT_MASTER_LEVEL_D 79
#define COMPONENT_DASHBOARD_PIC_LIGHT_MASTER_LEVEL_0 80
#define COMPONENT_DASHBOARD_PIC_LIGHT_MASTER_LEVEL_1 81
#define COMPONENT_DASHBOARD_PIC_LIGHT_MASTER_LEVEL_2 82
#define COMPONENT_DASHBOARD_PIC_LIGHT_MASTER_LEVEL_3 83

//Lock Pic
#define COMPONENT_DASHBOARD_PIC_LOCK 84
#define COMPONENT_DASHBOARD_PIC_UNLOCK 85

//Degree Pic
#define COMPONENT_DASHBOARD_PIC_DEGREE_C_OFF 86
#define COMPONENT_DASHBOARD_PIC_DEGREE_C_ON 87















//-----------------DECAPRICATED----------------

//boot page

//logo gmov boot
#define OLD_COMP_LOGO_BOOT 1
#define OLD_COMP_LOGO_BOOT_VID 1

//boot background
#define OLD_COMP_BACKGROUND_BOOT_PIC 43


//standby page object id
#define OLD_COMP_LOGO_STANDBY 1
#define OLD_COMP_LOGO_STANDBY_VID 2

#define OLD_COMP_STANDBY_OPEN_ALL_TOGGLE 2
#define OLD_COMP_STANDBY_LIGHT_TOGGLE 3
#define OLD_COMP_STANDBY_AC_TOGGLE 4
#define OLD_COMP_STANDBY_PM_TOGGLE 5

//text
#define OLD_COMP_STANDBY_TIME_TXT 6
#define OLD_COMP_STANDBY_DATE_TXT 7
#define OLD_COMP_STANDBY_OUTSIDE_TEMP_TXT 8

#define OLD_COMP_STANDBY_TIMER 9
#define OLD_COMP_STANDBY_WEATHER_ICON 10

//standby page picture id
#define OLD_COMP_BACKGROUND_PIC 44
#define OLD_COMP_BACKGROUND_REFERENCE_PIC 45

#define OLD_COMP_STANDBY_OPEN_ALL_TOGGLE_PIC_OFF 46
#define OLD_COMP_STANDBY_OPEN_ALL_TOGGLE_PIC_OFF_PRESSED 47
#define OLD_COMP_STANDBY_OPEN_ALL_TOGGLE_PIC_ON 48
#define OLD_COMP_STANDBY_OPEN_ALL_TOGGLE_PIC_ON_PRESSED 49

#define OLD_COMP_STANDBY_AC_PIC_OFF 50
#define OLD_COMP_STANDBY_AC_PIC_OFF_PRESSED 51
#define OLD_COMP_STANDBY_AC_PIC_ON 52
#define OLD_COMP_STANDBY_AC_PIC_ON_PRESSED 53

#define OLD_COMP_STANDBY_LIGHT_PIC_OFF 54
#define OLD_COMP_STANDBY_LIGHT_PIC_OFF_PRESSED 55
#define OLD_COMP_STANDBY_LIGHT_PIC_ON 56
#define OLD_COMP_STANDBY_LIGHT_PIC_ON_PRESSED 57

#define OLD_COMP_STANDBY_PM_PIC_OFF 58
#define OLD_COMP_STANDBY_PM_PIC_OFF_PRESSED 59
#define OLD_COMP_STANDBY_PM_PIC_ON 60
#define OLD_COMP_STANDBY_PM_PIC_ON_PRESSED 61

#define OLD_COMP_REFERENCE_BACKGROUND_PIC 62



//dashboard page

//dashboard page object id 
#define OLD_COMP_AC_TOGGLE_BUTTON 3
#define OLD_COMP_AC_MODE 4
#define OLD_COMP_AC_FAN_SPEED 5
#define OLD_COMP_AC_TEMP_DOWN_BUTTON 6
#define OLD_COMP_AC_TEMP_UP_BUTTON 7

#define OLD_COMP_PM_TOGGLE_BUTTON 8
#define OLD_COMP_PM_FAN_SPEED_DECREASE 9
#define OLD_COMP_PM_FAN_SPEED_INCREASE 10

#define OLD_COMP_PM_INSIDE_TXT 11
#define OLD_COMP_PM_OUTSIDE_TXT 12

#define OLD_COMP_LIGHT_MASTER_BUTTON 13
#define OLD_COMP_LIGHT_ROW1_PIC_PLACEHOLDER 14
#define OLD_COMP_LIGHT_ROW2_PIC_PLACEHOLDER 15
#define OLD_COMP_LIGHT_ROW3_PIC_PLACEHOLDER 16
#define OLD_COMP_LIGHT_ROW4_PIC_PLACEHOLDER 17

#define OLD_COMP_LIGHT_MASTER_LEVEL1_TOUCHPOINT 18
#define OLD_COMP_LIGHT_MASTER_LEVEL2_TOUCHPOINT 19
#define OLD_COMP_LIGHT_MASTER_LEVEL3_TOUCHPOINT 20

#define OLD_COMP_DASHBOARD_TIME_TXT 21
#define OLD_COMP_DASHBOARD_DATE_TXT 22
#define OLD_COMP_DASHBOARD_OUTSIDE_TEMP_TXT 23

#define OLD_COMP_LIGHT_ROW1_SLIDER 24
#define OLD_COMP_LIGHT_ROW2_SLIDER 25
#define OLD_COMP_LIGHT_ROW3_SLIDER 26
#define OLD_COMP_LIGHT_ROW4_SLIDER 27

#define OLD_COMP_LIGHT_ROW1_SWITCH 28
#define OLD_COMP_LIGHT_ROW2_SWITCH 29
#define OLD_COMP_LIGHT_ROW3_SWITCH 30
#define OLD_COMP_LIGHT_ROW4_SWITCH 31

#define OLD_COMP_DASHBOARD_WEATHER_ICON 32


//dashboard page picture id

#define OLD_COMP_DASHBOARD_REFERENCE_BACKGROUND_PIC 0
#define OLD_COMP_DASHBOARD_BACKGROUND_PIC 1
#define OLD_COMP_DASHBOARD_BACKGROUND_VARIANT_PIC 2

//AC on/off
#define OLD_COMP_AC_TOGGLE_PIC_OFF 3
#define OLD_COMP_AC_TOGGLE_PIC_OFF_PRESSED 4
#define OLD_COMP_AC_TOGGLE_PIC_ON 5
#define OLD_COMP_AC_TOGGLE_PIC_ON_PRESSED 6
#define OLD_COMP_AC_TEMP_DOWN_PIC 7
#define OLD_COMP_AC_TEMP_DOWN_PIC_PRESSED 8
#define OLD_COMP_AC_TEMP_UP_PIC 9
#define OLD_COMP_AC_TEMP_UP_PIC_PRESSED 10

#define OLD_COMP_AC_FAN_MODE_AUTO_PIC 11
#define OLD_COMP_AC_FAN_MODE_AUTO_PIC_PRESSED 12
#define OLD_COMP_AC_FAN_MODE_HIGH_PIC 13
#define OLD_COMP_AC_FAN_MODE_HIGH_PIC_PRESSED 14
#define OLD_COMP_AC_FAN_MODE_MID_PIC 15
#define OLD_COMP_AC_FAN_MODE_MID_PIC_PRESSED 16
#define OLD_COMP_AC_FAN_MODE_LOW_PIC 17
#define OLD_COMP_AC_FAN_MODE_LOW_PIC_PRESSED 18

#define OLD_COMP_AC_MODE_DRY_PIC 19
#define OLD_COMP_AC_MODE_DRY_PIC_PRESSED 20
#define OLD_COMP_AC_MODE_COOL_PIC 21
#define OLD_COMP_AC_MODE_COOL_PIC_PRESSED 22
#define OLD_COMP_AC_MODE_FAN_PIC 23
#define OLD_COMP_AC_MODE_FAN_PIC_PRESSED 24

//pm; air purifier 
#define OLD_COMP_PM_TOGGLE_PIC_OFF 25
#define OLD_COMP_PM_TOGGLE_PIC_OFF_PRESSED 26
#define OLD_COMP_PM_TOGGLE_PIC_ON 27
#define OLD_COMP_PM_TOGGLE_PIC_ON_PRESSED 28

#define OLD_COMP_PM_FAN_SPEED_DECREASE_PIC 29
#define OLD_COMP_PM_FAN_SPEED_DECREASE_PIC_PRESSED 30
#define OLD_COMP_PM_FAN_SPEED_INCREASE_PIC 31
#define OLD_COMP_PM_FAN_SPEED_INCREASE_PIC_PRESSED 32

//AC status indicator 
#define OLD_COMP_AC_STATUS_OFF 33
#define OLD_COMP_AC_STATUS_ON 34

//light master
#define OLD_COMP_LIGHT_MASTER_OFF 35
#define OLD_COMP_LIGHT_MASTER_OFF_PRESSED 36
#define OLD_COMP_LIGHT_MASTER_ON 37
#define OLD_COMP_LIGHT_MASTER_ON_PRESSED 38

//light level component
#define OLD_COMP_LIGHT_LEVEL_0 39
#define OLD_COMP_LIGHT_LEVEL_1 40
#define OLD_COMP_LIGHT_LEVEL_2 41
#define OLD_COMP_LIGHT_LEVEL_3 42


//weather icon legend
#define OLD_COMP_WEATHER_ICON_FAIR_DAY 63
#define OLD_COMP_WEATHER_ICON_FAIR_NIGHT 64
#define OLD_COMP_WEATHER_ICON_CLOUDY 65
#define OLD_COMP_WEATHER_ICON_CLEARSKY_DAY 66
#define OLD_COMP_WEATHER_ICON_CLEARSKY_NIGHT 67
#define OLD_COMP_WEATHER_ICON_PARTLYCLOUDY_DAY 68
#define OLD_COMP_WEATHER_ICON_PARTLYCLOUDY_NIGHT 69
#define OLD_COMP_WEATHER_ICON_HEAVY_RAIN 70
#define OLD_COMP_WEATHER_ICON_HEAVY_RAIN_AND_THUNDER 71
#define OLD_COMP_WEATHER_ICON_RAIN_AND_THUNDER 72
#define OLD_COMP_WEATHER_ICON_RAIN 73
#define OLD_COMP_WEATHER_ICON_LIGHT_RAIN 74
#define OLD_COMP_WEATHER_ICON_FOG 75


//need to toggle 4 row of light independently and have one master switch that can control all

//need to toggle AC on/off, fan speed, mode, and temperature

//need to toggle air purifier on/off and fan speed

//display pm2.5 both outside and inside

//need to display time, date, and outside temperature for standby and dashbaord page in separate value


// Function to update date and time on screen-> void updateDateTimeText();

// Function to receieve touch input -> void handleTouch(uint8_t page, uint8_t component, uint8_t touch_type);

// Touch input will call a function that update the light at its respective row -> void setLightLevel(uint8_t row, uint8_t level);

// Function to React to change in light, contactor -> void handlePWMChange(uint8_t pin, bool state, uint16_t value);

// Function to Set AC state -> void setACstate(uint8_t ac_fan_speed, uint8_t ac_mode, uint8_t ac_temperature);

// Function to Set Air Purifier ->  setPMstate(bool is_pm_on, uint8_t pm_fan_speed);

// Function to update pm2.5 inside on screen -> void updatePMinside(); // get internal info from HA's air purifier sensor
// Function to update pm2.5 outside on screen -> void updatePMoutside(); // call API

// Function to get weather forcast and outside temperature and update screen -> void handleWeatherCallback();
