<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# NO CHECKED-IN PROTOBUF GENCODE
# source: livekit_rtc.proto

namespace Livekit;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\GPBUtil;
use Google\Protobuf\RepeatedField;

/**
 * Generated from protobuf message <code>livekit.UpdateTrackSettings</code>
 */
class UpdateTrackSettings extends \Google\Protobuf\Internal\Message
{
    /**
     * Generated from protobuf field <code>repeated string track_sids = 1;</code>
     */
    private $track_sids;
    /**
     * when true, the track is placed in a paused state, with no new data returned
     *
     * Generated from protobuf field <code>bool disabled = 3;</code>
     */
    protected $disabled = false;
    /**
     * deprecated in favor of width & height
     *
     * Generated from protobuf field <code>.livekit.VideoQuality quality = 4;</code>
     */
    protected $quality = 0;
    /**
     * for video, width to receive
     *
     * Generated from protobuf field <code>uint32 width = 5;</code>
     */
    protected $width = 0;
    /**
     * for video, height to receive
     *
     * Generated from protobuf field <code>uint32 height = 6;</code>
     */
    protected $height = 0;
    /**
     * Generated from protobuf field <code>uint32 fps = 7;</code>
     */
    protected $fps = 0;
    /**
     * subscription priority. 1 being the highest (0 is unset)
     * when unset, server sill assign priority based on the order of subscription
     * server will use priority in the following ways:
     * 1. when subscribed tracks exceed per-participant subscription limit, server will
     *    pause the lowest priority tracks
     * 2. when the network is congested, server will assign available bandwidth to
     *    higher priority tracks first. lowest priority tracks can be paused
     *
     * Generated from protobuf field <code>uint32 priority = 8;</code>
     */
    protected $priority = 0;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string[] $track_sids
     *     @type bool $disabled
     *           when true, the track is placed in a paused state, with no new data returned
     *     @type int $quality
     *           deprecated in favor of width & height
     *     @type int $width
     *           for video, width to receive
     *     @type int $height
     *           for video, height to receive
     *     @type int $fps
     *     @type int $priority
     *           subscription priority. 1 being the highest (0 is unset)
     *           when unset, server sill assign priority based on the order of subscription
     *           server will use priority in the following ways:
     *           1. when subscribed tracks exceed per-participant subscription limit, server will
     *              pause the lowest priority tracks
     *           2. when the network is congested, server will assign available bandwidth to
     *              higher priority tracks first. lowest priority tracks can be paused
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\LivekitRtc::initOnce();
        parent::__construct($data);
    }

    /**
     * Generated from protobuf field <code>repeated string track_sids = 1;</code>
     * @return RepeatedField<string>
     */
    public function getTrackSids()
    {
        return $this->track_sids;
    }

    /**
     * Generated from protobuf field <code>repeated string track_sids = 1;</code>
     * @param string[] $var
     * @return $this
     */
    public function setTrackSids($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->track_sids = $arr;

        return $this;
    }

    /**
     * when true, the track is placed in a paused state, with no new data returned
     *
     * Generated from protobuf field <code>bool disabled = 3;</code>
     * @return bool
     */
    public function getDisabled()
    {
        return $this->disabled;
    }

    /**
     * when true, the track is placed in a paused state, with no new data returned
     *
     * Generated from protobuf field <code>bool disabled = 3;</code>
     * @param bool $var
     * @return $this
     */
    public function setDisabled($var)
    {
        GPBUtil::checkBool($var);
        $this->disabled = $var;

        return $this;
    }

    /**
     * deprecated in favor of width & height
     *
     * Generated from protobuf field <code>.livekit.VideoQuality quality = 4;</code>
     * @return int
     */
    public function getQuality()
    {
        return $this->quality;
    }

    /**
     * deprecated in favor of width & height
     *
     * Generated from protobuf field <code>.livekit.VideoQuality quality = 4;</code>
     * @param int $var
     * @return $this
     */
    public function setQuality($var)
    {
        GPBUtil::checkEnum($var, \Livekit\VideoQuality::class);
        $this->quality = $var;

        return $this;
    }

    /**
     * for video, width to receive
     *
     * Generated from protobuf field <code>uint32 width = 5;</code>
     * @return int
     */
    public function getWidth()
    {
        return $this->width;
    }

    /**
     * for video, width to receive
     *
     * Generated from protobuf field <code>uint32 width = 5;</code>
     * @param int $var
     * @return $this
     */
    public function setWidth($var)
    {
        GPBUtil::checkUint32($var);
        $this->width = $var;

        return $this;
    }

    /**
     * for video, height to receive
     *
     * Generated from protobuf field <code>uint32 height = 6;</code>
     * @return int
     */
    public function getHeight()
    {
        return $this->height;
    }

    /**
     * for video, height to receive
     *
     * Generated from protobuf field <code>uint32 height = 6;</code>
     * @param int $var
     * @return $this
     */
    public function setHeight($var)
    {
        GPBUtil::checkUint32($var);
        $this->height = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>uint32 fps = 7;</code>
     * @return int
     */
    public function getFps()
    {
        return $this->fps;
    }

    /**
     * Generated from protobuf field <code>uint32 fps = 7;</code>
     * @param int $var
     * @return $this
     */
    public function setFps($var)
    {
        GPBUtil::checkUint32($var);
        $this->fps = $var;

        return $this;
    }

    /**
     * subscription priority. 1 being the highest (0 is unset)
     * when unset, server sill assign priority based on the order of subscription
     * server will use priority in the following ways:
     * 1. when subscribed tracks exceed per-participant subscription limit, server will
     *    pause the lowest priority tracks
     * 2. when the network is congested, server will assign available bandwidth to
     *    higher priority tracks first. lowest priority tracks can be paused
     *
     * Generated from protobuf field <code>uint32 priority = 8;</code>
     * @return int
     */
    public function getPriority()
    {
        return $this->priority;
    }

    /**
     * subscription priority. 1 being the highest (0 is unset)
     * when unset, server sill assign priority based on the order of subscription
     * server will use priority in the following ways:
     * 1. when subscribed tracks exceed per-participant subscription limit, server will
     *    pause the lowest priority tracks
     * 2. when the network is congested, server will assign available bandwidth to
     *    higher priority tracks first. lowest priority tracks can be paused
     *
     * Generated from protobuf field <code>uint32 priority = 8;</code>
     * @param int $var
     * @return $this
     */
    public function setPriority($var)
    {
        GPBUtil::checkUint32($var);
        $this->priority = $var;

        return $this;
    }

}

