浏览代码

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) {
 		// 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_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) {
 		// 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_slave_mod = 0; // Master
         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(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
 	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
 
 PLUGIN_SQUEEZEESP32_EQUALIZER
-	DE	Parametrischer Equalizer
-	EN	Parametric equalizer
+	DE	Grafischer Equalizer
+	EN	Graphic equalizer
 
 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.