public async Task<List<string>> Idle(string subsystems = "")
{
this.idle = true;
//var qId =
// ? await Send(MPDKeyWords.Client.Status.IDLE)
// : await Send(MPDKeyWords.Client.Status.IDLE);
var success = (string.IsNullOrEmpty(subsystems))
? await Connection.Send(_connection.Socket,
MPDKeyWords.Send.Encode(MPDKeyWords.Client.Status.IDLE))
: await Connection.Send(_connection.Socket,
MPDKeyWords.Send.Encode(MPDKeyWords.Client.Status.IDLE, subsystems.Split(new char[] { ' ' }).ToList()));
if (!success) return new List<string>();
var response = await Connection.Recive(_connection.Socket,
new List<string>() { MPDKeyWords.Response.SUCCESS_CONNECT },
new List<string>() { MPDKeyWords.Response.OK_LINEBREAK },
new List<string>() { MPDKeyWords.Response.ACK },
new List<string>() { MPDKeyWords.Response.LINEBREAK });
var responselist = (await MPDKeyWords.Response.Encode(response)).FirstOrDefault();
return (from kv in responselist select kv.Value).ToList();
}