using Ebel.Hardware.Communications;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace HwComWrapperNETGui.UserControls
{
    public class ReplayConfigureEventArgs : EventArgs
    {
        #region Constructors and Destructors
        /// <summary>
        ///     Initializes a new instance of the <see cref="ReplayConfigureEventArgs"/> class.
        /// </summary>
        /// <param name="replayConfig"> Replay configuration.</param>
        ///
        public ReplayConfigureEventArgs(ReplayConfiguration replayConfig)
        {
            this.ReplayConfig = replayConfig;
        }
        #endregion

        #region Public Properties
        /// <summary>
        ///     Gets the Replay configuration.
        /// </summary>
        public ReplayConfiguration ReplayConfig { get; private set; }
        #endregion
    }

    public class ReplayControlEventArgs : EventArgs
    {
        #region Constructors and Destructors
        /// <summary>
        ///     Initializes a new instance of the <see cref="ReplayControlEventArgs"/> class.
        /// </summary>
        /// <param name="replayControl"> replay control.</param>
        ///
        public ReplayControlEventArgs(ReplayControl replayControl)
        {
            this.ReplayControl = replayControl;
        }
        #endregion

        #region Public Properties
        /// <summary>
        ///     Gets the replay control.
        /// </summary>
        public ReplayControl ReplayControl{ get; private set; }
        #endregion
    }

    public class GetReplayStatisticsEventArgs : EventArgs
    {
        #region Constructors and Destructors
        /// <summary>
        ///     Initializes a new instance of the <see cref="GetReplayStatisticsEventArgs"/> class.
        /// </summary>
        /// <param name="replayStatistics"> ´Replay statistics.</param>
        public GetReplayStatisticsEventArgs(ReplayStatistics replayStatistics)
        {
            this.ReplayStatistics = replayStatistics;
        }

        #endregion

        #region Public Properties
        /// <summary>
        ///     Gets the Replay module statistics.
        /// </summary>
        public ReplayStatistics ReplayStatistics { get; private set; }
        #endregion
    }

    public class ReplayStreamEventArgs : EventArgs
    {
        #region Constructors and Destructors
        /// <summary>
        ///     Initializes a new instance of the <see cref="ReplayStreamEventArgs"/> class.
        /// </summary>
        /// <param name="replayStream"> Replay module stream entry.</param>
        public ReplayStreamEventArgs(ReplayStream replayStream)
        {
            this.ReplayStream = replayStream;
        }
        #endregion

        #region Public Properties
        /// <summary>
        ///     Gets the replay module stream entry.
        /// </summary>
        public ReplayStream ReplayStream { get; private set; }
        #endregion
    }
}
