{
    "project": {},
    "files": {
        "src\\core\\devices\\arcelik.js": {
            "name": "src\\core\\devices\\arcelik.js",
            "modules": {},
            "classes": {
                "Device_Arcelik": 1
            },
            "fors": {
                "Device_Arcelik": 1
            },
            "namespaces": {}
        },
        "src\\core\\devices\\lg.js": {
            "name": "src\\core\\devices\\lg.js",
            "modules": {},
            "classes": {
                "Device_LG": 1
            },
            "fors": {},
            "namespaces": {}
        },
        "src\\core\\devices\\philips.js": {
            "name": "src\\core\\devices\\philips.js",
            "modules": {},
            "classes": {
                "Device_Philips": 1
            },
            "fors": {},
            "namespaces": {}
        },
        "src\\core\\devices\\samsung.js": {
            "name": "src\\core\\devices\\samsung.js",
            "modules": {},
            "classes": {
                "Device_Samsung": 1
            },
            "fors": {},
            "namespaces": {}
        },
        "src\\core\\devices\\tizen.js": {
            "name": "src\\core\\devices\\tizen.js",
            "modules": {},
            "classes": {
                "Device_Tizen": 1
            },
            "fors": {},
            "namespaces": {}
        },
        "src\\core\\devices\\vestel.js": {
            "name": "src\\core\\devices\\vestel.js",
            "modules": {},
            "classes": {
                "Device_Vestel": 1
            },
            "fors": {
                "Device_Vestel": 1
            },
            "namespaces": {}
        },
        "src\\core\\devices\\web.js": {
            "name": "src\\core\\devices\\web.js",
            "modules": {},
            "classes": {
                "Device_Web": 1
            },
            "fors": {
                "Device_Web": 1
            },
            "namespaces": {}
        },
        "src\\core\\devices\\webos.js": {
            "name": "src\\core\\devices\\webos.js",
            "modules": {},
            "classes": {
                "Device_WebOs": 1
            },
            "fors": {
                "Device_WebOs": 1
            },
            "namespaces": {}
        },
        "src\\core\\device.js": {
            "name": "src\\core\\device.js",
            "modules": {},
            "classes": {
                "Device": 1
            },
            "fors": {
                "Device": 1
            },
            "namespaces": {}
        },
        "src\\player\\audio.js": {
            "name": "src\\player\\audio.js",
            "modules": {},
            "classes": {
                "Audio": 1
            },
            "fors": {
                "Audio": 1
            },
            "namespaces": {}
        },
        "src\\player\\player.js": {
            "name": "src\\player\\player.js",
            "modules": {},
            "classes": {
                "Player": 1
            },
            "fors": {
                "Player": 1
            },
            "namespaces": {}
        },
        "src\\player\\subtitle.js": {
            "name": "src\\player\\subtitle.js",
            "modules": {},
            "classes": {
                "Subtitle": 1
            },
            "fors": {},
            "namespaces": {}
        },
        "src\\service\\events.js": {
            "name": "src\\service\\events.js",
            "modules": {},
            "classes": {
                "Events": 1
            },
            "fors": {
                "Events": 1
            },
            "namespaces": {}
        },
        "src\\service\\ganalytics.js": {
            "name": "src\\service\\ganalytics.js",
            "modules": {},
            "classes": {},
            "fors": {},
            "namespaces": {}
        },
        "src\\service\\logger.js": {
            "name": "src\\service\\logger.js",
            "modules": {},
            "classes": {
                "Logger": 1
            },
            "fors": {
                "Logger": 1
            },
            "namespaces": {}
        },
        "src\\service\\storage.js": {
            "name": "src\\service\\storage.js",
            "modules": {},
            "classes": {},
            "fors": {},
            "namespaces": {}
        },
        "src\\service\\vast.js": {
            "name": "src\\service\\vast.js",
            "modules": {},
            "classes": {},
            "fors": {},
            "namespaces": {}
        },
        "src\\service\\xhr.js": {
            "name": "src\\service\\xhr.js",
            "modules": {},
            "classes": {
                "Xhr": 1
            },
            "fors": {
                "Xhr": 1
            },
            "namespaces": {}
        },
        "src\\statics\\config.js": {
            "name": "src\\statics\\config.js",
            "modules": {},
            "classes": {},
            "fors": {},
            "namespaces": {}
        }
    },
    "modules": {},
    "classes": {
        "Device_Arcelik": {
            "name": "Device_Arcelik",
            "shortname": "Device_Arcelik",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "src\\core\\devices\\arcelik.js",
            "line": 5,
            "description": "This is extendable class for Arcelik group devices (includes Beko, Grundig etc)",
            "extends": "Device",
            "is_constructor": 1
        },
        "Device_LG": {
            "name": "Device_LG",
            "shortname": "Device_LG",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "src\\core\\devices\\lg.js",
            "line": 5,
            "description": "This is extendable class for LG NetCast devices",
            "extends": "Device",
            "is_constructor": 1
        },
        "Device_Philips": {
            "name": "Device_Philips",
            "shortname": "Device_Philips",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "src\\core\\devices\\philips.js",
            "line": 5,
            "description": "This is extendable class for Philips devices",
            "extends": "Device",
            "is_constructor": 1
        },
        "Device_Samsung": {
            "name": "Device_Samsung",
            "shortname": "Device_Samsung",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "src\\core\\devices\\samsung.js",
            "line": 6,
            "description": "This is extendable class for Samsung Orsay devices",
            "extends": "Device",
            "is_constructor": 1
        },
        "Device_Tizen": {
            "name": "Device_Tizen",
            "shortname": "Device_Tizen",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "src\\core\\devices\\tizen.js",
            "line": 5,
            "description": "This is extendable class for Samsung Tizen devices",
            "extends": "Device",
            "is_constructor": 1
        },
        "Device_Vestel": {
            "name": "Device_Vestel",
            "shortname": "Device_Vestel",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "src\\core\\devices\\vestel.js",
            "line": 6,
            "description": "This is extendable class for Vestel group devices",
            "extends": "Device",
            "is_constructor": 1
        },
        "Device_Web": {
            "name": "Device_Web",
            "shortname": "Device_Web",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "src\\core\\devices\\web.js",
            "line": 5,
            "description": "This is extendable class for Web Development Environment",
            "extends": "Device",
            "is_constructor": 1
        },
        "Device_WebOs": {
            "name": "Device_WebOs",
            "shortname": "Device_WebOs",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "src\\core\\devices\\webos.js",
            "line": 7,
            "description": "This is extendable class for LG WebOs devices",
            "extends": "Device",
            "is_constructor": 1
        },
        "Device": {
            "name": "Device",
            "shortname": "Device",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "src\\core\\device.js",
            "line": 12,
            "description": "Class representing Device",
            "is_constructor": 1
        },
        "Audio": {
            "name": "Audio",
            "shortname": "Audio",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "src\\player\\audio.js",
            "line": 5,
            "description": "This class is for Audio operations. It works with Player",
            "is_constructor": 1
        },
        "Player": {
            "name": "Player",
            "shortname": "Player",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "src\\player\\player.js",
            "line": 8,
            "description": "This is for Player operations. It depends to Device. Some methods are abstracted by Devices",
            "params": [
                {
                    "name": "currentDevice",
                    "description": "- Current device object",
                    "type": "Object"
                },
                {
                    "name": "events",
                    "description": "- Events class inheritance",
                    "type": "Object"
                },
                {
                    "name": "config",
                    "description": "- Config object",
                    "type": "Object"
                }
            ],
            "is_constructor": 1
        },
        "Subtitle": {
            "name": "Subtitle",
            "shortname": "Subtitle",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "src\\player\\subtitle.js",
            "line": 4,
            "description": "This class is for Subtitle operations. It works with Player",
            "is_constructor": 1
        },
        "Events": {
            "name": "Events",
            "shortname": "Events",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "src\\service\\events.js",
            "line": 60,
            "params": [
                {
                    "name": "loggerClass",
                    "description": ""
                }
            ],
            "is_constructor": 1
        },
        "Logger": {
            "name": "Logger",
            "shortname": "Logger",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "src\\service\\logger.js",
            "line": 1,
            "description": "Class representing Logger"
        },
        "Xhr": {
            "name": "Xhr",
            "shortname": "Xhr",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "src\\service\\xhr.js",
            "line": 1,
            "description": "Class representing Xhr",
            "is_constructor": 1
        }
    },
    "elements": {},
    "classitems": [
        {
            "file": "src\\core\\devices\\arcelik.js",
            "line": 24,
            "description": "Abstract Player createVideoElement function.",
            "abstract": "",
            "itemtype": "method",
            "name": "createVideoElement",
            "return": {
                "description": "true",
                "type": "Boolean"
            },
            "class": "Device_Arcelik"
        },
        {
            "file": "src\\core\\devices\\vestel.js",
            "line": 25,
            "description": "Abstract Player createVideoElement function.",
            "abstract": "",
            "itemtype": "method",
            "name": "createVideoElement",
            "return": {
                "description": "true",
                "type": "Boolean"
            },
            "class": "Device_Vestel"
        },
        {
            "file": "src\\core\\devices\\web.js",
            "line": 24,
            "description": "Abstract Player createVideoElement function.",
            "abstract": "",
            "itemtype": "method",
            "name": "createVideoElement",
            "return": {
                "description": "true",
                "type": "Boolean"
            },
            "class": "Device_Web"
        },
        {
            "file": "src\\core\\devices\\webos.js",
            "line": 28,
            "description": "WebOs native api's are required to use webos.js file.\nThis method provides necessary libraries.",
            "itemtype": "method",
            "name": "addWebOsLib",
            "return": {
                "description": "true",
                "type": "Boolean"
            },
            "class": "Device_WebOs"
        },
        {
            "file": "src\\core\\devices\\webos.js",
            "line": 46,
            "description": "Abstract Player createVideoElement function.",
            "abstract": "",
            "itemtype": "method",
            "name": "createVideoElement",
            "return": {
                "description": "true",
                "type": "Boolean"
            },
            "class": "Device_WebOs"
        },
        {
            "file": "src\\core\\device.js",
            "line": 29,
            "description": "Events are based on class. So it have to be constructed.",
            "itemtype": "method",
            "name": "initEvents",
            "return": {
                "description": "It returns Events class",
                "type": "Object"
            },
            "class": "Device"
        },
        {
            "file": "src\\core\\device.js",
            "line": 42,
            "description": "This function stands for initializing Player class\nIt uses currentDevice and config info (extended during device extending)\nIt pass Events to Player class to use same initialized class",
            "itemtype": "method",
            "name": "initPlayerClass",
            "return": {
                "description": "It returns Events class",
                "type": "Object"
            },
            "class": "Device"
        },
        {
            "file": "src\\player\\audio.js",
            "line": 15,
            "description": "Changes audio tracks with given order. It enables given index and disables other audio elements\nBased on HTML5 video element audioTracks",
            "params": [
                {
                    "name": "order",
                    "description": "- Language order to change",
                    "type": "Number"
                }
            ],
            "itemtype": "method",
            "name": "changeAudioWithOrder",
            "return": {
                "description": "",
                "type": "Boolean"
            },
            "class": "Audio"
        },
        {
            "file": "src\\player\\audio.js",
            "line": 40,
            "description": "It returns current audio order. It checks which audioTrack is enabled\nUsefull for UI to understand which language is available\nTODO It must return object. If video metadata is correct it returns language unicode and name",
            "itemtype": "method",
            "name": "getCurrentAudioWithOrder",
            "return": {
                "description": "order - It returns current audio index",
                "type": "Number"
            },
            "class": "Audio"
        },
        {
            "file": "src\\player\\player.js",
            "line": 25,
            "description": "Creates Video element. It creates a HTML5 video element with config videoPlayerId\nThen you can reach this video element with this.videoElement\nIt appends this video element to body. You have to set it to a fixed position with css.\nMost of Tv manufacturers runs its own video player and its position fixed to (0,0) cooridnates\nIts important to consider your design",
            "itemtype": "method",
            "name": "createVideoElement",
            "return": {
                "description": "null"
            },
            "class": "Player"
        },
        {
            "file": "src\\player\\player.js",
            "line": 50,
            "description": "Sets this.playerInfo with initial values. This values usefull for later usages\nFor example Vast, device specific, DRM Type etc we are using this object",
            "itemtype": "method",
            "name": "setPlayerInfo",
            "return": {
                "description": "this.playerInfo",
                "type": "Object"
            },
            "class": "Player"
        },
        {
            "file": "src\\player\\player.js",
            "line": 81,
            "description": "Removes videoElement from DOM.\nIts recommended to call this function if you are consider to close video\nTODO We have to check DRM inited if yes we have to detach DRM before removing",
            "itemtype": "method",
            "name": "deleteVideoElement",
            "return": {
                "description": "",
                "type": "Boolean"
            },
            "class": "Player"
        },
        {
            "file": "src\\player\\player.js",
            "line": 97,
            "description": "Adds video source to element.\nIf trying to play DRM video you have to send customData with video source\nIt sets this customData to player info so it can be accessible.\nChecks content address if it includes manifest regex it will start DRM functions automatically\nIt catches DRM providers with currentDevice\nYou can send HLS, Live HLS and Microsoft SS (PlayReady) content\nTODO DRM providers can be included in another function",
            "params": [
                {
                    "name": "src",
                    "description": "- Source url for video content",
                    "type": "String"
                },
                {
                    "name": "customData",
                    "description": "- Custom Data",
                    "type": "String"
                }
            ],
            "itemtype": "method",
            "name": "addVideoSource",
            "class": "Player"
        },
        {
            "file": "src\\player\\player.js",
            "line": 163,
            "description": "Initialize ads with given source and type. So type is mandatory field to operate",
            "params": [
                {
                    "name": "type",
                    "description": "- Type of ads source 'VMAP' or just 'VAST'",
                    "type": "String"
                },
                {
                    "name": "url",
                    "description": "- Url of ads source VMAP or VAST Url"
                }
            ],
            "itemtype": "method",
            "name": "initAds",
            "return": {
                "description": "",
                "type": "*"
            },
            "class": "Player"
        },
        {
            "file": "src\\player\\player.js",
            "line": 202,
            "description": "If ads type is VMAP and detected in initAds method it will call automatically this function",
            "params": [
                {
                    "name": "vmapObject",
                    "description": "- Vmap object its response of VMAP XML",
                    "type": "Object"
                }
            ],
            "itemtype": "method",
            "name": "prepareVastFromVmap",
            "class": "Player"
        },
        {
            "file": "src\\player\\player.js",
            "line": 238,
            "description": "Reads Vast file and seperates its source and options (extensions, type etc)",
            "params": [
                {
                    "name": "vastUrl",
                    "description": "- URL address for Vast",
                    "type": "String"
                },
                {
                    "name": "options",
                    "description": "- It stands for this.config.vastOptions",
                    "type": "Object"
                }
            ],
            "itemtype": "method",
            "name": "readVastFile",
            "return": {
                "description": "}"
            },
            "class": "Player"
        },
        {
            "file": "src\\player\\player.js",
            "line": 430,
            "description": "This function is triggered with timeUpdate event of video player.\nIt compares with Vast time with current time",
            "itemtype": "method",
            "name": "checkAdsStatus",
            "class": "Player"
        },
        {
            "file": "src\\player\\player.js",
            "line": 448,
            "description": "It starts ads in videoPlayer. Pauses current video then starting ads\nAfter completing ads it starts old src url with initial seeking with time",
            "params": [
                {
                    "name": "time",
                    "description": "- current time of video player"
                }
            ],
            "itemtype": "method",
            "name": "initVastAd",
            "class": "Player"
        },
        {
            "file": "src\\player\\player.js",
            "line": 489,
            "description": "Adds ads caption to video player to end user notified about Ads\nThis text can be edited via config",
            "return": {
                "description": "",
                "type": "Boolean"
            },
            "itemtype": "method",
            "name": "addAdsCaption",
            "class": "Player"
        },
        {
            "file": "src\\player\\player.js",
            "line": 509,
            "description": "Unloads DRM client. !IMPORTANT! Some devices may be crash if you are not unloaded drm client",
            "itemtype": "method",
            "name": "unloadDrmClient",
            "class": "Player"
        },
        {
            "file": "src\\player\\player.js",
            "line": 534,
            "description": "Initialize WebOs DRM\nTODO This can be move to webos device with abstract",
            "itemtype": "method",
            "name": "setupWebOSDrm",
            "class": "Player"
        },
        {
            "file": "src\\player\\player.js",
            "line": 568,
            "description": "WebOs Drm trigger",
            "itemtype": "method",
            "name": "sendWebOSDrm",
            "class": "Player"
        },
        {
            "file": "src\\player\\player.js",
            "line": 629,
            "description": "Constructor for Audio class",
            "itemtype": "method",
            "name": "initAudioClass",
            "class": "Player"
        },
        {
            "file": "src\\player\\player.js",
            "line": 642,
            "description": "Add Subtitle Method",
            "itemtype": "method",
            "name": "initAudioClass",
            "class": "Player"
        },
        {
            "file": "src\\player\\player.js",
            "line": 660,
            "description": "Play trigger for videoElement",
            "itemtype": "method",
            "name": "play",
            "class": "Player"
        },
        {
            "file": "src\\player\\player.js",
            "line": 670,
            "description": "Stop trigger for videoElement\nit removes video element from dom",
            "itemtype": "method",
            "name": "stop",
            "class": "Player"
        },
        {
            "file": "src\\player\\player.js",
            "line": 683,
            "description": "Pause trigger for videoElement",
            "itemtype": "method",
            "name": "pause",
            "class": "Player"
        },
        {
            "file": "src\\player\\player.js",
            "line": 693,
            "description": "Play/Pause toggle trigger for videoElement",
            "itemtype": "method",
            "name": "togglePlay",
            "class": "Player"
        },
        {
            "file": "src\\player\\player.js",
            "line": 707,
            "description": "Play trigger for a video element with endless autoloop\nyou can use this feature to enable silent background videos",
            "itemtype": "method",
            "name": "playWithLoop",
            "class": "Player"
        },
        {
            "file": "src\\player\\player.js",
            "line": 723,
            "description": "Trigger specific events for all videoElement trigger",
            "itemtype": "method",
            "name": "registerVideoEvents",
            "class": "Player"
        },
        {
            "file": "src\\player\\player.js",
            "line": 820,
            "description": "Drm initiator for OIPF Devices such as Vestel and Arcelik",
            "itemtype": "method",
            "name": "createOIPFDrmAgent",
            "class": "Player"
        },
        {
            "file": "src\\player\\player.js",
            "line": 857,
            "description": "Seek with given value adding",
            "params": [
                {
                    "name": "value",
                    "description": "",
                    "type": "Number"
                }
            ],
            "itemtype": "method",
            "name": "seekWithTimeAdd",
            "class": "Player"
        },
        {
            "file": "src\\player\\player.js",
            "line": 868,
            "description": "Seek to given time\nTODO Check device performances if needed use pause method first",
            "params": [
                {
                    "name": "value",
                    "description": ""
                }
            ],
            "itemtype": "method",
            "name": "seekToTime",
            "class": "Player"
        },
        {
            "file": "src\\player\\player.js",
            "line": 881,
            "description": "Sets currentTime to 0 and plays automatically",
            "itemtype": "method",
            "name": "restart",
            "class": "Player"
        },
        {
            "file": "src\\player\\subtitle.js",
            "line": 20,
            "description": "Set SRT subtitles\n\nexample: https://www.npmjs.com/package/subtitles-parser\nexample: https://raw.githubusercontent.com/bazh/subtitles-parser/master/index.js\nlicense: MIT",
            "params": [
                {
                    "name": "subtitles",
                    "description": "",
                    "type": "String"
                }
            ],
            "class": "Subtitle"
        },
        {
            "file": "src\\player\\subtitle.js",
            "line": 30,
            "description": "Time to miliseconds",
            "params": [
                {
                    "name": "time",
                    "description": "value",
                    "type": "String"
                }
            ],
            "return": {
                "description": "miliseconds",
                "type": "Number"
            },
            "class": "Subtitle"
        },
        {
            "file": "src\\player\\subtitle.js",
            "line": 53,
            "description": "From Srt parser",
            "params": [
                {
                    "name": "data",
                    "description": "srt data",
                    "type": "String"
                },
                {
                    "name": "ms",
                    "description": "true = use miliseconds",
                    "type": "Boolean"
                }
            ],
            "return": {
                "description": "items [{{String} id,\n\t\t\t\t\t\t\t{String} startTime,\n\t\t\t\t\t\t\t{String} endTime,\n\t\t\t\t\t\t\t{String} text }]",
                "type": "Object"
            },
            "class": "Subtitle"
        },
        {
            "file": "src\\player\\subtitle.js",
            "line": 106,
            "description": "Internal player timer",
            "access": "private",
            "tagname": "",
            "class": "Subtitle"
        },
        {
            "file": "src\\service\\events.js",
            "line": 1,
            "description": "Alias a method while keeping the context correct, to allow for overwriting of target method.",
            "params": [
                {
                    "name": "name",
                    "description": "The name of the target method.",
                    "type": "String"
                }
            ],
            "return": {
                "description": "The aliased method",
                "type": "Function"
            },
            "api": "private",
            "itemtype": "method",
            "name": "alias",
            "class": "Events"
        },
        {
            "file": "src\\service\\events.js",
            "line": 16,
            "params": [
                {
                    "name": "listener",
                    "description": ""
                }
            ],
            "itemtype": "method",
            "name": "isValidListener",
            "return": {
                "description": "",
                "type": "*"
            },
            "class": "Events"
        },
        {
            "file": "src\\service\\events.js",
            "line": 36,
            "description": "Finds the index of the listener for the event in its storage array.",
            "params": [
                {
                    "name": "listeners",
                    "description": "Array of listeners to search through.",
                    "type": "Function[]"
                },
                {
                    "name": "listener",
                    "description": "Method to look for.",
                    "type": "Function"
                }
            ],
            "itemtype": "method",
            "name": "indexOfListener",
            "return": {
                "description": "Index of the specified listener, -1 if not found",
                "type": "Number"
            },
            "api": "private",
            "class": "Events"
        },
        {
            "file": "src\\service\\events.js",
            "line": 76,
            "description": "Returns the listener array for the specified event.\nWill initialise the event object and listener arrays if required.\nWill return an object if you use a regex search.\nThe object contains keys for each matched event.\nSo /ba[rz]/ might return an object containing bar and baz.\nBut only if you have either defined them with defineEvent or added some listeners to them.\nEach property in the object response is an array of listener functions.",
            "params": [
                {
                    "name": "evt",
                    "description": "Name of the event to return the listeners from.",
                    "type": "String|RegExp"
                }
            ],
            "itemtype": "method",
            "name": "getListeners",
            "return": {
                "description": "All listener functions for the event.",
                "type": "Function[]|Object"
            },
            "class": "Events"
        },
        {
            "file": "src\\service\\events.js",
            "line": 112,
            "description": "Takes a list of listener objects and flattens it into a list of listener functions.",
            "params": [
                {
                    "name": "listeners",
                    "description": "Raw listener objects.",
                    "type": "Object[]"
                }
            ],
            "itemtype": "method",
            "name": "flattenListeners",
            "return": {
                "description": "Just the listener functions.",
                "type": "Function[]"
            },
            "class": "Events"
        },
        {
            "file": "src\\service\\events.js",
            "line": 133,
            "description": "Fetches the requested listeners via getListeners\nbut will always return the results inside an object.\nThis is mainly for internal use but others may find it useful.",
            "params": [
                {
                    "name": "evt",
                    "description": "Name of the event to return the listeners from.",
                    "type": "String|RegExp"
                }
            ],
            "itemtype": "method",
            "name": "getListenersAsObject",
            "return": {
                "description": "All listener functions for an event in an object.",
                "type": "Object"
            },
            "class": "Events"
        },
        {
            "file": "src\\service\\events.js",
            "line": 155,
            "description": "Adds a listener function to the specified event.\nThe listener will not be added if it is a duplicate.\nIf the listener returns true then;\nit will be removed after it is called.\nIf you pass a regular expression as the event name then;\nthe listener will be added to all events that match it.",
            "params": [
                {
                    "name": "evt",
                    "description": "Name of the event to attach the listener to.",
                    "type": "String|RegExp"
                },
                {
                    "name": "listener",
                    "description": "Method to be called when the event is emitted.\nIf the function returns true then it will be removed after calling.",
                    "type": "Function"
                }
            ],
            "itemtype": "method",
            "name": "addListener",
            "return": {
                "description": "Current instance of EventEmitter for chaining.",
                "type": "Object"
            },
            "class": "Events"
        },
        {
            "file": "src\\service\\events.js",
            "line": 192,
            "description": "Semi-alias of addListener. It will add a listener that will be\nautomatically removed after its first execution.",
            "params": [
                {
                    "name": "evt",
                    "description": "Name of the event to attach the listener to.",
                    "type": "String|RegExp"
                },
                {
                    "name": "listener",
                    "description": "Method to be called when the event is emitted.\nIf the function returns true then it will be removed after calling.",
                    "type": "Function"
                }
            ],
            "itemtype": "method",
            "name": "addOnceListener",
            "return": {
                "description": "Current instance of EventEmitter for chaining.",
                "type": "Object"
            },
            "class": "Events"
        },
        {
            "file": "src\\service\\events.js",
            "line": 210,
            "description": "Defines an event name.\nThis is required if you want to use a regex to add a listener to multiple events at once.\nIf you don't do this then how do you expect it to know what event to add to?\nShould it just add to every possible match for a regex? No. That is scary and bad.\nYou need to tell it what event names should be matched by a regex.",
            "params": [
                {
                    "name": "evt",
                    "description": "Name of the event to create.",
                    "type": "String"
                }
            ],
            "itemtype": "method",
            "name": "defineEvent",
            "return": {
                "description": "Current instance of EventEmitter for chaining.",
                "type": "Object"
            },
            "class": "Events"
        },
        {
            "file": "src\\service\\events.js",
            "line": 227,
            "description": "Uses defineEvent to define multiple events.",
            "params": [
                {
                    "name": "evts",
                    "description": "An array of event names to define.",
                    "type": "String[]"
                }
            ],
            "itemtype": "method",
            "name": "defineEvents",
            "return": {
                "description": "Current instance of EventEmitter for chaining.",
                "type": "Object"
            },
            "class": "Events"
        },
        {
            "file": "src\\service\\events.js",
            "line": 242,
            "description": "Removes a listener function from the specified event.\nWhen passed a regular expression as the event name,\nit will remove the listener from all events that match it.",
            "params": [
                {
                    "name": "evt",
                    "description": "Name of the event to remove the listener from.",
                    "type": "String|RegExp"
                },
                {
                    "name": "listener",
                    "description": "Method to remove from the event.",
                    "type": "Function"
                }
            ],
            "itemtype": "method",
            "name": "removeListener",
            "return": {
                "description": "Current instance of EventEmitter for chaining.",
                "type": "Object"
            },
            "class": "Events"
        },
        {
            "file": "src\\service\\events.js",
            "line": 271,
            "description": "Adds listeners in bulk using the manipulateListeners method.\nIf you pass an object as the first argument you can add to multiple events at once.\nThe object should contain key value pairs of events and listeners or listener arrays.\nYou can also pass it an event name and an array of listeners to be added.\nCan pass it a regular expression to add the array of listeners to all events that match it.\nYeah, this function does quite a bit. That's probably a bad thing.",
            "params": [
                {
                    "name": "evt",
                    "description": "An event name if you will pass an array of listeners next.\nAn object if you wish to add to multiple events at once.",
                    "type": "String|Object|RegExp"
                },
                {
                    "name": "listeners",
                    "description": "An optional array of listener functions to add.",
                    "type": "Function[]",
                    "optional": true
                }
            ],
            "itemtype": "method",
            "name": "addListeners",
            "return": {
                "description": "Current instance of EventEmitter for chaining.",
                "type": "Object"
            },
            "class": "Events"
        },
        {
            "file": "src\\service\\events.js",
            "line": 290,
            "description": "Removes listeners in bulk using the manipulateListeners method.\nIf you pass an object as the first argument you can remove from multiple events at once.\nThe object should contain key value pairs of events and listeners or listener arrays.\nYou can also pass it an event name and an array of listeners to be removed.\nYou can also pass it a regular expression to\nremove the listeners from all events that match it.",
            "params": [
                {
                    "name": "evt",
                    "description": "An event name if you will pass an array of listeners next.\nAn object if you wish to remove from multiple events at once.",
                    "type": "String|Object|RegExp"
                },
                {
                    "name": "listeners",
                    "description": "An optional array of listener functions to remove.",
                    "type": "Function[]",
                    "optional": true
                }
            ],
            "itemtype": "method",
            "name": "removeListeners",
            "return": {
                "description": "Current instance of EventEmitter for chaining.",
                "type": "Object"
            },
            "class": "Events"
        },
        {
            "file": "src\\service\\events.js",
            "line": 309,
            "description": "Edits listeners in bulk.\nThe addListeners and removeListeners methods both use this to do their job.\nYou should really use those instead, this is a little lower level.\nThe first argument will determine if the listeners are removed (true) or added (false).\nIf you pass an object as the second argument you can add/remove from multiple events at once.\nThe object should contain key value pairs of events and listeners or listener arrays.\nYou can also pass it an event name and an array of listeners to be added/removed.\nYou can pass it a regular expression to manipulate the listeners of all events that match it.",
            "params": [
                {
                    "name": "remove",
                    "description": "True if you want to remove listeners, false if you want to add.",
                    "type": "Boolean"
                },
                {
                    "name": "evt",
                    "description": "An event name if you will pass an array of listeners next.",
                    "type": "String|Object|RegExp"
                },
                {
                    "name": "listeners",
                    "description": "An optional array of listener functions to add/remove.",
                    "type": "Function[]",
                    "optional": true
                }
            ],
            "itemtype": "method",
            "name": "manipulateListeners",
            "return": {
                "description": "Current instance of EventEmitter for chaining.",
                "type": "Object"
            },
            "class": "Events"
        },
        {
            "file": "src\\service\\events.js",
            "line": 360,
            "description": "Removes all listeners from a specified event.\nIf you do not specify an event then all listeners will be removed.\nThat means every event will be emptied.\nYou can also pass a regex to remove all events that match it.",
            "params": [
                {
                    "name": "evt",
                    "description": "Optional name of the event to remove all listeners for.",
                    "type": "String|RegExp",
                    "optional": true
                }
            ],
            "itemtype": "method",
            "name": "removeEvent",
            "return": {
                "description": "Current instance of EventEmitter for chaining.",
                "type": "Object"
            },
            "class": "Events"
        },
        {
            "file": "src\\service\\events.js",
            "line": 395,
            "description": "Emits an event of your choice.\nWhen emitted, every listener attached to that event will be executed.\nIf you pass the optional argument array then those arguments\nwill be passed to every listener upon execution.\nBecause it uses `apply`, your array of arguments will be passed as\nif you wrote them out separately.\nSo they will not arrive within the array on the other side, they will be separate.\nYou can also pass a regular expression to emit to all events that match it.",
            "params": [
                {
                    "name": "evt",
                    "description": "Name of the event to emit and execute listeners for.",
                    "type": "String|RegExp"
                },
                {
                    "name": "args",
                    "description": "Optional array of arguments to be passed to each listener.",
                    "type": "Array",
                    "optional": true
                }
            ],
            "itemtype": "method",
            "name": "triggerEvent",
            "return": {
                "description": "Current instance of EventEmitter for chaining.",
                "type": "Object"
            },
            "class": "Events"
        },
        {
            "file": "src\\service\\events.js",
            "line": 444,
            "description": "Subtly different from emitEvent in that it will pass its arguments on to the listeners,\nas opposed to taking a single array of arguments to pass on.\nyou can pass a regex in place of the event name to emit to all events that match it.",
            "params": [
                {
                    "name": "evt",
                    "description": "Name of the event to emit and execute listeners for.",
                    "type": "String|RegExp"
                },
                {
                    "name": "Optional",
                    "description": "additional arguments to be passed to each listener.",
                    "type": "...*"
                }
            ],
            "itemtype": "method",
            "name": "emit",
            "return": {
                "description": "Current instance of EventEmitter for chaining.",
                "type": "Object"
            },
            "class": "Events"
        },
        {
            "file": "src\\service\\events.js",
            "line": 460,
            "description": "Sets the current value to check against when executing listeners. If a\nlisteners return value matches the one set here then it will be removed\nafter execution. This value defaults to true.",
            "params": [
                {
                    "name": "value",
                    "description": "The new value to check for when executing listeners.",
                    "type": "*"
                }
            ],
            "itemtype": "method",
            "name": "setOnceReturnValue",
            "return": {
                "description": "Current instance of EventEmitter for chaining.",
                "type": "Object"
            },
            "class": "Events"
        },
        {
            "file": "src\\service\\events.js",
            "line": 475,
            "description": "Fetches the current value to check against when executing listeners. If\nthe listeners return value matches this one then it should be removed\nautomatically. It will return true by default.",
            "itemtype": "method",
            "name": "_getOnceReturnValue",
            "return": {
                "description": "The current value to check for or the default, true.",
                "type": "*|Boolean"
            },
            "api": "private",
            "class": "Events"
        },
        {
            "file": "src\\service\\events.js",
            "line": 495,
            "description": "Fetches the events object and creates one if required.",
            "itemtype": "method",
            "name": "_getEvents",
            "return": {
                "description": "The events storage object.",
                "type": "Object"
            },
            "api": "private",
            "class": "Events"
        },
        {
            "file": "src\\service\\ganalytics.js",
            "line": 1,
            "class": "Logger"
        },
        {
            "file": "src\\service\\logger.js",
            "line": 7,
            "description": "addLog stands for console log it have to show console logs on TV Screen\nTODO Design and create screens for console on real devices\nTODO Implement real device logger system",
            "params": [
                {
                    "name": "from",
                    "description": "- Where triggered this log function"
                },
                {
                    "name": "type",
                    "description": "- Type of log (info, error, create, progress, default)"
                },
                {
                    "name": "message",
                    "description": "- Message of log"
                },
                {
                    "name": "variable",
                    "description": "- Variable of log it can be Array, Object, string etc"
                }
            ],
            "itemtype": "method",
            "name": "addLog",
            "static": 1,
            "class": "Logger"
        },
        {
            "file": "src\\service\\storage.js",
            "line": 4,
            "description": "Set value to the storage",
            "params": [
                {
                    "name": "name",
                    "description": "",
                    "type": "String"
                },
                {
                    "name": "value",
                    "description": "",
                    "type": "Object/String/Number"
                }
            ],
            "return": {
                "description": "",
                "type": "Boolean"
            },
            "class": "Xhr"
        },
        {
            "file": "src\\service\\storage.js",
            "line": 17,
            "description": "Get value from the storage",
            "params": [
                {
                    "name": "name",
                    "description": "",
                    "type": "String"
                }
            ],
            "return": {
                "description": "Retrurns FALSE",
                "type": "Object/String/Number"
            },
            "class": "Xhr"
        },
        {
            "file": "src\\service\\storage.js",
            "line": 40,
            "description": "Clear all stored data",
            "return": {
                "description": "",
                "type": "Boolean"
            },
            "class": "Xhr"
        },
        {
            "file": "src\\service\\vast.js",
            "line": 1,
            "description": "Parses VMAP Ad Source\nTODO Detailed documentation can be written",
            "params": [
                {
                    "name": "xml",
                    "description": ""
                }
            ],
            "is_constructor": 1,
            "class": "Xhr"
        },
        {
            "file": "src\\service\\vast.js",
            "line": 42,
            "description": "Parses VMAP AdBreaks\nTODO Detailed documentation can be written",
            "params": [
                {
                    "name": "xml",
                    "description": ""
                }
            ],
            "is_constructor": 1,
            "class": "Xhr"
        },
        {
            "file": "src\\service\\vast.js",
            "line": 124,
            "description": "TODO Detailed documentation can be written",
            "params": [
                {
                    "name": "event",
                    "description": ""
                },
                {
                    "name": "errorCode",
                    "description": ""
                }
            ],
            "return": {
                "description": "",
                "type": "Array"
            },
            "class": "Xhr"
        },
        {
            "file": "src\\service\\vast.js",
            "line": 151,
            "description": "TODO Detailed documentation can be written",
            "params": [
                {
                    "name": "uri",
                    "description": ""
                }
            ],
            "return": {
                "description": "",
                "type": "*"
            },
            "class": "Xhr"
        },
        {
            "file": "src\\service\\vast.js",
            "line": 165,
            "type": "{{parseVMAP: ((xml, Events)), parsedVMAP: {}, vastArray: Array}}",
            "class": "Xhr"
        },
        {
            "file": "src\\service\\xhr.js",
            "line": 8,
            "description": "getJSON of given url source with callbacks",
            "params": [
                {
                    "name": "url",
                    "description": "",
                    "type": "String"
                },
                {
                    "name": "successHandler",
                    "description": "",
                    "type": "Function"
                },
                {
                    "name": "errorHandler",
                    "description": "",
                    "type": "Function"
                }
            ],
            "itemtype": "method",
            "name": "getJSON",
            "class": "Xhr"
        },
        {
            "file": "src\\service\\xhr.js",
            "line": 38,
            "description": "sendJSON of given url source with callbacks",
            "params": [
                {
                    "name": "url",
                    "description": "",
                    "type": "String"
                },
                {
                    "name": "data",
                    "description": "",
                    "type": "Object"
                },
                {
                    "name": "successHandler",
                    "description": "",
                    "type": "Function"
                },
                {
                    "name": "errorHandler",
                    "description": "",
                    "type": "Function"
                }
            ],
            "itemtype": "method",
            "name": "sendJSON",
            "class": "Xhr"
        },
        {
            "file": "src\\statics\\config.js",
            "line": 1,
            "type": "{{width: string, height: string, deneme2: string, videoPlayerId: string, vastOptions: {media_type: string, media_bitrate_min: number, media_bitrate_max: number, ad_caption: string}, DRM: {playReady: {mimeType: string, DRMSystemID: string, licenserUrl: string}}}}",
            "class": ""
        }
    ],
    "warnings": [
        {
            "message": "unknown tag: abstract",
            "line": " src\\core\\devices\\arcelik.js:24"
        },
        {
            "message": "unknown tag: abstract",
            "line": " src\\core\\devices\\vestel.js:25"
        },
        {
            "message": "unknown tag: abstract",
            "line": " src\\core\\devices\\web.js:24"
        },
        {
            "message": "unknown tag: abstract",
            "line": " src\\core\\devices\\webos.js:46"
        },
        {
            "message": "unknown tag: api",
            "line": " src\\service\\events.js:1"
        },
        {
            "message": "unknown tag: api",
            "line": " src\\service\\events.js:36"
        },
        {
            "message": "unknown tag: api",
            "line": " src\\service\\events.js:475"
        },
        {
            "message": "unknown tag: api",
            "line": " src\\service\\events.js:495"
        },
        {
            "message": "replacing incorrect tag: returns with return",
            "line": " src\\service\\storage.js:4"
        },
        {
            "message": "replacing incorrect tag: returns with return",
            "line": " src\\service\\storage.js:17"
        },
        {
            "message": "replacing incorrect tag: returns with return",
            "line": " src\\service\\storage.js:40"
        },
        {
            "message": "Missing item type\nSet SRT subtitles\n\nexample: https://www.npmjs.com/package/subtitles-parser\nexample: https://raw.githubusercontent.com/bazh/subtitles-parser/master/index.js\nlicense: MIT",
            "line": " src\\player\\subtitle.js:20"
        },
        {
            "message": "Missing item type\nTime to miliseconds",
            "line": " src\\player\\subtitle.js:30"
        },
        {
            "message": "Missing item type\nFrom Srt parser",
            "line": " src\\player\\subtitle.js:53"
        },
        {
            "message": "Missing item type\nInternal player timer",
            "line": " src\\player\\subtitle.js:106"
        },
        {
            "message": "Missing item type",
            "line": " src\\service\\ganalytics.js:1"
        },
        {
            "message": "Missing item type\nSet value to the storage",
            "line": " src\\service\\storage.js:4"
        },
        {
            "message": "Missing item type\nGet value from the storage",
            "line": " src\\service\\storage.js:17"
        },
        {
            "message": "Missing item type\nClear all stored data",
            "line": " src\\service\\storage.js:40"
        },
        {
            "message": "Missing item type\nParses VMAP Ad Source\nTODO Detailed documentation can be written",
            "line": " src\\service\\vast.js:1"
        },
        {
            "message": "Missing item type\nParses VMAP AdBreaks\nTODO Detailed documentation can be written",
            "line": " src\\service\\vast.js:42"
        },
        {
            "message": "Missing item type\nTODO Detailed documentation can be written",
            "line": " src\\service\\vast.js:124"
        },
        {
            "message": "Missing item type\nTODO Detailed documentation can be written",
            "line": " src\\service\\vast.js:151"
        },
        {
            "message": "Missing item type",
            "line": " src\\service\\vast.js:165"
        },
        {
            "message": "Missing item type",
            "line": " src\\statics\\config.js:1"
        }
    ]
}