/// <summary>Sequence of blobs in the cluster, with sequence numbers</summary> static IEnumerable <sSeekPos> listBlobsInCluster(ReusableCluster cluster, ulong trackNumber, int clusterIdx) { sSeekPos result = default; result.cluster = clusterIdx; result.blob = 0; long time = (long)cluster.timestamp; // The filtering code needs to match what's in ReaderBase.loadCluster or this gonna fail, miserably. if (null != cluster.simpleBlock) { foreach (var b in cluster.simpleBlock) { if (b.trackNumber != trackNumber) { continue; } result.time = checked ((ulong)(time + b.timestamp)); yield return(result); result.blob++; } } if (null != cluster.blockGroup) { foreach (var b in cluster.blockGroup) { if (b.block.trackNumber != trackNumber) { continue; } result.time = checked ((ulong)(time + b.block.timestamp)); result.blob++; } } }
static sSeekPos?nullable(sSeekPos sp) => sp;