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

namespace Rv\Data;

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

/**
 * Generated from protobuf message <code>rv.data.Presentation</code>
 */
class Presentation extends \Google\Protobuf\Internal\Message
{
    /**
     * Generated from protobuf field <code>.rv.data.ApplicationInfo application_info = 1;</code>
     */
    protected $application_info = null;
    /**
     * Generated from protobuf field <code>.rv.data.UUID uuid = 2;</code>
     */
    protected $uuid = null;
    /**
     * Generated from protobuf field <code>string name = 3;</code>
     */
    protected $name = '';
    /**
     * Generated from protobuf field <code>.rv.data.Timestamp last_date_used = 4;</code>
     */
    protected $last_date_used = null;
    /**
     * Generated from protobuf field <code>.rv.data.Timestamp last_modified_date = 5;</code>
     */
    protected $last_modified_date = null;
    /**
     * Generated from protobuf field <code>string category = 6;</code>
     */
    protected $category = '';
    /**
     * Generated from protobuf field <code>string notes = 7;</code>
     */
    protected $notes = '';
    /**
     * Generated from protobuf field <code>.rv.data.Background background = 8;</code>
     */
    protected $background = null;
    /**
     * Generated from protobuf field <code>.rv.data.URL chord_chart = 9;</code>
     */
    protected $chord_chart = null;
    /**
     * Generated from protobuf field <code>.rv.data.UUID selected_arrangement = 10;</code>
     */
    protected $selected_arrangement = null;
    /**
     * Generated from protobuf field <code>repeated .rv.data.Presentation.Arrangement arrangements = 11;</code>
     */
    private $arrangements;
    /**
     * Generated from protobuf field <code>repeated .rv.data.Presentation.CueGroup cue_groups = 12;</code>
     */
    private $cue_groups;
    /**
     * Generated from protobuf field <code>repeated .rv.data.Cue cues = 13;</code>
     */
    private $cues;
    /**
     * Generated from protobuf field <code>.rv.data.Presentation.CCLI ccli = 14;</code>
     */
    protected $ccli = null;
    /**
     * Generated from protobuf field <code>.rv.data.Presentation.BibleReference bible_reference = 15;</code>
     */
    protected $bible_reference = null;
    /**
     * Generated from protobuf field <code>.rv.data.Presentation.Timeline timeline = 17;</code>
     */
    protected $timeline = null;
    /**
     * Generated from protobuf field <code>.rv.data.Transition transition = 18;</code>
     */
    protected $transition = null;
    /**
     * Generated from protobuf field <code>.rv.data.Action.ContentDestination content_destination = 19;</code>
     */
    protected $content_destination = 0;
    /**
     * Generated from protobuf field <code>.rv.data.Presentation.MultiTracksLicensing multi_tracks_licensing = 21;</code>
     */
    protected $multi_tracks_licensing = null;
    /**
     * Generated from protobuf field <code>string music_key = 22;</code>
     */
    protected $music_key = '';
    /**
     * Generated from protobuf field <code>.rv.data.Presentation.Music music = 23;</code>
     */
    protected $music = null;
    protected $SlideShow;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type \Rv\Data\ApplicationInfo $application_info
     *     @type \Rv\Data\UUID $uuid
     *     @type string $name
     *     @type \Rv\Data\Timestamp $last_date_used
     *     @type \Rv\Data\Timestamp $last_modified_date
     *     @type string $category
     *     @type string $notes
     *     @type \Rv\Data\Background $background
     *     @type \Rv\Data\URL $chord_chart
     *     @type \Rv\Data\UUID $selected_arrangement
     *     @type array<\Rv\Data\Presentation\Arrangement>|\Google\Protobuf\Internal\RepeatedField $arrangements
     *     @type array<\Rv\Data\Presentation\CueGroup>|\Google\Protobuf\Internal\RepeatedField $cue_groups
     *     @type array<\Rv\Data\Cue>|\Google\Protobuf\Internal\RepeatedField $cues
     *     @type \Rv\Data\Presentation\CCLI $ccli
     *     @type \Rv\Data\Presentation\BibleReference $bible_reference
     *     @type \Rv\Data\Presentation\Timeline $timeline
     *     @type \Rv\Data\Transition $transition
     *     @type int $content_destination
     *     @type \Rv\Data\Presentation\MultiTracksLicensing $multi_tracks_licensing
     *     @type string $music_key
     *     @type \Rv\Data\Presentation\Music $music
     *     @type float $slide_show_duration
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Presentation::initOnce();
        parent::__construct($data);
    }

    /**
     * Generated from protobuf field <code>.rv.data.ApplicationInfo application_info = 1;</code>
     * @return \Rv\Data\ApplicationInfo|null
     */
    public function getApplicationInfo()
    {
        return $this->application_info;
    }

    public function hasApplicationInfo()
    {
        return isset($this->application_info);
    }

    public function clearApplicationInfo()
    {
        unset($this->application_info);
    }

    /**
     * Generated from protobuf field <code>.rv.data.ApplicationInfo application_info = 1;</code>
     * @param \Rv\Data\ApplicationInfo $var
     * @return $this
     */
    public function setApplicationInfo($var)
    {
        GPBUtil::checkMessage($var, \Rv\Data\ApplicationInfo::class);
        $this->application_info = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.data.UUID uuid = 2;</code>
     * @return \Rv\Data\UUID|null
     */
    public function getUuid()
    {
        return $this->uuid;
    }

    public function hasUuid()
    {
        return isset($this->uuid);
    }

    public function clearUuid()
    {
        unset($this->uuid);
    }

    /**
     * Generated from protobuf field <code>.rv.data.UUID uuid = 2;</code>
     * @param \Rv\Data\UUID $var
     * @return $this
     */
    public function setUuid($var)
    {
        GPBUtil::checkMessage($var, \Rv\Data\UUID::class);
        $this->uuid = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>string name = 3;</code>
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * Generated from protobuf field <code>string name = 3;</code>
     * @param string $var
     * @return $this
     */
    public function setName($var)
    {
        GPBUtil::checkString($var, True);
        $this->name = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.data.Timestamp last_date_used = 4;</code>
     * @return \Rv\Data\Timestamp|null
     */
    public function getLastDateUsed()
    {
        return $this->last_date_used;
    }

    public function hasLastDateUsed()
    {
        return isset($this->last_date_used);
    }

    public function clearLastDateUsed()
    {
        unset($this->last_date_used);
    }

    /**
     * Generated from protobuf field <code>.rv.data.Timestamp last_date_used = 4;</code>
     * @param \Rv\Data\Timestamp $var
     * @return $this
     */
    public function setLastDateUsed($var)
    {
        GPBUtil::checkMessage($var, \Rv\Data\Timestamp::class);
        $this->last_date_used = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.data.Timestamp last_modified_date = 5;</code>
     * @return \Rv\Data\Timestamp|null
     */
    public function getLastModifiedDate()
    {
        return $this->last_modified_date;
    }

    public function hasLastModifiedDate()
    {
        return isset($this->last_modified_date);
    }

    public function clearLastModifiedDate()
    {
        unset($this->last_modified_date);
    }

    /**
     * Generated from protobuf field <code>.rv.data.Timestamp last_modified_date = 5;</code>
     * @param \Rv\Data\Timestamp $var
     * @return $this
     */
    public function setLastModifiedDate($var)
    {
        GPBUtil::checkMessage($var, \Rv\Data\Timestamp::class);
        $this->last_modified_date = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>string category = 6;</code>
     * @return string
     */
    public function getCategory()
    {
        return $this->category;
    }

    /**
     * Generated from protobuf field <code>string category = 6;</code>
     * @param string $var
     * @return $this
     */
    public function setCategory($var)
    {
        GPBUtil::checkString($var, True);
        $this->category = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>string notes = 7;</code>
     * @return string
     */
    public function getNotes()
    {
        return $this->notes;
    }

    /**
     * Generated from protobuf field <code>string notes = 7;</code>
     * @param string $var
     * @return $this
     */
    public function setNotes($var)
    {
        GPBUtil::checkString($var, True);
        $this->notes = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.data.Background background = 8;</code>
     * @return \Rv\Data\Background|null
     */
    public function getBackground()
    {
        return $this->background;
    }

    public function hasBackground()
    {
        return isset($this->background);
    }

    public function clearBackground()
    {
        unset($this->background);
    }

    /**
     * Generated from protobuf field <code>.rv.data.Background background = 8;</code>
     * @param \Rv\Data\Background $var
     * @return $this
     */
    public function setBackground($var)
    {
        GPBUtil::checkMessage($var, \Rv\Data\Background::class);
        $this->background = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.data.URL chord_chart = 9;</code>
     * @return \Rv\Data\URL|null
     */
    public function getChordChart()
    {
        return $this->chord_chart;
    }

    public function hasChordChart()
    {
        return isset($this->chord_chart);
    }

    public function clearChordChart()
    {
        unset($this->chord_chart);
    }

    /**
     * Generated from protobuf field <code>.rv.data.URL chord_chart = 9;</code>
     * @param \Rv\Data\URL $var
     * @return $this
     */
    public function setChordChart($var)
    {
        GPBUtil::checkMessage($var, \Rv\Data\URL::class);
        $this->chord_chart = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.data.UUID selected_arrangement = 10;</code>
     * @return \Rv\Data\UUID|null
     */
    public function getSelectedArrangement()
    {
        return $this->selected_arrangement;
    }

    public function hasSelectedArrangement()
    {
        return isset($this->selected_arrangement);
    }

    public function clearSelectedArrangement()
    {
        unset($this->selected_arrangement);
    }

    /**
     * Generated from protobuf field <code>.rv.data.UUID selected_arrangement = 10;</code>
     * @param \Rv\Data\UUID $var
     * @return $this
     */
    public function setSelectedArrangement($var)
    {
        GPBUtil::checkMessage($var, \Rv\Data\UUID::class);
        $this->selected_arrangement = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated .rv.data.Presentation.Arrangement arrangements = 11;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getArrangements()
    {
        return $this->arrangements;
    }

    /**
     * Generated from protobuf field <code>repeated .rv.data.Presentation.Arrangement arrangements = 11;</code>
     * @param array<\Rv\Data\Presentation\Arrangement>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setArrangements($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Rv\Data\Presentation\Arrangement::class);
        $this->arrangements = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated .rv.data.Presentation.CueGroup cue_groups = 12;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getCueGroups()
    {
        return $this->cue_groups;
    }

    /**
     * Generated from protobuf field <code>repeated .rv.data.Presentation.CueGroup cue_groups = 12;</code>
     * @param array<\Rv\Data\Presentation\CueGroup>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setCueGroups($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Rv\Data\Presentation\CueGroup::class);
        $this->cue_groups = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated .rv.data.Cue cues = 13;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getCues()
    {
        return $this->cues;
    }

    /**
     * Generated from protobuf field <code>repeated .rv.data.Cue cues = 13;</code>
     * @param array<\Rv\Data\Cue>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setCues($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Rv\Data\Cue::class);
        $this->cues = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.data.Presentation.CCLI ccli = 14;</code>
     * @return \Rv\Data\Presentation\CCLI|null
     */
    public function getCcli()
    {
        return $this->ccli;
    }

    public function hasCcli()
    {
        return isset($this->ccli);
    }

    public function clearCcli()
    {
        unset($this->ccli);
    }

    /**
     * Generated from protobuf field <code>.rv.data.Presentation.CCLI ccli = 14;</code>
     * @param \Rv\Data\Presentation\CCLI $var
     * @return $this
     */
    public function setCcli($var)
    {
        GPBUtil::checkMessage($var, \Rv\Data\Presentation\CCLI::class);
        $this->ccli = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.data.Presentation.BibleReference bible_reference = 15;</code>
     * @return \Rv\Data\Presentation\BibleReference|null
     */
    public function getBibleReference()
    {
        return $this->bible_reference;
    }

    public function hasBibleReference()
    {
        return isset($this->bible_reference);
    }

    public function clearBibleReference()
    {
        unset($this->bible_reference);
    }

    /**
     * Generated from protobuf field <code>.rv.data.Presentation.BibleReference bible_reference = 15;</code>
     * @param \Rv\Data\Presentation\BibleReference $var
     * @return $this
     */
    public function setBibleReference($var)
    {
        GPBUtil::checkMessage($var, \Rv\Data\Presentation\BibleReference::class);
        $this->bible_reference = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.data.Presentation.Timeline timeline = 17;</code>
     * @return \Rv\Data\Presentation\Timeline|null
     */
    public function getTimeline()
    {
        return $this->timeline;
    }

    public function hasTimeline()
    {
        return isset($this->timeline);
    }

    public function clearTimeline()
    {
        unset($this->timeline);
    }

    /**
     * Generated from protobuf field <code>.rv.data.Presentation.Timeline timeline = 17;</code>
     * @param \Rv\Data\Presentation\Timeline $var
     * @return $this
     */
    public function setTimeline($var)
    {
        GPBUtil::checkMessage($var, \Rv\Data\Presentation\Timeline::class);
        $this->timeline = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.data.Transition transition = 18;</code>
     * @return \Rv\Data\Transition|null
     */
    public function getTransition()
    {
        return $this->transition;
    }

    public function hasTransition()
    {
        return isset($this->transition);
    }

    public function clearTransition()
    {
        unset($this->transition);
    }

    /**
     * Generated from protobuf field <code>.rv.data.Transition transition = 18;</code>
     * @param \Rv\Data\Transition $var
     * @return $this
     */
    public function setTransition($var)
    {
        GPBUtil::checkMessage($var, \Rv\Data\Transition::class);
        $this->transition = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.data.Action.ContentDestination content_destination = 19;</code>
     * @return int
     */
    public function getContentDestination()
    {
        return $this->content_destination;
    }

    /**
     * Generated from protobuf field <code>.rv.data.Action.ContentDestination content_destination = 19;</code>
     * @param int $var
     * @return $this
     */
    public function setContentDestination($var)
    {
        GPBUtil::checkEnum($var, \Rv\Data\Action\ContentDestination::class);
        $this->content_destination = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.data.Presentation.MultiTracksLicensing multi_tracks_licensing = 21;</code>
     * @return \Rv\Data\Presentation\MultiTracksLicensing|null
     */
    public function getMultiTracksLicensing()
    {
        return $this->multi_tracks_licensing;
    }

    public function hasMultiTracksLicensing()
    {
        return isset($this->multi_tracks_licensing);
    }

    public function clearMultiTracksLicensing()
    {
        unset($this->multi_tracks_licensing);
    }

    /**
     * Generated from protobuf field <code>.rv.data.Presentation.MultiTracksLicensing multi_tracks_licensing = 21;</code>
     * @param \Rv\Data\Presentation\MultiTracksLicensing $var
     * @return $this
     */
    public function setMultiTracksLicensing($var)
    {
        GPBUtil::checkMessage($var, \Rv\Data\Presentation\MultiTracksLicensing::class);
        $this->multi_tracks_licensing = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>string music_key = 22;</code>
     * @return string
     */
    public function getMusicKey()
    {
        return $this->music_key;
    }

    /**
     * Generated from protobuf field <code>string music_key = 22;</code>
     * @param string $var
     * @return $this
     */
    public function setMusicKey($var)
    {
        GPBUtil::checkString($var, True);
        $this->music_key = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>.rv.data.Presentation.Music music = 23;</code>
     * @return \Rv\Data\Presentation\Music|null
     */
    public function getMusic()
    {
        return $this->music;
    }

    public function hasMusic()
    {
        return isset($this->music);
    }

    public function clearMusic()
    {
        unset($this->music);
    }

    /**
     * Generated from protobuf field <code>.rv.data.Presentation.Music music = 23;</code>
     * @param \Rv\Data\Presentation\Music $var
     * @return $this
     */
    public function setMusic($var)
    {
        GPBUtil::checkMessage($var, \Rv\Data\Presentation\Music::class);
        $this->music = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>double slide_show_duration = 20;</code>
     * @return float
     */
    public function getSlideShowDuration()
    {
        return $this->readOneof(20);
    }

    public function hasSlideShowDuration()
    {
        return $this->hasOneof(20);
    }

    /**
     * Generated from protobuf field <code>double slide_show_duration = 20;</code>
     * @param float $var
     * @return $this
     */
    public function setSlideShowDuration($var)
    {
        GPBUtil::checkDouble($var);
        $this->writeOneof(20, $var);

        return $this;
    }

    /**
     * @return string
     */
    public function getSlideShow()
    {
        return $this->whichOneof("SlideShow");
    }

}

