Browse Source

wait to switch external AMP GPIO even when stopping (pause = stop for stream)

philippe44 5 years ago
parent
commit
5f84dc3cb0
2 changed files with 4 additions and 12 deletions
  1. 1 1
      components/services/monitor.c
  2. 3 11
      components/squeezelite/slimproto.c

+ 1 - 1
components/services/monitor.c

@@ -89,7 +89,7 @@ bool spkfault_svc (void) {
  */
 void set_jack_gpio(int gpio, char *value) {
 	 if (!strcasecmp(value, "jack")) {
-		ESP_LOGI(TAG,"Adding jack detection gpio %d", gpio);
+		ESP_LOGI(TAG,"Adding jack detection GPIO %d", gpio);
 		
 		gpio_pad_select_gpio(JACK_GPIO);
 		gpio_set_direction(JACK_GPIO, GPIO_MODE_INPUT);

+ 3 - 11
components/squeezelite/slimproto.c

@@ -284,22 +284,14 @@ static void process_strm(u8_t *pkt, int len) {
 	case 't':
 		sendSTAT("STMt", strm->replay_gain); // STMt replay_gain is no longer used to track latency, but support it
 		break;
+	case 'f':	
 	case 'q':
 		decode_flush();
 		if (!output.external) output_flush();
 		status.frames_played = 0;
-		stream_disconnect();
-		sendSTAT("STMf", 0);
-		buf_flush(streambuf);
-		break;
-	case 'f':
-		decode_flush();
-		if (!output.external) output_flush();
-		status.frames_played = 0;
-		if (stream_disconnect()) {
-			sendSTAT("STMf", 0);
-		}
+		if (stream_disconnect() && strm->command == 'f') sendSTAT("STMf", 0);
 		buf_flush(streambuf);
+		output.stop_time = gettime_ms();
 		break;
 	case 'p':
 		{