private void ResponseCallback(IAsyncResult ar)
{
try
{
RequestState requestState = (RequestState)ar.AsyncState;
HttpWebResponse response = (HttpWebResponse)requestState.Request.EndGetResponse(ar);
requestState.Response = response;
if (response.StatusDescription == "OK" && response.Headers.Count > 0)
{
int metaInt = Global.StringToInt(response.GetResponseHeader("icy-metaint"));
string name = response.GetResponseHeader("icy-name");
string genre = response.GetResponseHeader("icy-genre");
string url = response.GetResponseHeader("icy-url");
OnHeaderReceived(metaInt, name, genre, url);
if (metaInt > 0)
{
Stream responseStream = response.GetResponseStream();
requestState.ResponseStream = responseStream;
requestState.MetaInt = metaInt;
responseStream.BeginRead(requestState.Buffer, 0, RequestState.BufferSize, new AsyncCallback(ReadCallback), requestState);
return;
}
}
}
catch { }
AllDone.Set();
}