This commit is contained in:
e2002
2023-02-22 09:57:58 +03:00
parent fe95774f14
commit 6bef9ca9d7
4 changed files with 17 additions and 11 deletions

View File

@@ -45,6 +45,7 @@ from homeassistant.const import (
SUPPORT_YORADIO = SUPPORT_PAUSE | SUPPORT_PLAY | SUPPORT_STOP |\ SUPPORT_YORADIO = SUPPORT_PAUSE | SUPPORT_PLAY | SUPPORT_STOP |\
SUPPORT_VOLUME_SET | SUPPORT_VOLUME_STEP | \ SUPPORT_VOLUME_SET | SUPPORT_VOLUME_STEP | \
SUPPORT_TURN_ON | SUPPORT_TURN_OFF | \
SUPPORT_PREVIOUS_TRACK | SUPPORT_NEXT_TRACK | \ SUPPORT_PREVIOUS_TRACK | SUPPORT_NEXT_TRACK | \
SUPPORT_SELECT_SOURCE | SUPPORT_BROWSE_MEDIA | SUPPORT_PLAY_MEDIA SUPPORT_SELECT_SOURCE | SUPPORT_BROWSE_MEDIA | SUPPORT_PLAY_MEDIA
@@ -140,7 +141,10 @@ class yoradioDevice(MediaPlayerEntity):
js = json.loads(msg.payload) js = json.loads(msg.payload)
self._media_title = js['title'] self._media_title = js['title']
self._track_artist = js['name'] self._track_artist = js['name']
if js['on']==1:
self._state = STATE_PLAYING if js['status']==1 else STATE_IDLE self._state = STATE_PLAYING if js['status']==1 else STATE_IDLE
else:
self._state = STATE_OFF
self._current_source = str(js['station']) + '. ' + js['name'] self._current_source = str(js['station']) + '. ' + js['name']
try: try:
self.async_schedule_update_ha_state() self.async_schedule_update_ha_state()
@@ -246,10 +250,6 @@ class yoradioDevice(MediaPlayerEntity):
async def async_media_previous_track(self): async def async_media_previous_track(self):
await self.api.set_command("prev") await self.api.set_command("prev")
async def async_turn_off(self):
await self.api.set_command("stop")
self._state = STATE_IDLE
async def async_media_stop(self): async def async_media_stop(self):
await self.api.set_command("stop") await self.api.set_command("stop")
self._state = STATE_IDLE self._state = STATE_IDLE

View File

@@ -109,15 +109,17 @@ void onMqttMessage(char* topic, char* payload, AsyncMqttClientMessageProperties
} }
if (strcmp(buf, "turnoff") == 0) { if (strcmp(buf, "turnoff") == 0) {
uint8_t sst = config.store.smartstart; uint8_t sst = config.store.smartstart;
player.stop(); config.setDspOn(0);
player.mode = STOPPED;
telnet.info();
delay(100);
config.store.smartstart = sst; config.store.smartstart = sst;
config.save(); config.save();
config.setDspOn(0);
return; return;
} }
if (strcmp(buf, "turnon") == 0) { if (strcmp(buf, "turnon") == 0) {
config.setDspOn(1); config.setDspOn(1);
if (config.store.smartstart == 1) player.play(config.store.lastStation); if (config.store.smartstart == 1) player.request.station = config.store.lastStation;
return; return;
} }
int volume; int volume;

View File

@@ -35,7 +35,7 @@ Player player;
void Player::init() { void Player::init() {
Serial.print("##[BOOT]#\tplayer.init\t"); Serial.print("##[BOOT]#\tplayer.init\t");
#ifdef MQTT_ROOT_TOPIC #ifdef MQTT_ROOT_TOPIC
memset(burl, 0, 400); memset(burl, 0, MQTT_BURL_SIZE);
#endif #endif
if(MUTE_PIN!=255) pinMode(MUTE_PIN, OUTPUT); if(MUTE_PIN!=255) pinMode(MUTE_PIN, OUTPUT);
#if I2S_DOUT!=255 #if I2S_DOUT!=255
@@ -197,7 +197,7 @@ void Player::browseUrl(){
}else{ }else{
telnet.printf("##ERROR#:\tError connecting to %s\n", burl); telnet.printf("##ERROR#:\tError connecting to %s\n", burl);
} }
memset(burl, 0, 400); memset(burl, 0, MQTT_BURL_SIZE);
} }
#endif #endif

View File

@@ -8,6 +8,10 @@
#include "../audioVS1053/audioVS1053Ex.h" #include "../audioVS1053/audioVS1053Ex.h"
#endif #endif
#ifndef MQTT_BURL_SIZE
#define MQTT_BURL_SIZE 512
#endif
enum audioMode_e { PLAYING, STOPPED }; enum audioMode_e { PLAYING, STOPPED };
struct audiorequest_t struct audiorequest_t
@@ -30,7 +34,7 @@ class Player: public Audio {
bool resumeAfterUrl = false; bool resumeAfterUrl = false;
uint32_t sd_min, sd_max; uint32_t sd_min, sd_max;
#ifdef MQTT_ROOT_TOPIC #ifdef MQTT_ROOT_TOPIC
char burl[400]; /* buffer for browseUrl */ char burl[MQTT_BURL_SIZE]; /* buffer for browseUrl */
#endif #endif
public: public:
Player(); Player();