using System;

namespace skyscraper5.Skyscraper.IO.CrazycatStreamReader
{
    /// <summary>
    /// A matching called is called from a filter whenever one or more packets was received.
    /// </summary>
    /// <param name="data">The pointer where the received can be read from.</param>
    /// <param name="length">The length of data received in bytes</param>
    public delegate void StdcallDvbCallback(IntPtr data, int length);

    /// <summary>
    /// A matching called is called from a filter whenever one or more packets was received.
    /// </summary>
    /// <param name="data">The pointer where the received can be read from.</param>
    /// <param name="length">The length of data received in bytes</param>
    /// <param name="pid">The PID from which the data came from.</param>
    public delegate void StdcallDvbCallbackEx(IntPtr data, int length, int pid);

    /// <summary>
    /// A matching method is called for each tuner detected by CheckForDVBEx.
    /// </summary>
    /// <param name="index">The ID to use in StartDvbEx</param>
    /// <param name="name">The name of the tuner.</param>
    public delegate void DvbEnumCallback(int index, string name);

    /// <summary>
    /// A matching method is called for each detected tuner by CheckForDVBExEx
    /// </summary>
    /// <param name="index">The ID to put into StartDvbEx</param>
    /// <param name="name">The name of the tuner</param>
    /// <param name="type">The network type supported by the tuner.</param>
    public delegate void DvbEnumCallbackEx(int index, string name, STD_TYPE type);

    public delegate void AirScanCallback(ref SearchResult2 searchResult);

    public delegate void BlScanCallback(ref SearchResult searchResult);
}
