diff --git a/binaries/KaRadio32.bin b/binaries/KaRadio32.bin index 6fe2cfbe..7ef49d76 100644 Binary files a/binaries/KaRadio32.bin and b/binaries/KaRadio32.bin differ diff --git a/components/audio_player/audio_player.c b/components/audio_player/audio_player.c index ddff40f9..617857f4 100644 --- a/components/audio_player/audio_player.c +++ b/components/audio_player/audio_player.c @@ -107,7 +107,6 @@ static int start_decoder_task(player_t *player) player->decoder_status = RUNNING; } - spiRamFifoReset(); ESP_LOGD(TAG, "decoder task created: %s", task_name); return 0; @@ -193,7 +192,6 @@ void audio_player_stop() if (get_audio_output_mode() != VS1053)renderer_stop(); player_instance->command = CMD_NONE; player_status = STOPPED; - } component_status_t get_player_status() diff --git a/main/addon.c b/main/addon.c index a34b1a68..0f02a310 100644 --- a/main/addon.c +++ b/main/addon.c @@ -153,7 +153,6 @@ static void ClearBuffer() static int16_t DrawString(int16_t x, int16_t y, const char *str) { -// if (lcd_type == LCD_NONE) return -1; if (isColor) return ucg_DrawString(&ucg,x,y,0,str); else @@ -162,7 +161,6 @@ static int16_t DrawString(int16_t x, int16_t y, const char *str) static void DrawColor(uint8_t color, uint8_t r, uint8_t g, uint8_t b) { -// if (lcd_type == LCD_NONE) return; if (isColor) ucg_SetColor(&ucg, 0,r,g,b); else @@ -171,7 +169,6 @@ static void DrawColor(uint8_t color, uint8_t r, uint8_t g, uint8_t b) static void DrawBox(ucg_int_t x, ucg_int_t y, ucg_int_t w, ucg_int_t h) { -// if (lcd_type == LCD_NONE) return; if (isColor) ucg_DrawBox(&ucg, x,y,w,h); else @@ -180,7 +177,6 @@ static void DrawBox(ucg_int_t x, ucg_int_t y, ucg_int_t w, ucg_int_t h) uint16_t GetWidth() { -// if (lcd_type == LCD_NONE) return 0; if (isColor) return ucg_GetWidth(&ucg); @@ -188,7 +184,6 @@ uint16_t GetWidth() } uint16_t GetHeight() { -// if (lcd_type == LCD_NONE) return 0; if (isColor) return ucg_GetHeight(&ucg); @@ -522,8 +517,7 @@ static void evtClearScreen() event_lcd_t evt; evt.lcmd = eclrs; evt.lline = NULL; -// xQueueSendToFront(event_lcd,&evt, 0); - xQueueSend(event_lcd,&evt, 0); + if (lcd_type != LCD_NONE) xQueueSend(event_lcd,&evt, 0); } static void evtScreen(typelcmd value) @@ -531,7 +525,7 @@ static void evtScreen(typelcmd value) event_lcd_t evt; evt.lcmd = escreen; evt.lline = (char*)((uint32_t)value); - xQueueSend(event_lcd,&evt, 0); + if (lcd_type != LCD_NONE) xQueueSend(event_lcd,&evt, 0); } @@ -540,7 +534,7 @@ static void evtStation(int16_t value) event_lcd_t evt; evt.lcmd = estation; evt.lline = (char*)((uint32_t)value); - xQueueSend(event_lcd,&evt, 0); + if (lcd_type != LCD_NONE) xQueueSend(event_lcd,&evt, 0); } // toggle main / time @@ -549,7 +543,7 @@ static void toggletime() event_lcd_t evt; evt.lcmd = etoggle; evt.lline = NULL; - xQueueSend(event_lcd,&evt, 0); + if (lcd_type != LCD_NONE) xQueueSend(event_lcd,&evt, 0); } //---------------------------- @@ -1267,15 +1261,20 @@ void task_addon(void *pvParams) // queue for events of the IR nec rx event_ir = xQueueCreate(5, sizeof(event_ir_t)); ESP_LOGD(TAG,"event_ir: %x",(int)event_ir); - // queue for events of the lcd - event_lcd = xQueueCreate(20, sizeof(event_lcd_t)); - ESP_LOGD(TAG,"event_lcd: %x",(int)event_lcd); - + xTaskCreatePinnedToCore(rmt_nec_rx_task, "rmt_nec_rx_task", 2148, NULL, PRIO_RMT, &pxCreatedTask,CPU_RMT); ESP_LOGI(TAG, "%s task: %x","rmt_nec_rx_task",(unsigned int)pxCreatedTask); ; - xTaskCreatePinnedToCore (task_lcd, "task_lcd", 2200, NULL, PRIO_LCD, &pxTaskLcd,CPU_LCD); - ESP_LOGI(TAG, "%s task: %x","task_lcd",(unsigned int)pxTaskLcd); - getTaskLcd(&pxTaskLcd); // give the handle to xpt + + if (g_device->lcd_type!=LCD_NONE) + { + // queue for events of the lcd + event_lcd = xQueueCreate(20, sizeof(event_lcd_t)); + ESP_LOGD(TAG,"event_lcd: %x",(int)event_lcd); + + xTaskCreatePinnedToCore (task_lcd, "task_lcd", 2200, NULL, PRIO_LCD, &pxTaskLcd,CPU_LCD); + ESP_LOGI(TAG, "%s task: %x","task_lcd",(unsigned int)pxTaskLcd); + getTaskLcd(&pxTaskLcd); // give the handle to xpt + } while (1) { @@ -1423,7 +1422,7 @@ void addonParse(const char *fmt, ...) evt.lcmd = lovol; evt.lline = NULL; } - if (evt.lcmd != -1) xQueueSend(event_lcd,&evt, 0); + if (evt.lcmd != -1 && lcd_type !=LCD_NONE) xQueueSend(event_lcd,&evt, 0); free (line); } diff --git a/main/custom.c b/main/custom.c index 7feec535..dfc78fc4 100644 --- a/main/custom.c +++ b/main/custom.c @@ -73,6 +73,7 @@ void backlight_percentage_set(int value) { if (lcdb != GPIO_NONE) { + if (value > 100) value = 100; int duty = DUTY_MAX * (value * 0.01f); // printf("backlight_percentage_set %d\n",value); ledc_set_fade_with_time(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0, duty, 20); diff --git a/main/include/interface.h b/main/include/interface.h index 6afc6f54..5eaddb99 100644 --- a/main/include/interface.h +++ b/main/include/interface.h @@ -17,7 +17,7 @@ #define RELEASE "1.9" -#define REVISION "8" +#define REVISION "9" uint32_t checkUart(uint32_t speed); extern unsigned short adcdiv; diff --git a/main/include/vs1053.h b/main/include/vs1053.h index 510ef139..aca8d422 100644 --- a/main/include/vs1053.h +++ b/main/include/vs1053.h @@ -73,7 +73,7 @@ int VS1053_SendMusicBytes(uint8_t* music,uint16_t quantity); uint16_t VS1053_GetBitrate(); uint16_t VS1053_GetSampleRate(); uint16_t VS1053_GetDecodeTime(); -void VS1053_flush_cancel(uint8_t mode);// 0 only fillbyte 1 before play 2 close play +void VS1053_flush_cancel(); void VS1053_spi_init(); // admix plugin control void VS1053_SetVolumeLine(int16_t vol); diff --git a/main/vs1053.c b/main/vs1053.c index 5396f307..512c235a 100644 --- a/main/vs1053.c +++ b/main/vs1053.c @@ -148,10 +148,7 @@ bool VS1053_HW_init() gpio_conf.intr_type = GPIO_INTR_DISABLE; gpio_conf.pin_bit_mask = ((uint64_t)(((uint64_t)1)<0) ESP_LOGI(TAG,"timeout: %d",time_out); +} void VS1053_spi_write_char(uint8_t *cbyte, uint16_t len) { @@ -182,14 +188,12 @@ void VS1053_spi_write_char(uint8_t *cbyte, uint16_t len) t.tx_buffer = cbyte; t.length= len*8; //t.rxlength=0; - while(VS1053_checkDREQ() == 0)taskYIELD (); + while(gpio_get_level(dreq) == 0 )taskYIELD(); spi_take_semaphore(hsSPI); ret = spi_device_transmit(hvsspi, &t); //Transmit! if (ret != ESP_OK) ESP_LOGE(TAG,"err: %d, VS1053_spi_write_char(len: %d)",ret,len); spi_give_semaphore(hsSPI); - while(VS1053_checkDREQ() == 0); - //printf("VS1053_spi_write val: %x rxlen: %x \n",*cbyte,t.rxlength); - // return ret; +// while(gpio_get_level(dreq) == 0 ); } void VS1053_WriteRegister(uint8_t addressbyte, uint8_t highbyte, uint8_t lowbyte) @@ -206,13 +210,13 @@ void VS1053_WriteRegister(uint8_t addressbyte, uint8_t highbyte, uint8_t lowbyte t.tx_data[0] = highbyte; t.tx_data[1] = lowbyte; t.length= 16; - while(VS1053_checkDREQ() == 0)taskYIELD (); + WaitDREQ(); spi_take_semaphore(vsSPI); // ESP_ERROR_CHECK(spi_device_transmit(vsspi, &t)); //Transmit! ret = spi_device_transmit(vsspi, &t); //Transmit! if (ret != ESP_OK) ESP_LOGE(TAG,"err: %d, VS1053_WriteRegister(%d,%d,%d)",ret,addressbyte,highbyte,lowbyte); spi_give_semaphore(vsSPI); - while(VS1053_checkDREQ() == 0); + WaitDREQ(); } void VS1053_WriteRegister16(uint8_t addressbyte, uint16_t value) @@ -229,13 +233,13 @@ void VS1053_WriteRegister16(uint8_t addressbyte, uint16_t value) t.tx_data[0] = (value>>8)&0xff; t.tx_data[1] = value&0xff; t.length= 16; - while(VS1053_checkDREQ() == 0)taskYIELD (); + WaitDREQ(); spi_take_semaphore(vsSPI); // ESP_ERROR_CHECK(spi_device_transmit(vsspi, &t)); //Transmit! ret = spi_device_transmit(vsspi, &t); //Transmit! if (ret != ESP_OK) ESP_LOGE(TAG,"err: %d, VS1053_WriteRegister16(%d,%d)",ret,addressbyte,value); spi_give_semaphore(vsSPI); - while(VS1053_checkDREQ() == 0); + WaitDREQ(); } @@ -249,14 +253,14 @@ uint16_t VS1053_ReadRegister(uint8_t addressbyte){ t.flags |= SPI_TRANS_USE_RXDATA ; t.cmd = VS_READ_COMMAND; t.addr = addressbyte; - while(VS1053_checkDREQ() == 0) taskYIELD (); + WaitDREQ(); spi_take_semaphore(vsSPI); ret = spi_device_transmit(vsspi, &t); //Transmit! if (ret != ESP_OK) ESP_LOGE(TAG,"err: %d, VS1053_ReadRegister(%d), read: %d",ret,addressbyte,(uint32_t)*t.rx_data); result = (((t.rx_data[0]&0xFF)<<8) | ((t.rx_data[1])&0xFF)) ; // ESP_LOGI(TAG,"VS1053_ReadRegister data: %d %d %d %d",t.rx_data[0],t.rx_data[1],t.rx_data[2],t.rx_data[3]); spi_give_semaphore(vsSPI); - while(VS1053_checkDREQ() == 0); + WaitDREQ(); return result; } @@ -272,7 +276,7 @@ void VS1053_ResetChip(){ vTaskDelay(30); ControlReset(RESET); vTaskDelay(10); - if (VS1053_checkDREQ() == 1) return; + if (CheckDREQ() == 1) return; vTaskDelay(30); } @@ -327,7 +331,7 @@ void VS1053_Start(){ ControlReset(RESET); vTaskDelay(200); //Check DREQ - if (VS1053_checkDREQ() == 0) + if (CheckDREQ() == 0) { vsVersion = 0; ESP_LOGE(TAG,"NO VS1053 detected"); @@ -376,22 +380,21 @@ void VS1053_Start(){ // VS1053_WriteRegister(SPI_CLOCKF,0x78,0x00); // SC_MULT = x3, SC_ADD= x2 // VS1053_WriteRegister16(SPI_CLOCKF,0xB800); // SC_MULT = x1, SC_ADD= x1 VS1053_WriteRegister16(SPI_CLOCKF,0x8800); // SC_MULT = x3.5, SC_ADD= x1 -// VS1053_WriteRegister(SPI_CLOCKF,0x90,0x00); // SC_MULT = x3.5, SC_ADD= x1.5 else VS1053_WriteRegister16(SPI_CLOCKF,0xB000); //VS1053_SoftwareReset VS1053_WriteRegister(SPI_MODE, (SM_SDINEW|SM_LINE1)>>8,SM_RESET); VS1053_WriteRegister(SPI_MODE, (SM_SDINEW|SM_LINE1)>>8, SM_LAYER12); //mode - while(VS1053_checkDREQ() == 0)taskYIELD (); + WaitDREQ(); VS1053_regtest(); // enable I2C dac output of the vs1053 if (vsVersion == 4) // only 1053 { - VS1053_WriteRegister16(SPI_WRAMADDR, 0xc017); // - VS1053_WriteRegister16(SPI_WRAM, 0x00F0); // + VS1053_WriteRegister16(SPI_WRAMADDR, 0xc017); + VS1053_WriteRegister16(SPI_WRAM, 0x00F0); VS1053_I2SRate(g_device->i2sspeed); // plugin patch @@ -413,17 +416,14 @@ void VS1053_Start(){ int VS1053_SendMusicBytes(uint8_t* music, uint16_t quantity){ if(quantity ==0) return 0; int oo = 0; -// while(VS1053_checkDREQ() == 0);taskYIELD (); + while(quantity) { -// if(VS1053_checkDREQ()) - { - int t = quantity; - if(t > CHUNK) t = CHUNK; - VS1053_spi_write_char(&music[oo], t); - oo += t; - quantity -= t; - } // else taskYIELD (); + int t = quantity; + if(t > CHUNK) t = CHUNK; + VS1053_spi_write_char(&music[oo], t); + oo += t; + quantity -= t; } return oo; } @@ -610,41 +610,32 @@ uint16_t VS1053_GetSampleRate(){ } /* to start and stop a new stream */ -void VS1053_flush_cancel(uint8_t mode) { // 0 only fillbyte 1 before play 2 cancel play -// int8_t endFillByte = (int8_t) (Mp3ReadWRAM(para_endFillByte) & 0xFF); +void VS1053_flush_cancel() { int8_t endFillByte ; int16_t y; - uint8_t buf[513]; - if (mode != 2) - { - VS1053_WriteRegister(SPI_WRAMADDR,MaskAndShiftRight(para_endFillByte,0xFF00,8), (para_endFillByte & 0x00FF) ); - endFillByte = (int8_t) VS1053_ReadRegister(SPI_WRAM) & 0xFF; - for (y = 0; y < 513; y++) buf[y] = endFillByte; - } - - if (mode != 0) //set CANCEL - { + uint8_t buf[514]; + // set spimode with SM_CANCEL uint16_t spimode = VS1053_ReadRegister(SPI_MODE)| SM_CANCEL; // set CANCEL VS1053_WriteRegister(SPI_MODE,MaskAndShiftRight(spimode,0xFF00,8), (spimode & 0x00FF) ); // wait CANCEL + endFillByte = (int8_t) VS1053_ReadRegister(SPI_WRAM) & 0xFF; + for (y = 0; y < 33; y++) buf[y] = endFillByte; y = 0; while (VS1053_ReadRegister(SPI_MODE)& SM_CANCEL) { - if (mode == 1) VS1053_SendMusicBytes( buf, CHUNK); //1 - else vTaskDelay(1); //2 -// printf ("Wait CANCEL clear\n"); - if (y++ > 200) + VS1053_SendMusicBytes( buf, 32); + if (y++ > 64) { - if (mode == 1) VS1053_Start(); + ESP_LOGE(TAG,"VS1053 Reset"); +// VS1053_Start(); break; } } - VS1053_WriteRegister(SPI_WRAMADDR,MaskAndShiftRight(para_endFillByte,0xFF00,8), (para_endFillByte & 0x00FF) ); + endFillByte = (int8_t) VS1053_ReadRegister(SPI_WRAM) & 0xFF; - for (y = 0; y < 513; y++) buf[y] = endFillByte; - } - for ( y = 0; y < 5; y++) VS1053_SendMusicBytes( buf, 512); // 4*513 = 2052 + for (y = 0; y < 513; y++) buf[y] = endFillByte; + for ( y = 0; y < 5; y++) VS1053_SendMusicBytes( buf, 513); // 4*513 = 2052 } diff --git a/main/webclient.c b/main/webclient.c index 734963db..16dec7db 100644 --- a/main/webclient.c +++ b/main/webclient.c @@ -1262,17 +1262,14 @@ void clientTask(void *pvParams) { setVolumei(0); if (get_player_status() != STOPPED) audio_player_stop(); - //if (get_audio_output_mode() == VS1053) spiRamFifoReset(); player_config->media_stream->eof = true; -// bufferReset(); - if (get_audio_output_mode() == VS1053)VS1053_flush_cancel(2); + if (get_audio_output_mode() == VS1053) VS1053_flush_cancel(); playing = 0; - vTaskDelay(40); // stop without click + vTaskDelay(20); // stop without click //VS1053_LowPower(); setVolumei(getVolume()); } - -// bufferReset(); + spiRamFifoReset(); shutdown(sockfd,SHUT_RDWR); // stop the socket vTaskDelay(1); close(sockfd); diff --git a/webpage/favicon b/webpage/favicon index feb6785f..e9ab0823 100644 --- a/webpage/favicon +++ b/webpage/favicon @@ -1,5 +1,5 @@ const char favicon_png[] = { - 0x1f, 0x8b, 0x08, 0x08, 0x7e, 0xb6, 0xe8, 0x5f, 0x00, 0x03, 0x66, 0x61, + 0x1f, 0x8b, 0x08, 0x08, 0x70, 0xc1, 0xe8, 0x5f, 0x00, 0x03, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x2e, 0x70, 0x6e, 0x67, 0x00, 0x01, 0xd0, 0x02, 0x2f, 0xfd, 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 0x00, diff --git a/webpage/index b/webpage/index index 6498f02a..b566dd1f 100644 --- a/webpage/index +++ b/webpage/index @@ -1,5 +1,5 @@ const char index_html[] = { - 0x1f, 0x8b, 0x08, 0x08, 0x6e, 0xc1, 0xe8, 0x5f, 0x00, 0x03, 0x69, 0x6e, + 0x1f, 0x8b, 0x08, 0x08, 0x9f, 0xb8, 0xec, 0x5f, 0x00, 0x03, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x00, 0xed, 0x3c, 0xf9, 0x93, 0xa2, 0x3a, 0xb7, 0xff, 0x0a, 0x9f, 0x55, 0xf7, 0xde, 0xf9, 0xca, 0xe9, 0x06, 0x71, 0xef, 0x99, 0xb6, 0x0a, 0x15, 0x04, 0x15, 0x17, 0x70, @@ -77,7 +77,7 @@ const char index_html[] = { 0x3d, 0xe1, 0x89, 0x83, 0x86, 0xbc, 0x88, 0xe7, 0x90, 0x40, 0xf0, 0x54, 0xb0, 0xeb, 0xfe, 0x29, 0x9a, 0x82, 0x6d, 0xc4, 0xd6, 0xbf, 0x0d, 0x2b, 0x7e, 0xa2, 0x02, 0x1c, 0x57, 0xf4, 0xef, 0x22, 0x9c, 0x15, 0x9e, 0xeb, - 0x08, 0x57, 0xbb, 0x40, 0x97, 0x2a, 0xcf, 0xf3, 0x7d, 0x1d, 0x69, 0x60, + 0x08, 0x57, 0xbf, 0x40, 0x97, 0x2a, 0xcf, 0xf3, 0x7d, 0x1d, 0x69, 0x60, 0x88, 0xdc, 0xb4, 0x12, 0x59, 0xd2, 0xea, 0xd8, 0xb5, 0x78, 0x87, 0xe4, 0x48, 0x77, 0x02, 0x8f, 0x77, 0x15, 0xcf, 0x10, 0x50, 0x92, 0x1f, 0xd5, 0xf0, 0x4a, 0xe5, 0x09, 0x6c, 0x4c, 0x31, 0xf9, 0x5c, 0x66, 0x91, 0xd6, @@ -501,7 +501,7 @@ const char index_html[] = { 0xb8, 0x92, 0x41, 0xe1, 0x67, 0x93, 0x7b, 0x97, 0x0b, 0x4e, 0x49, 0x45, 0xd1, 0x92, 0x5e, 0x17, 0xbc, 0xc4, 0xa6, 0x37, 0x05, 0x7f, 0xc8, 0x50, 0x4a, 0xf4, 0x2d, 0x4b, 0xe9, 0xf7, 0xfd, 0xa1, 0x79, 0x51, 0x48, 0x1f, - 0xf1, 0x9f, 0x49, 0xfa, 0x5f, 0xb5, 0xf5, 0x2c, 0xd6, 0x3d, 0x49, 0x00, + 0xf1, 0x9f, 0x49, 0xfa, 0x5f, 0xe4, 0x5d, 0x7b, 0x9b, 0x3d, 0x49, 0x00, 0x00 }; const int index_html_len = 6037; diff --git a/webpage/index.html b/webpage/index.html index 4c6718d3..e9247f7a 100644 --- a/webpage/index.html +++ b/webpage/index.html @@ -48,7 +48,7 @@

Edit station

KaraDio32
- V1.9 R8
+ V1.9 R9
0 dBm

diff --git a/webpage/logo b/webpage/logo index 06f1b1ef..5da057e8 100644 --- a/webpage/logo +++ b/webpage/logo @@ -1,5 +1,5 @@ const char logo_png[] = { - 0x1f, 0x8b, 0x08, 0x08, 0x7e, 0xb6, 0xe8, 0x5f, 0x00, 0x03, 0x6c, 0x6f, + 0x1f, 0x8b, 0x08, 0x08, 0x6f, 0xc1, 0xe8, 0x5f, 0x00, 0x03, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x6e, 0x67, 0x00, 0x01, 0x61, 0x0c, 0x9e, 0xf3, 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x33, diff --git a/webpage/script b/webpage/script index da480aaf..e0b7fd57 100644 --- a/webpage/script +++ b/webpage/script @@ -1,5 +1,5 @@ const char script_js[] = { - 0x1f, 0x8b, 0x08, 0x08, 0x79, 0xb6, 0xe8, 0x5f, 0x00, 0x03, 0x73, 0x63, + 0x1f, 0x8b, 0x08, 0x08, 0x6a, 0xc1, 0xe8, 0x5f, 0x00, 0x03, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2e, 0x6a, 0x73, 0x00, 0xec, 0x3d, 0xfd, 0x97, 0xdb, 0x36, 0x8e, 0x3f, 0xbb, 0xef, 0xe5, 0x7f, 0x60, 0x74, 0xd9, 0x58, 0x8e, 0x35, 0xfe, 0x4a, 0x26, 0xd7, 0x8b, 0x33, 0xdd, 0xd7, 0xa4, 0xe9, diff --git a/webpage/style b/webpage/style index 852e5900..1a4d7ce5 100644 --- a/webpage/style +++ b/webpage/style @@ -1,5 +1,5 @@ const char style_css[] = { - 0x1f, 0x8b, 0x08, 0x08, 0x67, 0xc1, 0xe8, 0x5f, 0x00, 0x03, 0x73, 0x74, + 0x1f, 0x8b, 0x08, 0x08, 0x98, 0xb8, 0xec, 0x5f, 0x00, 0x03, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x6d, 0x69, 0x6e, 0x2e, 0x63, 0x73, 0x73, 0x00, 0xed, 0x5a, 0x6d, 0x6f, 0xdb, 0x36, 0x10, 0xfe, 0x2b, 0x5c, 0x8c, 0x00, 0x35, 0x66, 0xb9, 0x94, 0x6c, 0x27, 0xb2, 0x84, 0x02, 0x2d, 0xb6, 0x6c, diff --git a/webpage/style1 b/webpage/style1 index 84b80233..3310004c 100644 --- a/webpage/style1 +++ b/webpage/style1 @@ -1,5 +1,5 @@ const char style1_css[] = { - 0x1f, 0x8b, 0x08, 0x08, 0x69, 0xc1, 0xe8, 0x5f, 0x00, 0x03, 0x73, 0x74, + 0x1f, 0x8b, 0x08, 0x08, 0x9a, 0xb8, 0xec, 0x5f, 0x00, 0x03, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x31, 0x2e, 0x6d, 0x69, 0x6e, 0x2e, 0x63, 0x73, 0x73, 0x00, 0xed, 0x5a, 0xeb, 0x6f, 0xdb, 0x36, 0x10, 0xff, 0x57, 0xb4, 0x18, 0x01, 0x12, 0xcc, 0x72, 0x29, 0x59, 0x76, 0x64, 0x09, 0x05, 0xea, 0x76, diff --git a/webpage/version32.php b/webpage/version32.php index 880e1c19..54da02ad 100644 --- a/webpage/version32.php +++ b/webpage/version32.php @@ -3,11 +3,18 @@ -

Release 1.9 Rev 8 - Built on 2020/12/27 +

Release 1.9 Rev 9 - Built on 2020/12/30

New: