浏览代码

fix 32 bits sample size L/R swap - release

issue is in esp-idf
Philippe G 3 年之前
父节点
当前提交
6f4ed0679e
共有 3 个文件被更改,包括 5 次插入8 次删除
  1. 2 2
      components/services/i2s.c
  2. 1 4
      components/squeezelite/output_i2s.c
  3. 2 2
      plugin/SqueezeESP32/strings.txt

+ 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.