"use-strict"; const { objSerialize, notNullElse } = require("./util.js") /** * @public * @readonly * @enum {number} */ const EDisplayType = { "NATIVE": -1, "LANDSCAPE": 0, "SQUARE": 1, "STRETCH": 2 } /** * @public * @constructor * @params {string} uri * @params {string} type * @params {string[]} codecs * @params {String} size * @params {EDisplayType} [displayType=null] size * @returns {RadioPreview} */ const RadioPreview = function (uri, type, codecs, size, displayType=null) { this.uri = uri this.type = type this.codecs = codecs?.length ? codecs : undefined this.size = size.replace(/x/g, "×") this.display_type = displayType return this } /** * @public * @params {string} uri * @params {string} type * @params {string[]} codecs * @params {String} size * @params {EDisplayType} [displayType=null] size * @returns {RadioPreview} */ RadioPreview.new = (uri, type, codecs, size, displayType) => new RadioPreview(uri, type, codecs, size, displayType) /** * @deprecated * @params {RadioSource} radioSource * @returns {Object} */ RadioPreview.prototype.serialize = function (radioSource) { this.display_type = notNullElse(this.display_type, radioSource.type.startsWith("video/") ? EDisplayType.NATIVE : EDisplayType.SQUARE) return objSerialize(this, [ "display_type", "type", "codecs", "size", "uri" ]) } module.exports = { RadioPreview, EDisplayType }