|
|
|
|
@ -473,6 +473,24 @@ void Status::Changes::database() |
|
|
|
|
|
|
|
|
|
void Status::Changes::playerState() |
|
|
|
|
{ |
|
|
|
|
if (!Config.execute_on_player_state_change.empty()) |
|
|
|
|
{ |
|
|
|
|
auto stateToEnv = [](MPD::PlayerState st) -> const char * { |
|
|
|
|
switch (st) |
|
|
|
|
{ |
|
|
|
|
case MPD::psPlay: return "play"; |
|
|
|
|
case MPD::psStop: return "stop"; |
|
|
|
|
case MPD::psPause: return "pause"; |
|
|
|
|
case MPD::psUnknown: return "unknown"; |
|
|
|
|
} |
|
|
|
|
throw std::logic_error("unreachable"); |
|
|
|
|
}; |
|
|
|
|
GNUC_UNUSED int res; |
|
|
|
|
setenv("MPD_PLAYER_STATE", stateToEnv(m_player_state), 1); |
|
|
|
|
res = system(Config.execute_on_player_state_change.c_str()); |
|
|
|
|
unsetenv("MPD_PLAYER_STATE"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
switch (m_player_state) |
|
|
|
|
{ |
|
|
|
|
case MPD::psPlay: |
|
|
|
|
|