public static int CompareAudioStreams(
TSAudioStream x,
TSAudioStream y)
{
if (x == y)
{
return 0;
}
else if (x == null && y == null)
{
return 0;
}
else if (x == null && y != null)
{
return -1;
}
else if (x != null && y == null)
{
return 1;
}
else
{
if (x.ChannelCount > y.ChannelCount)
{
return -1;
}
else if (y.ChannelCount > x.ChannelCount)
{
return 1;
}
else
{
int sortX = GetStreamTypeSortIndex(x.StreamType);
int sortY = GetStreamTypeSortIndex(y.StreamType);
if (sortX > sortY)
{
return -1;
}
else if (sortY > sortX)
{
return 1;
}
else
{
if (x.LanguageCode == "eng")
{
return -1;
}
else if (y.LanguageCode == "eng")
{
return 1;
}
else
{
return string.Compare(
x.LanguageName, y.LanguageName);
}
}
}
}
}