private void ProcessMessage(string msg) { if (msg.StartsWith("Password:")) { SendCommandLocked(password); } else { switch (currentResponse) { case AwaitingResponse.GetLength: int get_length; getLength = int.TryParse(msg, out get_length) ? get_length : -1; break; case AwaitingResponse.GetPosition: int get_position; getPosition = int.TryParse(msg, out get_position) ? get_position : -1; break; case AwaitingResponse.IsPlaying: int is_plaing; isPlaying = int.TryParse(msg, out is_plaing) && is_plaing != 0; break; } currentResponse = AwaitingResponse.None; } responseEvent.Set(); }
// Lock and textsend methods private void SendResponseLocked(AwaitingResponse resp, string msg) { if (!connected) { return; } lock (attributeLock) { currentResponse = resp; SendTextRaw(msg); responseEvent.WaitOne(); } }
// Lock and textsend methods private void SendResponseLocked(AwaitingResponse resp, string msg) { if (!connected) return; lock (attributeLock) { currentResponse = resp; SendTextRaw(msg); responseEvent.WaitOne(); } }