﻿using UnityEngine;
using UnityEngine.Video;
using RememorySDK.API;

namespace RememorySDK
{
    [RequireComponent(typeof(VideoPlayer))]
    public abstract class VolumetricPlayer : MonoBehaviour
    {
        public delegate void OnCreatedDelegate();
        public abstract event OnCreatedDelegate OnCreated;

        public abstract void CreatePlayer();

        public virtual bool IsCreated { get; }
        public virtual MeshMode MeshModeType { get; set; }
        public virtual bool IsFollowCamera { get; set; }
        public virtual bool IsAudioMute { get; set; }
        public virtual bool IsLoop { get; set; }
        public virtual float Speed { get; set; }
        public virtual float NearClip { get; set; }
        public virtual float FarClip { get; set; }
        public virtual float DepthEdgeSensitivity { get; set; }
        public abstract void Play();
        public abstract void Pause();
        public abstract void Stop();

        public abstract bool IsPlaying();
        public abstract int GetCurrentFrame();
        public abstract double GetCurrentTime();
        public abstract int GetTotalFrame();
        public abstract double GetDuration();

        public abstract void Seek(float toTimeSeconds);
        public abstract uint GetVideoWidth();
        public abstract uint GetVideoHeight();

    }
}