Browse Source

fix 32 bits sample size L/R swap - release

issue is in esp-idf
Philippe G 3 years ago
parent
commit
6f4ed0679e

+ 2 - 2
components/services/i2s.c

@@ -928,7 +928,7 @@ static esp_err_t i2s_param_config(i2s_port_t i2s_num, const i2s_config_t *i2s_co
 
 
     if (i2s_config->mode & I2S_MODE_TX) {
     if (i2s_config->mode & I2S_MODE_TX) {
 		// PATCH
 		// PATCH
-        I2S[i2s_num]->conf.tx_msb_right = 1;
+        I2S[i2s_num]->conf.tx_msb_right = i2s_config->bits_per_sample == 32 ? 0 : 1;
         I2S[i2s_num]->conf.tx_right_first = 0;
         I2S[i2s_num]->conf.tx_right_first = 0;
 
 
         I2S[i2s_num]->conf.tx_slave_mod = 0; // Master
         I2S[i2s_num]->conf.tx_slave_mod = 0; // Master
@@ -941,7 +941,7 @@ static esp_err_t i2s_param_config(i2s_port_t i2s_num, const i2s_config_t *i2s_co
 
 
     if (i2s_config->mode & I2S_MODE_RX) {
     if (i2s_config->mode & I2S_MODE_RX) {
 		// PATCH
 		// PATCH
-        I2S[i2s_num]->conf.rx_msb_right = 1;	
+        I2S[i2s_num]->conf.rx_msb_right = i2s_config->bits_per_sample == 32 ? 0 : 1;	
         I2S[i2s_num]->conf.rx_right_first = 0;
         I2S[i2s_num]->conf.rx_right_first = 0;
         I2S[i2s_num]->conf.rx_slave_mod = 0; // Master
         I2S[i2s_num]->conf.rx_slave_mod = 0; // Master
         I2S[i2s_num]->fifo_conf.rx_fifo_mod_force_en = 1;
         I2S[i2s_num]->fifo_conf.rx_fifo_mod_force_en = 1;

+ 1 - 4
components/squeezelite/output_i2s.c

@@ -238,10 +238,7 @@ void output_init_i2s(log_level level, char *device, unsigned output_buf_size, ch
 	set_i2s_pin(spdif_config, &i2s_spdif_pin);										
 	set_i2s_pin(spdif_config, &i2s_spdif_pin);										
 	set_i2s_pin(dac_config, &i2s_dac_pin);										
 	set_i2s_pin(dac_config, &i2s_dac_pin);										
 
 
-	/* BEWARE: i2s. must be patched to set tx_msb_right/rx_msb_right to 1
-	 * or SPDIF will not work. These settings are not accessible from
-	 * userland and I don't know why
-	 */
+	/* BEWARE: i2s.c must be patched otherwise L/R are swapped in 32 bits mode */
 	 
 	 
 	// common I2S initialization
 	// common I2S initialization
 	i2s_config.mode = I2S_MODE_MASTER | I2S_MODE_TX;
 	i2s_config.mode = I2S_MODE_MASTER | I2S_MODE_TX;

+ 2 - 2
plugin/SqueezeESP32/strings.txt

@@ -107,8 +107,8 @@ PLUGIN_SQUEEZEESP32_ARTWORK_Y
 	EN	Y
 	EN	Y
 
 
 PLUGIN_SQUEEZEESP32_EQUALIZER
 PLUGIN_SQUEEZEESP32_EQUALIZER
-	DE	Parametrischer Equalizer
-	EN	Parametric equalizer
+	DE	Grafischer Equalizer
+	EN	Graphic equalizer
 
 
 PLUGIN_SQUEEZEESP32_EQUALIZER_SAVE
 PLUGIN_SQUEEZEESP32_EQUALIZER_SAVE
 	DE	Bitte speichern Sie die Equalizer Einstellungen, falls das Gerät diese dauerhaft verwenden soll. Ansonsten werden sie beim nächsten Start zurückgesetzt.
 	DE	Bitte speichern Sie die Equalizer Einstellungen, falls das Gerät diese dauerhaft verwenden soll. Ansonsten werden sie beim nächsten Start zurückgesetzt.