import WebSocketServer from './websocketServer.js';

class Player {
    constructor(option) {
        this.ws = null;
        this.options = option;
        this.events = {
            error: ()=>{}
        };
    }

    init() {
        //console.log('init');
        this.ws = new WebSocketServer(this.options);
        this.ws.init();
    }

    connect() {
        for(let i in this.events) {
            this.ws.setCallBack(i, this.events[i]);
        }
        this.ws.connect();
    }

    play() {
        //console.log('player')
    }

    pause() {
        //console.log('pause')
    }

    close() {
        this.ws.close();
        //console.log('close1')
    }

    /**
     * 绘制额外信息
     * @param obj
     */
    updateInfo(obj) {
        this.ws.updateInfo(obj);
    }

    setROI(data) {
        this.ws.setROI(data);
    }

    resetROI() {
        this.ws.resetROI();
    }

    getROIData() {
        return this.ws.getROIData();
    }

    setPolygonNum(num) {
        return this.ws.setPolygonNum(num);
    }

    /**
     * 自定义事件
     * 目前支持如下事件
     * [error] websocket连接失败
     * [noStream] 收不到码流
     * [canplay] 视频能够播放时触发
     * [initialCompleted] 视频初始化完成, 首次canplay
     * [ROIFinished] 手动绘制ROI完成时触发
     *
     * @param event 事件名
     * @param callback 事件响应函数
     */
    on(event, callback) {
        this.events[event] = callback;
    }
}

export default Player;

