This commit is contained in:
parent
d69c4cda68
commit
2d8b66e1e8
@ -30,5 +30,6 @@ namespace skyscraper5.src.InteractionChannel
|
||||
void OnReturnTransmissionMOdes(PhysicalAddress macAddress, _0xb2_ReturnTransmissionModesDescriptor descriptor);
|
||||
void OnConnectionControl(PhysicalAddress macAddress, _0xaf_ConnectionControlDescriptor descriptor);
|
||||
void OnTerminalBurstTimePlan2(ushort interactiveNetworkId, Tbtp2 tbtp2);
|
||||
void OnFrameComposition2(ushort? networkId, Fct2 fct2);
|
||||
}
|
||||
}
|
||||
|
||||
@ -204,7 +204,9 @@ namespace skyscraper5.src.InteractionChannel
|
||||
_handler.OnInteractionChannelError(InteractionChannelErrorState.Fct2Invalid);
|
||||
return;
|
||||
}
|
||||
throw new NotImplementedException("FCT2");
|
||||
|
||||
Handler.OnFrameComposition2(NetworkId, fct2);
|
||||
return;
|
||||
case 0xAC: //BCT
|
||||
//see en_30154502v010401p.pdf, page 49
|
||||
throw new NotImplementedException("BCT");
|
||||
|
||||
@ -9,11 +9,12 @@ using skyscraper5.Skyscraper.IO;
|
||||
|
||||
namespace skyscraper5.src.InteractionChannel.Model2
|
||||
{
|
||||
internal class Fct2 : Validatable
|
||||
public class Fct2 : Validatable
|
||||
{
|
||||
public Fct2(MemoryStream ms)
|
||||
{
|
||||
byte frameTypeLoopCount = ms.ReadUInt8();
|
||||
frameTypeLoopCount--;
|
||||
FrameTypes = new Frame[frameTypeLoopCount];
|
||||
for (int i = 0; i < frameTypeLoopCount; i++)
|
||||
{
|
||||
|
||||
@ -27,6 +27,11 @@ namespace skyscraper5.src.InteractionChannel
|
||||
|
||||
}
|
||||
|
||||
public void OnFrameComposition2(ushort? networkId, Fct2 fct2)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void OnContentionControl(PhysicalAddress macAddress, _0xab_ContentionControlDescriptor ccd)
|
||||
{
|
||||
}
|
||||
|
||||
@ -2413,6 +2413,18 @@ namespace skyscraper5.Skyscraper.Scraper
|
||||
}
|
||||
}
|
||||
|
||||
public void OnFrameComposition2(ushort? networkId, Fct2 fct2)
|
||||
{
|
||||
foreach (Fct2.Frame frame in fct2.FrameTypes)
|
||||
{
|
||||
if (!DataStorage.TestForFrameComposition2(networkId.Value, frame))
|
||||
{
|
||||
LogEvent(SkyscraperContextEvent.FrameComposition2,String.Format("Network ID = {0}, Frame Type = {1}",networkId.Value,frame.FrameType));
|
||||
DataStorage.InsertFct2Frame(networkId.Value, frame);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void InteractionChannelHandler.OnTimeslotComposition(ushort interactiveNetworkId, Tct tct)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
|
||||
@ -86,6 +86,7 @@
|
||||
OtvSsuComplete,
|
||||
NdsSsuFileAnnounced,
|
||||
NdsSsuProgress,
|
||||
TerminalBurstTimePlan2
|
||||
TerminalBurstTimePlan2,
|
||||
FrameComposition2
|
||||
}
|
||||
}
|
||||
|
||||
@ -196,5 +196,7 @@ namespace skyscraper8.Skyscraper.Scraper.Storage
|
||||
object[] GetLastUiBlindscanSettings();
|
||||
bool TestForTerminalBurstTimePlan2(ushort interactiveNetworkId, byte tbtp2GroupId, byte frameFrameNumber);
|
||||
void StoreTerminalBurstTimePlan2(ushort interactiveNetworkId, byte tbtp2GroupId, Tbtp2.Frame frame);
|
||||
bool TestForFrameComposition2(ushort networkId, Fct2.Frame fct2);
|
||||
void InsertFct2Frame(ushort networkId, Fct2.Frame frame);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1166,6 +1166,16 @@ namespace skyscraper5.Skyscraper.Scraper.Storage.Filesystem
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public bool TestForFrameComposition2(ushort networkId, Fct2.Frame fct2)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void InsertFct2Frame(ushort networkId, Fct2.Frame frame)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public IEnumerable<Tuple<int, int, ProgramMapping>> SelectAllPmt()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
|
||||
@ -986,6 +986,25 @@ namespace skyscraper5.Skyscraper.Scraper.Storage.InMemory
|
||||
_tbtp2.Add(key, frame);
|
||||
}
|
||||
|
||||
private Dictionary<Tuple<ushort, byte>, Fct2.Frame> _fct2Frames;
|
||||
public bool TestForFrameComposition2(ushort networkId, Fct2.Frame fct2)
|
||||
{
|
||||
if (_fct2Frames == null)
|
||||
return false;
|
||||
|
||||
Tuple<ushort, byte> key = new Tuple<ushort, byte>(networkId, fct2.FrameType);
|
||||
return _fct2Frames.ContainsKey(key);
|
||||
}
|
||||
|
||||
public void InsertFct2Frame(ushort networkId, Fct2.Frame frame)
|
||||
{
|
||||
if (_fct2Frames == null)
|
||||
_fct2Frames = new Dictionary<Tuple<ushort, byte>, Fct2.Frame>();
|
||||
|
||||
Tuple<ushort, byte> key = new Tuple<ushort, byte>(networkId, frame.FrameType);
|
||||
_fct2Frames.Add(key, frame);
|
||||
}
|
||||
|
||||
public IEnumerable<Tuple<int, int, ProgramMapping>> SelectAllPmt()
|
||||
{
|
||||
for (int x = 0; x < pmtEntries.Length; x++)
|
||||
|
||||
@ -192,5 +192,10 @@ namespace skyscraper5.src.Skyscraper.Scraper.StreamAutodetection.Contestants
|
||||
Score++;
|
||||
}
|
||||
}
|
||||
|
||||
public void OnFrameComposition2(ushort? networkId, Fct2 fct2)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user