2013-04-03 12:47:24 +02:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
|
2021-01-23 14:22:18 +01:00
|
|
|
|
namespace ChanSort.Loader.Samsung.Scm
|
2013-04-03 12:47:24 +02:00
|
|
|
|
{
|
|
|
|
|
|
internal class SatelliteMapping
|
|
|
|
|
|
{
|
|
|
|
|
|
private static readonly Encoding utf16Encoding = new UnicodeEncoding(false, false);
|
|
|
|
|
|
|
|
|
|
|
|
private readonly byte[] data;
|
|
|
|
|
|
public int BaseOffset;
|
|
|
|
|
|
|
|
|
|
|
|
public SatelliteMapping(byte[] data, int offset)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.data = data;
|
|
|
|
|
|
this.BaseOffset = offset;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public byte MagicMarker { get { return data[BaseOffset]; } }
|
|
|
|
|
|
public int SatelliteNr { get { return BitConverter.ToInt32(data, BaseOffset + 1); } }
|
2021-05-01 11:41:33 +02:00
|
|
|
|
|
|
|
|
|
|
public string Name
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
var name = utf16Encoding.GetString(data, BaseOffset + 9, 128);
|
|
|
|
|
|
var i = name.IndexOf('\0');
|
|
|
|
|
|
if (i >= 0)
|
|
|
|
|
|
name = name.Substring(0, i);
|
|
|
|
|
|
return name;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2013-04-03 12:47:24 +02:00
|
|
|
|
public bool IsEast { get { return BitConverter.ToInt32(data, BaseOffset + 137) != 0; } }
|
2013-04-03 15:01:53 +02:00
|
|
|
|
public int Longitude { get { return BitConverter.ToInt32(data, BaseOffset + 141); } }
|
2013-04-03 12:47:24 +02:00
|
|
|
|
}
|
|
|
|
|
|
}
|