using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using skyscraper5.Dvb.DataBroadcasting.SkyscraperVfs;
using skyscraper5.Teletext;

namespace skyscraper5.Skyscraper.Scraper.Storage.Split
{
    public interface ObjectStorage
    {
        bool ObjectCarouselFileArrival(VfsFile vfsFile, int transportStreamId, int networkId);
        void DataCarouselModuleArrival(int currentNetworkId, int currentTransportStreamId, int elementaryPid, ushort moduleModuleId, byte moduleModuleVersion, Stream result);
        bool IsDsmCcModuleWanted(int currentNetworkId, int currentTransportStreamId, int elementaryPid, ushort moduleId, byte moduleVersion);
        bool TestForFramegrab(int currentNetworkId, int transportStreamId, ushort mappingProgramNumber, int mappingStreamElementaryPid);
        void StoreFramegrab(int currentNetworkId, int transportStreamId, ushort mappingProgramNumber, ushort pid, byte[] imageData);
        void WaitForCompletion();
        void UiSetVersion(int version);
        object[] GetPluginConnector();

        void Ping();
    }
}
