From 8eb6f871f46cefa7cd46badf9d9a428ee45935ef Mon Sep 17 00:00:00 2001 From: openhab-bot Date: Sun, 26 Jun 2022 21:01:20 +0000 Subject: [PATCH 01/31] Preparation for tag creation (Tag name: '3.3.0'). --- bom/openhab-addons/pom.xml | 2 +- bom/openhab-core-index/pom.xml | 2 +- bom/pom.xml | 2 +- bom/runtime-index/pom.xml | 2 +- bom/test-index/pom.xml | 2 +- bundles/org.openhab.automation.groovyscripting/pom.xml | 2 +- bundles/org.openhab.automation.jrubyscripting/pom.xml | 2 +- bundles/org.openhab.automation.jsscripting/pom.xml | 2 +- bundles/org.openhab.automation.jythonscripting/pom.xml | 2 +- bundles/org.openhab.automation.pidcontroller/pom.xml | 2 +- bundles/org.openhab.automation.pwm/pom.xml | 2 +- bundles/org.openhab.binding.adorne/pom.xml | 2 +- bundles/org.openhab.binding.ahawastecollection/pom.xml | 2 +- bundles/org.openhab.binding.airq/pom.xml | 2 +- bundles/org.openhab.binding.airquality/pom.xml | 2 +- bundles/org.openhab.binding.airvisualnode/pom.xml | 2 +- bundles/org.openhab.binding.alarmdecoder/pom.xml | 2 +- bundles/org.openhab.binding.allplay/pom.xml | 2 +- bundles/org.openhab.binding.amazondashbutton/pom.xml | 2 +- bundles/org.openhab.binding.amazonechocontrol/pom.xml | 2 +- bundles/org.openhab.binding.ambientweather/pom.xml | 2 +- bundles/org.openhab.binding.amplipi/pom.xml | 2 +- bundles/org.openhab.binding.androiddebugbridge/pom.xml | 2 +- bundles/org.openhab.binding.anel/pom.xml | 2 +- bundles/org.openhab.binding.astro/pom.xml | 2 +- bundles/org.openhab.binding.atlona/pom.xml | 2 +- bundles/org.openhab.binding.autelis/pom.xml | 2 +- bundles/org.openhab.binding.automower/pom.xml | 2 +- bundles/org.openhab.binding.avmfritz/pom.xml | 2 +- bundles/org.openhab.binding.awattar/pom.xml | 2 +- bundles/org.openhab.binding.benqprojector/pom.xml | 2 +- bundles/org.openhab.binding.bigassfan/pom.xml | 2 +- bundles/org.openhab.binding.bluetooth.airthings/pom.xml | 2 +- bundles/org.openhab.binding.bluetooth.am43/pom.xml | 2 +- bundles/org.openhab.binding.bluetooth.bluegiga/pom.xml | 2 +- bundles/org.openhab.binding.bluetooth.bluez/pom.xml | 2 +- bundles/org.openhab.binding.bluetooth.blukii/pom.xml | 2 +- bundles/org.openhab.binding.bluetooth.daikinmadoka/pom.xml | 2 +- bundles/org.openhab.binding.bluetooth.enoceanble/pom.xml | 2 +- bundles/org.openhab.binding.bluetooth.generic/pom.xml | 2 +- bundles/org.openhab.binding.bluetooth.govee/pom.xml | 2 +- bundles/org.openhab.binding.bluetooth.roaming/pom.xml | 2 +- bundles/org.openhab.binding.bluetooth.ruuvitag/pom.xml | 2 +- bundles/org.openhab.binding.bluetooth/pom.xml | 2 +- bundles/org.openhab.binding.boschindego/pom.xml | 2 +- bundles/org.openhab.binding.boschshc/pom.xml | 2 +- bundles/org.openhab.binding.bosesoundtouch/pom.xml | 2 +- bundles/org.openhab.binding.broadlinkthermostat/pom.xml | 2 +- bundles/org.openhab.binding.bsblan/pom.xml | 2 +- bundles/org.openhab.binding.bticinosmarther/pom.xml | 2 +- bundles/org.openhab.binding.buienradar/pom.xml | 2 +- bundles/org.openhab.binding.caddx/pom.xml | 2 +- bundles/org.openhab.binding.cbus/pom.xml | 2 +- bundles/org.openhab.binding.chromecast/pom.xml | 2 +- bundles/org.openhab.binding.cm11a/pom.xml | 2 +- bundles/org.openhab.binding.comfoair/pom.xml | 2 +- bundles/org.openhab.binding.coolmasternet/pom.xml | 2 +- bundles/org.openhab.binding.coronastats/pom.xml | 2 +- bundles/org.openhab.binding.daikin/pom.xml | 2 +- bundles/org.openhab.binding.dali/pom.xml | 2 +- bundles/org.openhab.binding.danfossairunit/pom.xml | 2 +- bundles/org.openhab.binding.darksky/pom.xml | 2 +- bundles/org.openhab.binding.dbquery/pom.xml | 2 +- bundles/org.openhab.binding.deconz/pom.xml | 2 +- bundles/org.openhab.binding.denonmarantz/pom.xml | 2 +- bundles/org.openhab.binding.deutschebahn/pom.xml | 2 +- bundles/org.openhab.binding.digiplex/pom.xml | 2 +- bundles/org.openhab.binding.digitalstrom/pom.xml | 2 +- bundles/org.openhab.binding.dlinksmarthome/pom.xml | 2 +- bundles/org.openhab.binding.dmx/pom.xml | 2 +- bundles/org.openhab.binding.dominoswiss/pom.xml | 2 +- bundles/org.openhab.binding.doorbird/pom.xml | 2 +- bundles/org.openhab.binding.draytonwiser/pom.xml | 2 +- bundles/org.openhab.binding.dscalarm/pom.xml | 2 +- bundles/org.openhab.binding.dsmr/pom.xml | 2 +- bundles/org.openhab.binding.dwdpollenflug/pom.xml | 2 +- bundles/org.openhab.binding.dwdunwetter/pom.xml | 2 +- bundles/org.openhab.binding.ecobee/pom.xml | 2 +- bundles/org.openhab.binding.ecotouch/pom.xml | 2 +- bundles/org.openhab.binding.ekey/pom.xml | 2 +- bundles/org.openhab.binding.electroluxair/pom.xml | 2 +- bundles/org.openhab.binding.elerotransmitterstick/pom.xml | 2 +- bundles/org.openhab.binding.elroconnects/pom.xml | 2 +- bundles/org.openhab.binding.energenie/pom.xml | 2 +- bundles/org.openhab.binding.enigma2/pom.xml | 2 +- bundles/org.openhab.binding.enocean/pom.xml | 2 +- bundles/org.openhab.binding.enphase/pom.xml | 2 +- bundles/org.openhab.binding.enturno/pom.xml | 2 +- bundles/org.openhab.binding.epsonprojector/pom.xml | 2 +- bundles/org.openhab.binding.etherrain/pom.xml | 2 +- bundles/org.openhab.binding.evcc/pom.xml | 2 +- bundles/org.openhab.binding.evohome/pom.xml | 2 +- bundles/org.openhab.binding.exec/pom.xml | 2 +- bundles/org.openhab.binding.feed/pom.xml | 2 +- bundles/org.openhab.binding.feican/pom.xml | 2 +- .../org.openhab.binding.fineoffsetweatherstation/pom.xml | 2 +- bundles/org.openhab.binding.flicbutton/pom.xml | 2 +- bundles/org.openhab.binding.fmiweather/pom.xml | 2 +- bundles/org.openhab.binding.folderwatcher/pom.xml | 2 +- bundles/org.openhab.binding.folding/pom.xml | 2 +- bundles/org.openhab.binding.foobot/pom.xml | 2 +- bundles/org.openhab.binding.freebox/pom.xml | 2 +- bundles/org.openhab.binding.fronius/pom.xml | 2 +- bundles/org.openhab.binding.fsinternetradio/pom.xml | 2 +- bundles/org.openhab.binding.ftpupload/pom.xml | 2 +- bundles/org.openhab.binding.gardena/pom.xml | 2 +- bundles/org.openhab.binding.gce/pom.xml | 2 +- bundles/org.openhab.binding.generacmobilelink/pom.xml | 2 +- bundles/org.openhab.binding.globalcache/pom.xml | 2 +- bundles/org.openhab.binding.goecharger/pom.xml | 2 +- bundles/org.openhab.binding.gpio/pom.xml | 2 +- bundles/org.openhab.binding.gpstracker/pom.xml | 2 +- bundles/org.openhab.binding.gree/pom.xml | 2 +- bundles/org.openhab.binding.groheondus/pom.xml | 2 +- bundles/org.openhab.binding.groupepsa/pom.xml | 2 +- bundles/org.openhab.binding.guntamatic/pom.xml | 2 +- bundles/org.openhab.binding.haassohnpelletstove/pom.xml | 2 +- bundles/org.openhab.binding.harmonyhub/pom.xml | 2 +- bundles/org.openhab.binding.haywardomnilogic/pom.xml | 2 +- bundles/org.openhab.binding.hccrubbishcollection/pom.xml | 2 +- bundles/org.openhab.binding.hdanywhere/pom.xml | 2 +- bundles/org.openhab.binding.hdpowerview/pom.xml | 2 +- bundles/org.openhab.binding.helios/pom.xml | 2 +- bundles/org.openhab.binding.heliosventilation/pom.xml | 2 +- bundles/org.openhab.binding.heos/pom.xml | 2 +- bundles/org.openhab.binding.herzborg/pom.xml | 2 +- bundles/org.openhab.binding.homeconnect/pom.xml | 2 +- bundles/org.openhab.binding.homematic/pom.xml | 2 +- bundles/org.openhab.binding.homewizard/pom.xml | 2 +- bundles/org.openhab.binding.hpprinter/pom.xml | 2 +- bundles/org.openhab.binding.http/pom.xml | 2 +- bundles/org.openhab.binding.hue/pom.xml | 2 +- bundles/org.openhab.binding.hydrawise/pom.xml | 2 +- bundles/org.openhab.binding.hyperion/pom.xml | 2 +- bundles/org.openhab.binding.iammeter/pom.xml | 2 +- bundles/org.openhab.binding.iaqualink/pom.xml | 2 +- bundles/org.openhab.binding.icalendar/pom.xml | 2 +- bundles/org.openhab.binding.icloud/pom.xml | 2 +- bundles/org.openhab.binding.ihc/pom.xml | 2 +- bundles/org.openhab.binding.innogysmarthome/pom.xml | 2 +- bundles/org.openhab.binding.insteon/pom.xml | 2 +- bundles/org.openhab.binding.intesis/pom.xml | 2 +- bundles/org.openhab.binding.ipcamera/pom.xml | 2 +- bundles/org.openhab.binding.ipobserver/pom.xml | 2 +- bundles/org.openhab.binding.ipp/pom.xml | 2 +- bundles/org.openhab.binding.irobot/pom.xml | 2 +- bundles/org.openhab.binding.irtrans/pom.xml | 2 +- bundles/org.openhab.binding.ism8/pom.xml | 2 +- bundles/org.openhab.binding.jablotron/pom.xml | 2 +- bundles/org.openhab.binding.jeelink/pom.xml | 2 +- bundles/org.openhab.binding.jellyfin/pom.xml | 2 +- bundles/org.openhab.binding.kaleidescape/pom.xml | 2 +- bundles/org.openhab.binding.keba/pom.xml | 2 +- bundles/org.openhab.binding.km200/pom.xml | 2 +- bundles/org.openhab.binding.knx/pom.xml | 2 +- bundles/org.openhab.binding.kodi/pom.xml | 2 +- bundles/org.openhab.binding.konnected/pom.xml | 2 +- bundles/org.openhab.binding.kostalinverter/pom.xml | 2 +- bundles/org.openhab.binding.kvv/pom.xml | 2 +- bundles/org.openhab.binding.lametrictime/pom.xml | 2 +- bundles/org.openhab.binding.lcn/pom.xml | 2 +- bundles/org.openhab.binding.leapmotion/pom.xml | 2 +- bundles/org.openhab.binding.lghombot/pom.xml | 2 +- bundles/org.openhab.binding.lgtvserial/pom.xml | 2 +- bundles/org.openhab.binding.lgwebos/pom.xml | 2 +- bundles/org.openhab.binding.lifx/pom.xml | 2 +- bundles/org.openhab.binding.linky/pom.xml | 2 +- bundles/org.openhab.binding.linuxinput/pom.xml | 2 +- bundles/org.openhab.binding.lirc/pom.xml | 2 +- bundles/org.openhab.binding.livisismarthome/pom.xml | 2 +- bundles/org.openhab.binding.logreader/pom.xml | 2 +- bundles/org.openhab.binding.loxone/pom.xml | 2 +- bundles/org.openhab.binding.luftdateninfo/pom.xml | 2 +- bundles/org.openhab.binding.lutron/pom.xml | 2 +- bundles/org.openhab.binding.luxom/pom.xml | 2 +- bundles/org.openhab.binding.luxtronikheatpump/pom.xml | 2 +- bundles/org.openhab.binding.magentatv/pom.xml | 2 +- bundles/org.openhab.binding.mail/pom.xml | 2 +- bundles/org.openhab.binding.max/pom.xml | 2 +- bundles/org.openhab.binding.mcp23017/pom.xml | 2 +- bundles/org.openhab.binding.mecmeter/pom.xml | 2 +- bundles/org.openhab.binding.melcloud/pom.xml | 2 +- bundles/org.openhab.binding.meteoalerte/pom.xml | 2 +- bundles/org.openhab.binding.meteoblue/pom.xml | 2 +- bundles/org.openhab.binding.meteostick/pom.xml | 2 +- bundles/org.openhab.binding.miele/pom.xml | 2 +- bundles/org.openhab.binding.mielecloud/pom.xml | 2 +- bundles/org.openhab.binding.mihome/pom.xml | 2 +- bundles/org.openhab.binding.miio/pom.xml | 2 +- bundles/org.openhab.binding.mikrotik/pom.xml | 2 +- bundles/org.openhab.binding.milight/pom.xml | 2 +- bundles/org.openhab.binding.millheat/pom.xml | 2 +- bundles/org.openhab.binding.minecraft/pom.xml | 2 +- bundles/org.openhab.binding.modbus.e3dc/pom.xml | 2 +- .../org.openhab.binding.modbus.helioseasycontrols/pom.xml | 2 +- bundles/org.openhab.binding.modbus.sbc/pom.xml | 2 +- bundles/org.openhab.binding.modbus.stiebeleltron/pom.xml | 2 +- bundles/org.openhab.binding.modbus.studer/pom.xml | 2 +- bundles/org.openhab.binding.modbus.sunspec/pom.xml | 2 +- bundles/org.openhab.binding.modbus/pom.xml | 2 +- bundles/org.openhab.binding.monopriceaudio/pom.xml | 2 +- bundles/org.openhab.binding.mpd/pom.xml | 2 +- bundles/org.openhab.binding.mqtt.espmilighthub/pom.xml | 2 +- bundles/org.openhab.binding.mqtt.generic/pom.xml | 2 +- bundles/org.openhab.binding.mqtt.homeassistant/pom.xml | 2 +- bundles/org.openhab.binding.mqtt.homie/pom.xml | 2 +- bundles/org.openhab.binding.mqtt/pom.xml | 2 +- bundles/org.openhab.binding.mybmw/pom.xml | 2 +- bundles/org.openhab.binding.mycroft/pom.xml | 2 +- bundles/org.openhab.binding.myq/pom.xml | 2 +- bundles/org.openhab.binding.mystrom/pom.xml | 2 +- bundles/org.openhab.binding.nanoleaf/pom.xml | 2 +- bundles/org.openhab.binding.neato/pom.xml | 2 +- bundles/org.openhab.binding.neeo/pom.xml | 2 +- bundles/org.openhab.binding.neohub/pom.xml | 2 +- bundles/org.openhab.binding.nest/pom.xml | 2 +- bundles/org.openhab.binding.netatmo/pom.xml | 2 +- bundles/org.openhab.binding.network/pom.xml | 2 +- bundles/org.openhab.binding.networkupstools/pom.xml | 2 +- bundles/org.openhab.binding.nibeheatpump/pom.xml | 2 +- bundles/org.openhab.binding.nibeuplink/pom.xml | 2 +- bundles/org.openhab.binding.nikobus/pom.xml | 2 +- bundles/org.openhab.binding.nikohomecontrol/pom.xml | 2 +- bundles/org.openhab.binding.novafinedust/pom.xml | 2 +- bundles/org.openhab.binding.ntp/pom.xml | 2 +- bundles/org.openhab.binding.nuki/pom.xml | 2 +- bundles/org.openhab.binding.nuvo/pom.xml | 2 +- bundles/org.openhab.binding.nzwateralerts/pom.xml | 2 +- bundles/org.openhab.binding.oceanic/pom.xml | 2 +- bundles/org.openhab.binding.ojelectronics/pom.xml | 2 +- bundles/org.openhab.binding.omnikinverter/pom.xml | 2 +- bundles/org.openhab.binding.omnilink/pom.xml | 2 +- bundles/org.openhab.binding.onebusaway/pom.xml | 2 +- bundles/org.openhab.binding.onewire/pom.xml | 2 +- bundles/org.openhab.binding.onewiregpio/pom.xml | 2 +- bundles/org.openhab.binding.onkyo/pom.xml | 2 +- bundles/org.openhab.binding.opengarage/pom.xml | 2 +- bundles/org.openhab.binding.opensprinkler/pom.xml | 2 +- bundles/org.openhab.binding.openthermgateway/pom.xml | 2 +- bundles/org.openhab.binding.openuv/pom.xml | 2 +- bundles/org.openhab.binding.openweathermap/pom.xml | 2 +- bundles/org.openhab.binding.openwebnet/pom.xml | 2 +- bundles/org.openhab.binding.oppo/pom.xml | 2 +- bundles/org.openhab.binding.orbitbhyve/pom.xml | 2 +- bundles/org.openhab.binding.orvibo/pom.xml | 2 +- bundles/org.openhab.binding.paradoxalarm/pom.xml | 2 +- bundles/org.openhab.binding.pentair/pom.xml | 2 +- bundles/org.openhab.binding.phc/pom.xml | 2 +- bundles/org.openhab.binding.pilight/pom.xml | 2 +- bundles/org.openhab.binding.pioneeravr/pom.xml | 2 +- bundles/org.openhab.binding.pixometer/pom.xml | 2 +- bundles/org.openhab.binding.pjlinkdevice/pom.xml | 2 +- bundles/org.openhab.binding.playstation/pom.xml | 2 +- bundles/org.openhab.binding.plclogo/pom.xml | 2 +- bundles/org.openhab.binding.plugwise/pom.xml | 2 +- bundles/org.openhab.binding.plugwiseha/pom.xml | 2 +- bundles/org.openhab.binding.powermax/pom.xml | 2 +- bundles/org.openhab.binding.proteusecometer/pom.xml | 2 +- bundles/org.openhab.binding.prowl/pom.xml | 2 +- .../org.openhab.binding.publictransportswitzerland/pom.xml | 2 +- bundles/org.openhab.binding.pulseaudio/pom.xml | 2 +- bundles/org.openhab.binding.pushbullet/pom.xml | 2 +- bundles/org.openhab.binding.pushover/pom.xml | 2 +- bundles/org.openhab.binding.pushsafer/pom.xml | 2 +- bundles/org.openhab.binding.qbus/pom.xml | 2 +- bundles/org.openhab.binding.radiothermostat/pom.xml | 2 +- bundles/org.openhab.binding.regoheatpump/pom.xml | 2 +- bundles/org.openhab.binding.remoteopenhab/pom.xml | 2 +- bundles/org.openhab.binding.renault/pom.xml | 2 +- bundles/org.openhab.binding.resol/pom.xml | 2 +- bundles/org.openhab.binding.revogi/pom.xml | 2 +- bundles/org.openhab.binding.rfxcom/pom.xml | 2 +- bundles/org.openhab.binding.rme/pom.xml | 2 +- bundles/org.openhab.binding.robonect/pom.xml | 2 +- bundles/org.openhab.binding.roku/pom.xml | 2 +- bundles/org.openhab.binding.rotel/pom.xml | 2 +- bundles/org.openhab.binding.russound/pom.xml | 2 +- bundles/org.openhab.binding.sagercaster/pom.xml | 2 +- bundles/org.openhab.binding.samsungtv/pom.xml | 2 +- bundles/org.openhab.binding.satel/pom.xml | 2 +- bundles/org.openhab.binding.semsportal/pom.xml | 2 +- bundles/org.openhab.binding.senechome/pom.xml | 2 +- bundles/org.openhab.binding.seneye/pom.xml | 2 +- bundles/org.openhab.binding.sensebox/pom.xml | 2 +- bundles/org.openhab.binding.sensibo/pom.xml | 2 +- bundles/org.openhab.binding.serial/pom.xml | 2 +- bundles/org.openhab.binding.serialbutton/pom.xml | 2 +- bundles/org.openhab.binding.shelly/pom.xml | 2 +- bundles/org.openhab.binding.siemensrds/pom.xml | 2 +- bundles/org.openhab.binding.silvercrestwifisocket/pom.xml | 2 +- bundles/org.openhab.binding.sinope/pom.xml | 2 +- bundles/org.openhab.binding.sleepiq/pom.xml | 2 +- bundles/org.openhab.binding.smaenergymeter/pom.xml | 2 +- bundles/org.openhab.binding.smartmeter/pom.xml | 2 +- bundles/org.openhab.binding.smartthings/pom.xml | 2 +- bundles/org.openhab.binding.smhi/pom.xml | 2 +- bundles/org.openhab.binding.sncf/pom.xml | 2 +- bundles/org.openhab.binding.snmp/pom.xml | 2 +- bundles/org.openhab.binding.solaredge/pom.xml | 2 +- bundles/org.openhab.binding.solarlog/pom.xml | 2 +- bundles/org.openhab.binding.solarwatt/pom.xml | 2 +- bundles/org.openhab.binding.somfymylink/pom.xml | 2 +- bundles/org.openhab.binding.somfytahoma/pom.xml | 2 +- bundles/org.openhab.binding.sonnen/pom.xml | 2 +- bundles/org.openhab.binding.sonos/pom.xml | 2 +- bundles/org.openhab.binding.sonyaudio/pom.xml | 2 +- bundles/org.openhab.binding.sonyprojector/pom.xml | 2 +- bundles/org.openhab.binding.souliss/pom.xml | 2 +- bundles/org.openhab.binding.spotify/pom.xml | 2 +- bundles/org.openhab.binding.squeezebox/pom.xml | 2 +- bundles/org.openhab.binding.surepetcare/pom.xml | 2 +- bundles/org.openhab.binding.synopanalyzer/pom.xml | 2 +- bundles/org.openhab.binding.systeminfo/pom.xml | 2 +- bundles/org.openhab.binding.tacmi/pom.xml | 2 +- bundles/org.openhab.binding.tado/pom.xml | 2 +- bundles/org.openhab.binding.tankerkoenig/pom.xml | 2 +- bundles/org.openhab.binding.tapocontrol/pom.xml | 2 +- bundles/org.openhab.binding.telegram/pom.xml | 2 +- bundles/org.openhab.binding.teleinfo/pom.xml | 2 +- bundles/org.openhab.binding.tellstick/pom.xml | 2 +- bundles/org.openhab.binding.tesla/pom.xml | 2 +- bundles/org.openhab.binding.tibber/pom.xml | 2 +- bundles/org.openhab.binding.tivo/pom.xml | 2 +- bundles/org.openhab.binding.touchwand/pom.xml | 2 +- bundles/org.openhab.binding.tplinksmarthome/pom.xml | 2 +- bundles/org.openhab.binding.tr064/pom.xml | 2 +- bundles/org.openhab.binding.tradfri/pom.xml | 2 +- bundles/org.openhab.binding.twitter/pom.xml | 2 +- bundles/org.openhab.binding.unifi/pom.xml | 2 +- bundles/org.openhab.binding.unifiedremote/pom.xml | 2 +- bundles/org.openhab.binding.upb/pom.xml | 2 +- bundles/org.openhab.binding.upnpcontrol/pom.xml | 2 +- bundles/org.openhab.binding.urtsi/pom.xml | 2 +- bundles/org.openhab.binding.valloxmv/pom.xml | 2 +- bundles/org.openhab.binding.vdr/pom.xml | 2 +- bundles/org.openhab.binding.vektiva/pom.xml | 2 +- bundles/org.openhab.binding.velbus/pom.xml | 2 +- bundles/org.openhab.binding.velux/pom.xml | 2 +- bundles/org.openhab.binding.venstarthermostat/pom.xml | 2 +- bundles/org.openhab.binding.ventaair/pom.xml | 2 +- bundles/org.openhab.binding.verisure/pom.xml | 2 +- bundles/org.openhab.binding.vesync/pom.xml | 2 +- bundles/org.openhab.binding.vigicrues/pom.xml | 2 +- bundles/org.openhab.binding.vitotronic/pom.xml | 2 +- bundles/org.openhab.binding.volvooncall/pom.xml | 2 +- bundles/org.openhab.binding.warmup/pom.xml | 2 +- bundles/org.openhab.binding.weathercompany/pom.xml | 2 +- bundles/org.openhab.binding.weatherunderground/pom.xml | 2 +- bundles/org.openhab.binding.webthing/pom.xml | 2 +- bundles/org.openhab.binding.wemo/pom.xml | 2 +- bundles/org.openhab.binding.wifiled/pom.xml | 2 +- bundles/org.openhab.binding.windcentrale/pom.xml | 2 +- bundles/org.openhab.binding.wlanthermo/pom.xml | 2 +- bundles/org.openhab.binding.wled/pom.xml | 2 +- bundles/org.openhab.binding.wolfsmartset/pom.xml | 2 +- .../org.openhab.binding.wundergroundupdatereceiver/pom.xml | 2 +- bundles/org.openhab.binding.xmltv/pom.xml | 2 +- bundles/org.openhab.binding.xmppclient/pom.xml | 2 +- bundles/org.openhab.binding.yamahamusiccast/pom.xml | 2 +- bundles/org.openhab.binding.yamahareceiver/pom.xml | 2 +- bundles/org.openhab.binding.yeelight/pom.xml | 2 +- bundles/org.openhab.binding.yioremote/pom.xml | 2 +- bundles/org.openhab.binding.zoneminder/pom.xml | 2 +- bundles/org.openhab.binding.zway/pom.xml | 2 +- bundles/org.openhab.io.homekit/pom.xml | 2 +- bundles/org.openhab.io.hueemulation/pom.xml | 2 +- bundles/org.openhab.io.imperihome/pom.xml | 2 +- bundles/org.openhab.io.metrics/pom.xml | 2 +- bundles/org.openhab.io.neeo/pom.xml | 2 +- bundles/org.openhab.io.openhabcloud/pom.xml | 2 +- bundles/org.openhab.persistence.dynamodb/pom.xml | 2 +- bundles/org.openhab.persistence.influxdb/pom.xml | 2 +- bundles/org.openhab.persistence.jdbc/pom.xml | 2 +- bundles/org.openhab.persistence.jpa/pom.xml | 2 +- bundles/org.openhab.persistence.mapdb/pom.xml | 2 +- bundles/org.openhab.persistence.mongodb/pom.xml | 2 +- bundles/org.openhab.persistence.rrd4j/pom.xml | 2 +- bundles/org.openhab.transform.bin2json/pom.xml | 2 +- bundles/org.openhab.transform.exec/pom.xml | 2 +- bundles/org.openhab.transform.javascript/pom.xml | 2 +- bundles/org.openhab.transform.jinja/pom.xml | 2 +- bundles/org.openhab.transform.jsonpath/pom.xml | 2 +- bundles/org.openhab.transform.map/pom.xml | 2 +- bundles/org.openhab.transform.regex/pom.xml | 2 +- bundles/org.openhab.transform.scale/pom.xml | 2 +- bundles/org.openhab.transform.xpath/pom.xml | 2 +- bundles/org.openhab.transform.xslt/pom.xml | 2 +- bundles/org.openhab.voice.actiontemplatehli/pom.xml | 2 +- bundles/org.openhab.voice.googlestt/pom.xml | 2 +- bundles/org.openhab.voice.googletts/pom.xml | 2 +- bundles/org.openhab.voice.mactts/pom.xml | 2 +- bundles/org.openhab.voice.marytts/pom.xml | 2 +- bundles/org.openhab.voice.picotts/pom.xml | 2 +- bundles/org.openhab.voice.pollytts/pom.xml | 2 +- bundles/org.openhab.voice.porcupineks/pom.xml | 2 +- bundles/org.openhab.voice.rustpotterks/pom.xml | 2 +- bundles/org.openhab.voice.voicerss/pom.xml | 2 +- bundles/org.openhab.voice.voskstt/pom.xml | 2 +- bundles/org.openhab.voice.watsonstt/pom.xml | 2 +- bundles/pom.xml | 2 +- features/openhab-addons-external/pom.xml | 2 +- features/openhab-addons/pom.xml | 2 +- features/pom.xml | 2 +- itests/org.openhab.binding.astro.tests/pom.xml | 2 +- itests/org.openhab.binding.avmfritz.tests/pom.xml | 2 +- itests/org.openhab.binding.feed.tests/pom.xml | 2 +- itests/org.openhab.binding.hue.tests/pom.xml | 2 +- itests/org.openhab.binding.max.tests/pom.xml | 2 +- itests/org.openhab.binding.mielecloud.tests/pom.xml | 2 +- itests/org.openhab.binding.modbus.tests/pom.xml | 2 +- itests/org.openhab.binding.mqtt.homeassistant.tests/pom.xml | 2 +- itests/org.openhab.binding.mqtt.homie.tests/pom.xml | 2 +- itests/org.openhab.binding.nest.tests/pom.xml | 2 +- itests/org.openhab.binding.ntp.tests/pom.xml | 2 +- itests/org.openhab.binding.systeminfo.tests/pom.xml | 2 +- itests/org.openhab.binding.tradfri.tests/pom.xml | 2 +- itests/org.openhab.binding.wemo.tests/pom.xml | 2 +- itests/org.openhab.persistence.mapdb.tests/pom.xml | 2 +- itests/pom.xml | 2 +- pom.xml | 6 +++--- 420 files changed, 422 insertions(+), 422 deletions(-) diff --git a/bom/openhab-addons/pom.xml b/bom/openhab-addons/pom.xml index e21a9c5042499..32569251828a5 100644 --- a/bom/openhab-addons/pom.xml +++ b/bom/openhab-addons/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bom org.openhab.addons.reactor.bom - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.addons.bom.openhab-addons diff --git a/bom/openhab-core-index/pom.xml b/bom/openhab-core-index/pom.xml index eb1d7a700db5f..38017dc1cccf7 100644 --- a/bom/openhab-core-index/pom.xml +++ b/bom/openhab-core-index/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bom org.openhab.addons.reactor.bom - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.addons.bom.openhab-core-index diff --git a/bom/pom.xml b/bom/pom.xml index e6f96fabca545..8d23e4e5a0a31 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons org.openhab.addons.reactor - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.addons.bom diff --git a/bom/runtime-index/pom.xml b/bom/runtime-index/pom.xml index 78f097175e16b..e36a72a1ed274 100644 --- a/bom/runtime-index/pom.xml +++ b/bom/runtime-index/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bom org.openhab.addons.reactor.bom - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.addons.bom.runtime-index diff --git a/bom/test-index/pom.xml b/bom/test-index/pom.xml index da1095a98cc8a..cecf7e1b54201 100644 --- a/bom/test-index/pom.xml +++ b/bom/test-index/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bom org.openhab.addons.reactor.bom - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.addons.bom.test-index diff --git a/bundles/org.openhab.automation.groovyscripting/pom.xml b/bundles/org.openhab.automation.groovyscripting/pom.xml index b3bc95a43ddfd..63afcd52f2b94 100644 --- a/bundles/org.openhab.automation.groovyscripting/pom.xml +++ b/bundles/org.openhab.automation.groovyscripting/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.automation.groovyscripting diff --git a/bundles/org.openhab.automation.jrubyscripting/pom.xml b/bundles/org.openhab.automation.jrubyscripting/pom.xml index b2c879928fe75..d7a7040c55534 100644 --- a/bundles/org.openhab.automation.jrubyscripting/pom.xml +++ b/bundles/org.openhab.automation.jrubyscripting/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.automation.jrubyscripting diff --git a/bundles/org.openhab.automation.jsscripting/pom.xml b/bundles/org.openhab.automation.jsscripting/pom.xml index 01374ebfcae51..8ce01fb77f59d 100644 --- a/bundles/org.openhab.automation.jsscripting/pom.xml +++ b/bundles/org.openhab.automation.jsscripting/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.automation.jsscripting diff --git a/bundles/org.openhab.automation.jythonscripting/pom.xml b/bundles/org.openhab.automation.jythonscripting/pom.xml index e73325516dc6e..b93595ec499d8 100644 --- a/bundles/org.openhab.automation.jythonscripting/pom.xml +++ b/bundles/org.openhab.automation.jythonscripting/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.automation.jythonscripting diff --git a/bundles/org.openhab.automation.pidcontroller/pom.xml b/bundles/org.openhab.automation.pidcontroller/pom.xml index f9072b2ffc0bc..470da05eb06c5 100644 --- a/bundles/org.openhab.automation.pidcontroller/pom.xml +++ b/bundles/org.openhab.automation.pidcontroller/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.automation.pidcontroller diff --git a/bundles/org.openhab.automation.pwm/pom.xml b/bundles/org.openhab.automation.pwm/pom.xml index bb737a88f04d6..1e51aed60b9a9 100644 --- a/bundles/org.openhab.automation.pwm/pom.xml +++ b/bundles/org.openhab.automation.pwm/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.automation.pwm diff --git a/bundles/org.openhab.binding.adorne/pom.xml b/bundles/org.openhab.binding.adorne/pom.xml index 91d65c1d5c986..d6d6a663983dd 100644 --- a/bundles/org.openhab.binding.adorne/pom.xml +++ b/bundles/org.openhab.binding.adorne/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.adorne diff --git a/bundles/org.openhab.binding.ahawastecollection/pom.xml b/bundles/org.openhab.binding.ahawastecollection/pom.xml index ba652576d3ebb..0939e789b407a 100644 --- a/bundles/org.openhab.binding.ahawastecollection/pom.xml +++ b/bundles/org.openhab.binding.ahawastecollection/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.ahawastecollection diff --git a/bundles/org.openhab.binding.airq/pom.xml b/bundles/org.openhab.binding.airq/pom.xml index aab69b42419eb..b807b50f58806 100644 --- a/bundles/org.openhab.binding.airq/pom.xml +++ b/bundles/org.openhab.binding.airq/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.airq diff --git a/bundles/org.openhab.binding.airquality/pom.xml b/bundles/org.openhab.binding.airquality/pom.xml index f4f6562cfe5fd..98d7a2b69a60b 100644 --- a/bundles/org.openhab.binding.airquality/pom.xml +++ b/bundles/org.openhab.binding.airquality/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.airquality diff --git a/bundles/org.openhab.binding.airvisualnode/pom.xml b/bundles/org.openhab.binding.airvisualnode/pom.xml index e91687ca37391..aa20aa74de733 100644 --- a/bundles/org.openhab.binding.airvisualnode/pom.xml +++ b/bundles/org.openhab.binding.airvisualnode/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.airvisualnode diff --git a/bundles/org.openhab.binding.alarmdecoder/pom.xml b/bundles/org.openhab.binding.alarmdecoder/pom.xml index 39a9a05b72ea5..0c2c1f2c62c43 100644 --- a/bundles/org.openhab.binding.alarmdecoder/pom.xml +++ b/bundles/org.openhab.binding.alarmdecoder/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.alarmdecoder diff --git a/bundles/org.openhab.binding.allplay/pom.xml b/bundles/org.openhab.binding.allplay/pom.xml index 5e24d677370f4..df47f07ec65a1 100644 --- a/bundles/org.openhab.binding.allplay/pom.xml +++ b/bundles/org.openhab.binding.allplay/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.allplay diff --git a/bundles/org.openhab.binding.amazondashbutton/pom.xml b/bundles/org.openhab.binding.amazondashbutton/pom.xml index dc39267707c90..36a365de12775 100644 --- a/bundles/org.openhab.binding.amazondashbutton/pom.xml +++ b/bundles/org.openhab.binding.amazondashbutton/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.amazondashbutton diff --git a/bundles/org.openhab.binding.amazonechocontrol/pom.xml b/bundles/org.openhab.binding.amazonechocontrol/pom.xml index 76926026c6534..db2f2a05d481c 100644 --- a/bundles/org.openhab.binding.amazonechocontrol/pom.xml +++ b/bundles/org.openhab.binding.amazonechocontrol/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.amazonechocontrol diff --git a/bundles/org.openhab.binding.ambientweather/pom.xml b/bundles/org.openhab.binding.ambientweather/pom.xml index 8b83f7614438a..5fcdf8d214d3b 100644 --- a/bundles/org.openhab.binding.ambientweather/pom.xml +++ b/bundles/org.openhab.binding.ambientweather/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.ambientweather diff --git a/bundles/org.openhab.binding.amplipi/pom.xml b/bundles/org.openhab.binding.amplipi/pom.xml index 29cc65c2853d1..c158aa0e7830c 100644 --- a/bundles/org.openhab.binding.amplipi/pom.xml +++ b/bundles/org.openhab.binding.amplipi/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.amplipi diff --git a/bundles/org.openhab.binding.androiddebugbridge/pom.xml b/bundles/org.openhab.binding.androiddebugbridge/pom.xml index 998267380cfdf..77883d241e47a 100644 --- a/bundles/org.openhab.binding.androiddebugbridge/pom.xml +++ b/bundles/org.openhab.binding.androiddebugbridge/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.androiddebugbridge diff --git a/bundles/org.openhab.binding.anel/pom.xml b/bundles/org.openhab.binding.anel/pom.xml index 8f27f8ec7171b..a0d25ba9ff3b2 100644 --- a/bundles/org.openhab.binding.anel/pom.xml +++ b/bundles/org.openhab.binding.anel/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.anel diff --git a/bundles/org.openhab.binding.astro/pom.xml b/bundles/org.openhab.binding.astro/pom.xml index 0f8dd8e897110..950ed9bd6beba 100644 --- a/bundles/org.openhab.binding.astro/pom.xml +++ b/bundles/org.openhab.binding.astro/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.astro diff --git a/bundles/org.openhab.binding.atlona/pom.xml b/bundles/org.openhab.binding.atlona/pom.xml index bb90bdcab4dae..333f38dcf89be 100644 --- a/bundles/org.openhab.binding.atlona/pom.xml +++ b/bundles/org.openhab.binding.atlona/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.atlona diff --git a/bundles/org.openhab.binding.autelis/pom.xml b/bundles/org.openhab.binding.autelis/pom.xml index b4aaa3691cef2..eae25613e9f07 100644 --- a/bundles/org.openhab.binding.autelis/pom.xml +++ b/bundles/org.openhab.binding.autelis/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.autelis diff --git a/bundles/org.openhab.binding.automower/pom.xml b/bundles/org.openhab.binding.automower/pom.xml index 2f3e6b4e50a11..d72e0f94e4113 100644 --- a/bundles/org.openhab.binding.automower/pom.xml +++ b/bundles/org.openhab.binding.automower/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.automower diff --git a/bundles/org.openhab.binding.avmfritz/pom.xml b/bundles/org.openhab.binding.avmfritz/pom.xml index 85fd6a3250713..6dc1c9583b6a9 100644 --- a/bundles/org.openhab.binding.avmfritz/pom.xml +++ b/bundles/org.openhab.binding.avmfritz/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.avmfritz diff --git a/bundles/org.openhab.binding.awattar/pom.xml b/bundles/org.openhab.binding.awattar/pom.xml index 5470bbc987f45..feb7993f507ce 100644 --- a/bundles/org.openhab.binding.awattar/pom.xml +++ b/bundles/org.openhab.binding.awattar/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.awattar diff --git a/bundles/org.openhab.binding.benqprojector/pom.xml b/bundles/org.openhab.binding.benqprojector/pom.xml index 07f9cd04de1ec..1ed027374f0e1 100644 --- a/bundles/org.openhab.binding.benqprojector/pom.xml +++ b/bundles/org.openhab.binding.benqprojector/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.benqprojector diff --git a/bundles/org.openhab.binding.bigassfan/pom.xml b/bundles/org.openhab.binding.bigassfan/pom.xml index 5929d08ad56de..939ef366edeb4 100644 --- a/bundles/org.openhab.binding.bigassfan/pom.xml +++ b/bundles/org.openhab.binding.bigassfan/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.bigassfan diff --git a/bundles/org.openhab.binding.bluetooth.airthings/pom.xml b/bundles/org.openhab.binding.bluetooth.airthings/pom.xml index 5d578d49c06de..056603820d366 100644 --- a/bundles/org.openhab.binding.bluetooth.airthings/pom.xml +++ b/bundles/org.openhab.binding.bluetooth.airthings/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.bluetooth.airthings diff --git a/bundles/org.openhab.binding.bluetooth.am43/pom.xml b/bundles/org.openhab.binding.bluetooth.am43/pom.xml index ec7e95031e75d..e1c01c89f0d0a 100644 --- a/bundles/org.openhab.binding.bluetooth.am43/pom.xml +++ b/bundles/org.openhab.binding.bluetooth.am43/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.bluetooth.am43 diff --git a/bundles/org.openhab.binding.bluetooth.bluegiga/pom.xml b/bundles/org.openhab.binding.bluetooth.bluegiga/pom.xml index f2a11a2118c4d..fa429775a07da 100644 --- a/bundles/org.openhab.binding.bluetooth.bluegiga/pom.xml +++ b/bundles/org.openhab.binding.bluetooth.bluegiga/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.bluetooth.bluegiga diff --git a/bundles/org.openhab.binding.bluetooth.bluez/pom.xml b/bundles/org.openhab.binding.bluetooth.bluez/pom.xml index 870df292ab043..2561c295e3a9a 100644 --- a/bundles/org.openhab.binding.bluetooth.bluez/pom.xml +++ b/bundles/org.openhab.binding.bluetooth.bluez/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.bluetooth.bluez diff --git a/bundles/org.openhab.binding.bluetooth.blukii/pom.xml b/bundles/org.openhab.binding.bluetooth.blukii/pom.xml index 6462561d59cc5..bc4f99ebff788 100644 --- a/bundles/org.openhab.binding.bluetooth.blukii/pom.xml +++ b/bundles/org.openhab.binding.bluetooth.blukii/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.bluetooth.blukii diff --git a/bundles/org.openhab.binding.bluetooth.daikinmadoka/pom.xml b/bundles/org.openhab.binding.bluetooth.daikinmadoka/pom.xml index 7fbaa1925ecee..bd634df47b519 100644 --- a/bundles/org.openhab.binding.bluetooth.daikinmadoka/pom.xml +++ b/bundles/org.openhab.binding.bluetooth.daikinmadoka/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.bluetooth.daikinmadoka diff --git a/bundles/org.openhab.binding.bluetooth.enoceanble/pom.xml b/bundles/org.openhab.binding.bluetooth.enoceanble/pom.xml index bfe77bb41c07f..5679156faba99 100644 --- a/bundles/org.openhab.binding.bluetooth.enoceanble/pom.xml +++ b/bundles/org.openhab.binding.bluetooth.enoceanble/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.bluetooth.enoceanble diff --git a/bundles/org.openhab.binding.bluetooth.generic/pom.xml b/bundles/org.openhab.binding.bluetooth.generic/pom.xml index 74a07ce463cbc..10b1ff89823ce 100644 --- a/bundles/org.openhab.binding.bluetooth.generic/pom.xml +++ b/bundles/org.openhab.binding.bluetooth.generic/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.bluetooth.generic diff --git a/bundles/org.openhab.binding.bluetooth.govee/pom.xml b/bundles/org.openhab.binding.bluetooth.govee/pom.xml index 835150ea3396e..8ac4cac752217 100644 --- a/bundles/org.openhab.binding.bluetooth.govee/pom.xml +++ b/bundles/org.openhab.binding.bluetooth.govee/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.bluetooth.govee diff --git a/bundles/org.openhab.binding.bluetooth.roaming/pom.xml b/bundles/org.openhab.binding.bluetooth.roaming/pom.xml index 35e538129c422..fc30a267e2d40 100644 --- a/bundles/org.openhab.binding.bluetooth.roaming/pom.xml +++ b/bundles/org.openhab.binding.bluetooth.roaming/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.bluetooth.roaming diff --git a/bundles/org.openhab.binding.bluetooth.ruuvitag/pom.xml b/bundles/org.openhab.binding.bluetooth.ruuvitag/pom.xml index 602dce39638c0..4b290502d50be 100644 --- a/bundles/org.openhab.binding.bluetooth.ruuvitag/pom.xml +++ b/bundles/org.openhab.binding.bluetooth.ruuvitag/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.bluetooth.ruuvitag diff --git a/bundles/org.openhab.binding.bluetooth/pom.xml b/bundles/org.openhab.binding.bluetooth/pom.xml index 9cdf9f3cd4401..b3bd28029eab7 100644 --- a/bundles/org.openhab.binding.bluetooth/pom.xml +++ b/bundles/org.openhab.binding.bluetooth/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.bluetooth diff --git a/bundles/org.openhab.binding.boschindego/pom.xml b/bundles/org.openhab.binding.boschindego/pom.xml index 59df56b3740a8..b73d3a08d0748 100644 --- a/bundles/org.openhab.binding.boschindego/pom.xml +++ b/bundles/org.openhab.binding.boschindego/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.boschindego diff --git a/bundles/org.openhab.binding.boschshc/pom.xml b/bundles/org.openhab.binding.boschshc/pom.xml index 7a84c34f981b8..351a3d1f9dd90 100644 --- a/bundles/org.openhab.binding.boschshc/pom.xml +++ b/bundles/org.openhab.binding.boschshc/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.boschshc diff --git a/bundles/org.openhab.binding.bosesoundtouch/pom.xml b/bundles/org.openhab.binding.bosesoundtouch/pom.xml index 116664f850e47..324c4b74b1c14 100644 --- a/bundles/org.openhab.binding.bosesoundtouch/pom.xml +++ b/bundles/org.openhab.binding.bosesoundtouch/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.bosesoundtouch diff --git a/bundles/org.openhab.binding.broadlinkthermostat/pom.xml b/bundles/org.openhab.binding.broadlinkthermostat/pom.xml index 6dc2b3cb38141..b2c7454b1b72a 100644 --- a/bundles/org.openhab.binding.broadlinkthermostat/pom.xml +++ b/bundles/org.openhab.binding.broadlinkthermostat/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.broadlinkthermostat diff --git a/bundles/org.openhab.binding.bsblan/pom.xml b/bundles/org.openhab.binding.bsblan/pom.xml index 162d82f8147ab..4ce12e3f0e212 100644 --- a/bundles/org.openhab.binding.bsblan/pom.xml +++ b/bundles/org.openhab.binding.bsblan/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.bsblan diff --git a/bundles/org.openhab.binding.bticinosmarther/pom.xml b/bundles/org.openhab.binding.bticinosmarther/pom.xml index ec3ec25b177df..9a876803ddf78 100644 --- a/bundles/org.openhab.binding.bticinosmarther/pom.xml +++ b/bundles/org.openhab.binding.bticinosmarther/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.bticinosmarther diff --git a/bundles/org.openhab.binding.buienradar/pom.xml b/bundles/org.openhab.binding.buienradar/pom.xml index 2c2fd535544d5..a47cf5cacea8d 100644 --- a/bundles/org.openhab.binding.buienradar/pom.xml +++ b/bundles/org.openhab.binding.buienradar/pom.xml @@ -3,7 +3,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.buienradar openHAB Add-ons :: Bundles :: Buienradar Binding diff --git a/bundles/org.openhab.binding.caddx/pom.xml b/bundles/org.openhab.binding.caddx/pom.xml index 09b88203c42f5..196503fc44b4f 100644 --- a/bundles/org.openhab.binding.caddx/pom.xml +++ b/bundles/org.openhab.binding.caddx/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.caddx diff --git a/bundles/org.openhab.binding.cbus/pom.xml b/bundles/org.openhab.binding.cbus/pom.xml index 615b23b5cac8d..98bd5d7fb9dc6 100644 --- a/bundles/org.openhab.binding.cbus/pom.xml +++ b/bundles/org.openhab.binding.cbus/pom.xml @@ -6,7 +6,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.cbus diff --git a/bundles/org.openhab.binding.chromecast/pom.xml b/bundles/org.openhab.binding.chromecast/pom.xml index 95abcba686bbd..bd245c32b09da 100644 --- a/bundles/org.openhab.binding.chromecast/pom.xml +++ b/bundles/org.openhab.binding.chromecast/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.chromecast diff --git a/bundles/org.openhab.binding.cm11a/pom.xml b/bundles/org.openhab.binding.cm11a/pom.xml index 92fc4be8b4ffb..4ec95b7a764f7 100644 --- a/bundles/org.openhab.binding.cm11a/pom.xml +++ b/bundles/org.openhab.binding.cm11a/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.cm11a diff --git a/bundles/org.openhab.binding.comfoair/pom.xml b/bundles/org.openhab.binding.comfoair/pom.xml index e1f0528d3d324..73d8b7861cafd 100644 --- a/bundles/org.openhab.binding.comfoair/pom.xml +++ b/bundles/org.openhab.binding.comfoair/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.comfoair diff --git a/bundles/org.openhab.binding.coolmasternet/pom.xml b/bundles/org.openhab.binding.coolmasternet/pom.xml index 7ec862b62fe93..e6121332a187a 100644 --- a/bundles/org.openhab.binding.coolmasternet/pom.xml +++ b/bundles/org.openhab.binding.coolmasternet/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.coolmasternet diff --git a/bundles/org.openhab.binding.coronastats/pom.xml b/bundles/org.openhab.binding.coronastats/pom.xml index 73f6f0640e570..cf5fa9b5e0721 100644 --- a/bundles/org.openhab.binding.coronastats/pom.xml +++ b/bundles/org.openhab.binding.coronastats/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.coronastats diff --git a/bundles/org.openhab.binding.daikin/pom.xml b/bundles/org.openhab.binding.daikin/pom.xml index d364f270582b6..0dc9f4598e50d 100644 --- a/bundles/org.openhab.binding.daikin/pom.xml +++ b/bundles/org.openhab.binding.daikin/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.daikin diff --git a/bundles/org.openhab.binding.dali/pom.xml b/bundles/org.openhab.binding.dali/pom.xml index 0fabb288ab140..5f7cacf80b59c 100644 --- a/bundles/org.openhab.binding.dali/pom.xml +++ b/bundles/org.openhab.binding.dali/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.dali diff --git a/bundles/org.openhab.binding.danfossairunit/pom.xml b/bundles/org.openhab.binding.danfossairunit/pom.xml index 248ad14b94fc3..3912b62c5aba5 100644 --- a/bundles/org.openhab.binding.danfossairunit/pom.xml +++ b/bundles/org.openhab.binding.danfossairunit/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.danfossairunit diff --git a/bundles/org.openhab.binding.darksky/pom.xml b/bundles/org.openhab.binding.darksky/pom.xml index 7ed46d07f0248..de4a0992e3c4e 100644 --- a/bundles/org.openhab.binding.darksky/pom.xml +++ b/bundles/org.openhab.binding.darksky/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.darksky diff --git a/bundles/org.openhab.binding.dbquery/pom.xml b/bundles/org.openhab.binding.dbquery/pom.xml index 5e39b0ae3b271..61f05a09d07a6 100644 --- a/bundles/org.openhab.binding.dbquery/pom.xml +++ b/bundles/org.openhab.binding.dbquery/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.dbquery diff --git a/bundles/org.openhab.binding.deconz/pom.xml b/bundles/org.openhab.binding.deconz/pom.xml index df4648c89b33a..06a5a2cc3f6d7 100644 --- a/bundles/org.openhab.binding.deconz/pom.xml +++ b/bundles/org.openhab.binding.deconz/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.deconz diff --git a/bundles/org.openhab.binding.denonmarantz/pom.xml b/bundles/org.openhab.binding.denonmarantz/pom.xml index 8f60b23b0dfb5..40f6fad11569e 100644 --- a/bundles/org.openhab.binding.denonmarantz/pom.xml +++ b/bundles/org.openhab.binding.denonmarantz/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.denonmarantz diff --git a/bundles/org.openhab.binding.deutschebahn/pom.xml b/bundles/org.openhab.binding.deutschebahn/pom.xml index 051d14ae8ad4b..9eac003a6b4a6 100644 --- a/bundles/org.openhab.binding.deutschebahn/pom.xml +++ b/bundles/org.openhab.binding.deutschebahn/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.deutschebahn diff --git a/bundles/org.openhab.binding.digiplex/pom.xml b/bundles/org.openhab.binding.digiplex/pom.xml index ba6905bdffa9b..fbcdbc1763105 100644 --- a/bundles/org.openhab.binding.digiplex/pom.xml +++ b/bundles/org.openhab.binding.digiplex/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.digiplex diff --git a/bundles/org.openhab.binding.digitalstrom/pom.xml b/bundles/org.openhab.binding.digitalstrom/pom.xml index 89fc6f8f1a61a..c36ab256a7456 100644 --- a/bundles/org.openhab.binding.digitalstrom/pom.xml +++ b/bundles/org.openhab.binding.digitalstrom/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.digitalstrom diff --git a/bundles/org.openhab.binding.dlinksmarthome/pom.xml b/bundles/org.openhab.binding.dlinksmarthome/pom.xml index fdb6a4577e3a2..bbaf468239ab0 100644 --- a/bundles/org.openhab.binding.dlinksmarthome/pom.xml +++ b/bundles/org.openhab.binding.dlinksmarthome/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.dlinksmarthome diff --git a/bundles/org.openhab.binding.dmx/pom.xml b/bundles/org.openhab.binding.dmx/pom.xml index 80508312c4147..1365bb790acf5 100644 --- a/bundles/org.openhab.binding.dmx/pom.xml +++ b/bundles/org.openhab.binding.dmx/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.dmx diff --git a/bundles/org.openhab.binding.dominoswiss/pom.xml b/bundles/org.openhab.binding.dominoswiss/pom.xml index 5ec4cc13de025..c25ef5056ba57 100644 --- a/bundles/org.openhab.binding.dominoswiss/pom.xml +++ b/bundles/org.openhab.binding.dominoswiss/pom.xml @@ -4,7 +4,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.dominoswiss diff --git a/bundles/org.openhab.binding.doorbird/pom.xml b/bundles/org.openhab.binding.doorbird/pom.xml index 461d7b33d53fe..6642962566c54 100644 --- a/bundles/org.openhab.binding.doorbird/pom.xml +++ b/bundles/org.openhab.binding.doorbird/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.doorbird diff --git a/bundles/org.openhab.binding.draytonwiser/pom.xml b/bundles/org.openhab.binding.draytonwiser/pom.xml index 3cfb708899cf5..d8fbcfd029a77 100644 --- a/bundles/org.openhab.binding.draytonwiser/pom.xml +++ b/bundles/org.openhab.binding.draytonwiser/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.draytonwiser diff --git a/bundles/org.openhab.binding.dscalarm/pom.xml b/bundles/org.openhab.binding.dscalarm/pom.xml index ebac95575ff04..afc3a184481b5 100644 --- a/bundles/org.openhab.binding.dscalarm/pom.xml +++ b/bundles/org.openhab.binding.dscalarm/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.dscalarm diff --git a/bundles/org.openhab.binding.dsmr/pom.xml b/bundles/org.openhab.binding.dsmr/pom.xml index 046f280dba584..f13e1deb339c5 100644 --- a/bundles/org.openhab.binding.dsmr/pom.xml +++ b/bundles/org.openhab.binding.dsmr/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.dsmr diff --git a/bundles/org.openhab.binding.dwdpollenflug/pom.xml b/bundles/org.openhab.binding.dwdpollenflug/pom.xml index 734fe25943db9..4c7dd867b8ba8 100644 --- a/bundles/org.openhab.binding.dwdpollenflug/pom.xml +++ b/bundles/org.openhab.binding.dwdpollenflug/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.dwdpollenflug diff --git a/bundles/org.openhab.binding.dwdunwetter/pom.xml b/bundles/org.openhab.binding.dwdunwetter/pom.xml index 847b8670181f0..b0a231705c0e1 100644 --- a/bundles/org.openhab.binding.dwdunwetter/pom.xml +++ b/bundles/org.openhab.binding.dwdunwetter/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.dwdunwetter diff --git a/bundles/org.openhab.binding.ecobee/pom.xml b/bundles/org.openhab.binding.ecobee/pom.xml index 02424fb7288f9..8e7b6c50c5919 100644 --- a/bundles/org.openhab.binding.ecobee/pom.xml +++ b/bundles/org.openhab.binding.ecobee/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.ecobee diff --git a/bundles/org.openhab.binding.ecotouch/pom.xml b/bundles/org.openhab.binding.ecotouch/pom.xml index da78ee2e4541a..98192984ddd66 100644 --- a/bundles/org.openhab.binding.ecotouch/pom.xml +++ b/bundles/org.openhab.binding.ecotouch/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.ecotouch diff --git a/bundles/org.openhab.binding.ekey/pom.xml b/bundles/org.openhab.binding.ekey/pom.xml index aee63c3004a15..9875c4293360e 100644 --- a/bundles/org.openhab.binding.ekey/pom.xml +++ b/bundles/org.openhab.binding.ekey/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.ekey diff --git a/bundles/org.openhab.binding.electroluxair/pom.xml b/bundles/org.openhab.binding.electroluxair/pom.xml index 5b6bfa78cd2cc..a5fa4f3f05ad2 100644 --- a/bundles/org.openhab.binding.electroluxair/pom.xml +++ b/bundles/org.openhab.binding.electroluxair/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.electroluxair diff --git a/bundles/org.openhab.binding.elerotransmitterstick/pom.xml b/bundles/org.openhab.binding.elerotransmitterstick/pom.xml index 08d41f6f6dc66..d894344d8db91 100644 --- a/bundles/org.openhab.binding.elerotransmitterstick/pom.xml +++ b/bundles/org.openhab.binding.elerotransmitterstick/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.elerotransmitterstick diff --git a/bundles/org.openhab.binding.elroconnects/pom.xml b/bundles/org.openhab.binding.elroconnects/pom.xml index 2110b17e383ab..0d16a70da9e0c 100644 --- a/bundles/org.openhab.binding.elroconnects/pom.xml +++ b/bundles/org.openhab.binding.elroconnects/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.elroconnects diff --git a/bundles/org.openhab.binding.energenie/pom.xml b/bundles/org.openhab.binding.energenie/pom.xml index 6c6aef41b7465..cad96864c07df 100644 --- a/bundles/org.openhab.binding.energenie/pom.xml +++ b/bundles/org.openhab.binding.energenie/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.energenie diff --git a/bundles/org.openhab.binding.enigma2/pom.xml b/bundles/org.openhab.binding.enigma2/pom.xml index a64f50b17314e..c6aca187ad56a 100644 --- a/bundles/org.openhab.binding.enigma2/pom.xml +++ b/bundles/org.openhab.binding.enigma2/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.enigma2 diff --git a/bundles/org.openhab.binding.enocean/pom.xml b/bundles/org.openhab.binding.enocean/pom.xml index ae602afc70e6d..f11fcbe3ba5dd 100644 --- a/bundles/org.openhab.binding.enocean/pom.xml +++ b/bundles/org.openhab.binding.enocean/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.enocean diff --git a/bundles/org.openhab.binding.enphase/pom.xml b/bundles/org.openhab.binding.enphase/pom.xml index 8262ae294b376..3ec38dc222206 100644 --- a/bundles/org.openhab.binding.enphase/pom.xml +++ b/bundles/org.openhab.binding.enphase/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.enphase diff --git a/bundles/org.openhab.binding.enturno/pom.xml b/bundles/org.openhab.binding.enturno/pom.xml index ce35e7a27bacf..0d258ed02b732 100644 --- a/bundles/org.openhab.binding.enturno/pom.xml +++ b/bundles/org.openhab.binding.enturno/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.enturno diff --git a/bundles/org.openhab.binding.epsonprojector/pom.xml b/bundles/org.openhab.binding.epsonprojector/pom.xml index e05da6c4ec49c..9411a09d49d16 100644 --- a/bundles/org.openhab.binding.epsonprojector/pom.xml +++ b/bundles/org.openhab.binding.epsonprojector/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.epsonprojector diff --git a/bundles/org.openhab.binding.etherrain/pom.xml b/bundles/org.openhab.binding.etherrain/pom.xml index 6f451832bdfba..b30491b948b15 100644 --- a/bundles/org.openhab.binding.etherrain/pom.xml +++ b/bundles/org.openhab.binding.etherrain/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.etherrain diff --git a/bundles/org.openhab.binding.evcc/pom.xml b/bundles/org.openhab.binding.evcc/pom.xml index c00f4d32584fe..c01705c572e2c 100644 --- a/bundles/org.openhab.binding.evcc/pom.xml +++ b/bundles/org.openhab.binding.evcc/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.evcc diff --git a/bundles/org.openhab.binding.evohome/pom.xml b/bundles/org.openhab.binding.evohome/pom.xml index 39b173498d5cc..9eeeade0e8d6e 100644 --- a/bundles/org.openhab.binding.evohome/pom.xml +++ b/bundles/org.openhab.binding.evohome/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.evohome diff --git a/bundles/org.openhab.binding.exec/pom.xml b/bundles/org.openhab.binding.exec/pom.xml index 6de7245fd5614..218bf11720b08 100644 --- a/bundles/org.openhab.binding.exec/pom.xml +++ b/bundles/org.openhab.binding.exec/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.exec diff --git a/bundles/org.openhab.binding.feed/pom.xml b/bundles/org.openhab.binding.feed/pom.xml index c38fea8d8af60..5280466145e36 100644 --- a/bundles/org.openhab.binding.feed/pom.xml +++ b/bundles/org.openhab.binding.feed/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.feed diff --git a/bundles/org.openhab.binding.feican/pom.xml b/bundles/org.openhab.binding.feican/pom.xml index f1edafd8a7fca..b756b3e3f31fe 100644 --- a/bundles/org.openhab.binding.feican/pom.xml +++ b/bundles/org.openhab.binding.feican/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.feican diff --git a/bundles/org.openhab.binding.fineoffsetweatherstation/pom.xml b/bundles/org.openhab.binding.fineoffsetweatherstation/pom.xml index ab25c639d222e..079274d1f0b36 100644 --- a/bundles/org.openhab.binding.fineoffsetweatherstation/pom.xml +++ b/bundles/org.openhab.binding.fineoffsetweatherstation/pom.xml @@ -16,7 +16,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.fineoffsetweatherstation diff --git a/bundles/org.openhab.binding.flicbutton/pom.xml b/bundles/org.openhab.binding.flicbutton/pom.xml index 31d61e032d676..172d19f2b04cc 100644 --- a/bundles/org.openhab.binding.flicbutton/pom.xml +++ b/bundles/org.openhab.binding.flicbutton/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.flicbutton diff --git a/bundles/org.openhab.binding.fmiweather/pom.xml b/bundles/org.openhab.binding.fmiweather/pom.xml index 3c2087a68a8fe..07d5ff16e51cf 100644 --- a/bundles/org.openhab.binding.fmiweather/pom.xml +++ b/bundles/org.openhab.binding.fmiweather/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.fmiweather diff --git a/bundles/org.openhab.binding.folderwatcher/pom.xml b/bundles/org.openhab.binding.folderwatcher/pom.xml index 73a0d71aed308..1a1403e88aa8d 100644 --- a/bundles/org.openhab.binding.folderwatcher/pom.xml +++ b/bundles/org.openhab.binding.folderwatcher/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.folderwatcher diff --git a/bundles/org.openhab.binding.folding/pom.xml b/bundles/org.openhab.binding.folding/pom.xml index 7118c593e1277..b2b24e1f39b4e 100644 --- a/bundles/org.openhab.binding.folding/pom.xml +++ b/bundles/org.openhab.binding.folding/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.folding diff --git a/bundles/org.openhab.binding.foobot/pom.xml b/bundles/org.openhab.binding.foobot/pom.xml index beda770908bc9..addbb865bc9b9 100644 --- a/bundles/org.openhab.binding.foobot/pom.xml +++ b/bundles/org.openhab.binding.foobot/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.foobot diff --git a/bundles/org.openhab.binding.freebox/pom.xml b/bundles/org.openhab.binding.freebox/pom.xml index 6613ef1637da6..a4bc09593bc1f 100644 --- a/bundles/org.openhab.binding.freebox/pom.xml +++ b/bundles/org.openhab.binding.freebox/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.freebox diff --git a/bundles/org.openhab.binding.fronius/pom.xml b/bundles/org.openhab.binding.fronius/pom.xml index 44237e02b2bca..37c108ffe4645 100644 --- a/bundles/org.openhab.binding.fronius/pom.xml +++ b/bundles/org.openhab.binding.fronius/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.fronius diff --git a/bundles/org.openhab.binding.fsinternetradio/pom.xml b/bundles/org.openhab.binding.fsinternetradio/pom.xml index 049b458c4ea0c..37950d6bbcaed 100644 --- a/bundles/org.openhab.binding.fsinternetradio/pom.xml +++ b/bundles/org.openhab.binding.fsinternetradio/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.fsinternetradio diff --git a/bundles/org.openhab.binding.ftpupload/pom.xml b/bundles/org.openhab.binding.ftpupload/pom.xml index d040637761e7e..795e4582daf68 100644 --- a/bundles/org.openhab.binding.ftpupload/pom.xml +++ b/bundles/org.openhab.binding.ftpupload/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.ftpupload diff --git a/bundles/org.openhab.binding.gardena/pom.xml b/bundles/org.openhab.binding.gardena/pom.xml index fd3b1e716dbbb..e993379735ce5 100644 --- a/bundles/org.openhab.binding.gardena/pom.xml +++ b/bundles/org.openhab.binding.gardena/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.gardena diff --git a/bundles/org.openhab.binding.gce/pom.xml b/bundles/org.openhab.binding.gce/pom.xml index 7c32aab6653d1..5341c67e2699a 100644 --- a/bundles/org.openhab.binding.gce/pom.xml +++ b/bundles/org.openhab.binding.gce/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.gce diff --git a/bundles/org.openhab.binding.generacmobilelink/pom.xml b/bundles/org.openhab.binding.generacmobilelink/pom.xml index a0f8782eb69a5..9359ee5f1b40d 100644 --- a/bundles/org.openhab.binding.generacmobilelink/pom.xml +++ b/bundles/org.openhab.binding.generacmobilelink/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.generacmobilelink diff --git a/bundles/org.openhab.binding.globalcache/pom.xml b/bundles/org.openhab.binding.globalcache/pom.xml index 94a46264f8760..e9a5f30ac8476 100644 --- a/bundles/org.openhab.binding.globalcache/pom.xml +++ b/bundles/org.openhab.binding.globalcache/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.globalcache diff --git a/bundles/org.openhab.binding.goecharger/pom.xml b/bundles/org.openhab.binding.goecharger/pom.xml index 450b1927d980e..362ccf582509d 100644 --- a/bundles/org.openhab.binding.goecharger/pom.xml +++ b/bundles/org.openhab.binding.goecharger/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.goecharger diff --git a/bundles/org.openhab.binding.gpio/pom.xml b/bundles/org.openhab.binding.gpio/pom.xml index a1c2e604f35c9..feb8e8c9c5ac9 100644 --- a/bundles/org.openhab.binding.gpio/pom.xml +++ b/bundles/org.openhab.binding.gpio/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.gpio diff --git a/bundles/org.openhab.binding.gpstracker/pom.xml b/bundles/org.openhab.binding.gpstracker/pom.xml index 8132d8bb0c750..8a8e03501315d 100644 --- a/bundles/org.openhab.binding.gpstracker/pom.xml +++ b/bundles/org.openhab.binding.gpstracker/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.gpstracker diff --git a/bundles/org.openhab.binding.gree/pom.xml b/bundles/org.openhab.binding.gree/pom.xml index 5d63605dccbe4..90bb9d0943639 100644 --- a/bundles/org.openhab.binding.gree/pom.xml +++ b/bundles/org.openhab.binding.gree/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.gree diff --git a/bundles/org.openhab.binding.groheondus/pom.xml b/bundles/org.openhab.binding.groheondus/pom.xml index 4d8eefaa98abc..d2cf73178872a 100644 --- a/bundles/org.openhab.binding.groheondus/pom.xml +++ b/bundles/org.openhab.binding.groheondus/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.groheondus diff --git a/bundles/org.openhab.binding.groupepsa/pom.xml b/bundles/org.openhab.binding.groupepsa/pom.xml index 1108e50edfcf3..61298c3c2d86e 100644 --- a/bundles/org.openhab.binding.groupepsa/pom.xml +++ b/bundles/org.openhab.binding.groupepsa/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.groupepsa diff --git a/bundles/org.openhab.binding.guntamatic/pom.xml b/bundles/org.openhab.binding.guntamatic/pom.xml index fb4fbc83679ab..6e2a3def28583 100644 --- a/bundles/org.openhab.binding.guntamatic/pom.xml +++ b/bundles/org.openhab.binding.guntamatic/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.guntamatic diff --git a/bundles/org.openhab.binding.haassohnpelletstove/pom.xml b/bundles/org.openhab.binding.haassohnpelletstove/pom.xml index bd249ab066f33..1f3b4ec8953c9 100644 --- a/bundles/org.openhab.binding.haassohnpelletstove/pom.xml +++ b/bundles/org.openhab.binding.haassohnpelletstove/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.haassohnpelletstove diff --git a/bundles/org.openhab.binding.harmonyhub/pom.xml b/bundles/org.openhab.binding.harmonyhub/pom.xml index 10ad38e3ffe6d..6b865133d2b61 100644 --- a/bundles/org.openhab.binding.harmonyhub/pom.xml +++ b/bundles/org.openhab.binding.harmonyhub/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.harmonyhub diff --git a/bundles/org.openhab.binding.haywardomnilogic/pom.xml b/bundles/org.openhab.binding.haywardomnilogic/pom.xml index 5b8dcfc79e1bf..72125973a4191 100644 --- a/bundles/org.openhab.binding.haywardomnilogic/pom.xml +++ b/bundles/org.openhab.binding.haywardomnilogic/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.haywardomnilogic diff --git a/bundles/org.openhab.binding.hccrubbishcollection/pom.xml b/bundles/org.openhab.binding.hccrubbishcollection/pom.xml index 44a9293ff60ae..d12f9243d4577 100644 --- a/bundles/org.openhab.binding.hccrubbishcollection/pom.xml +++ b/bundles/org.openhab.binding.hccrubbishcollection/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.hccrubbishcollection diff --git a/bundles/org.openhab.binding.hdanywhere/pom.xml b/bundles/org.openhab.binding.hdanywhere/pom.xml index a98bc7a5cda51..2eda722cba08d 100644 --- a/bundles/org.openhab.binding.hdanywhere/pom.xml +++ b/bundles/org.openhab.binding.hdanywhere/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.hdanywhere diff --git a/bundles/org.openhab.binding.hdpowerview/pom.xml b/bundles/org.openhab.binding.hdpowerview/pom.xml index bd026698dfe7a..004f01a3681ed 100644 --- a/bundles/org.openhab.binding.hdpowerview/pom.xml +++ b/bundles/org.openhab.binding.hdpowerview/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.hdpowerview diff --git a/bundles/org.openhab.binding.helios/pom.xml b/bundles/org.openhab.binding.helios/pom.xml index ea587a9087e26..44846b0ebe432 100644 --- a/bundles/org.openhab.binding.helios/pom.xml +++ b/bundles/org.openhab.binding.helios/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.helios diff --git a/bundles/org.openhab.binding.heliosventilation/pom.xml b/bundles/org.openhab.binding.heliosventilation/pom.xml index e69ac406e4f57..7657bafcf08eb 100644 --- a/bundles/org.openhab.binding.heliosventilation/pom.xml +++ b/bundles/org.openhab.binding.heliosventilation/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.heliosventilation diff --git a/bundles/org.openhab.binding.heos/pom.xml b/bundles/org.openhab.binding.heos/pom.xml index 3c08e84a5303e..454500851bee2 100644 --- a/bundles/org.openhab.binding.heos/pom.xml +++ b/bundles/org.openhab.binding.heos/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.heos diff --git a/bundles/org.openhab.binding.herzborg/pom.xml b/bundles/org.openhab.binding.herzborg/pom.xml index e38d7bb22f72e..5bcb7d7599250 100644 --- a/bundles/org.openhab.binding.herzborg/pom.xml +++ b/bundles/org.openhab.binding.herzborg/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.herzborg diff --git a/bundles/org.openhab.binding.homeconnect/pom.xml b/bundles/org.openhab.binding.homeconnect/pom.xml index e6648abb4e961..293d1f2cb438a 100644 --- a/bundles/org.openhab.binding.homeconnect/pom.xml +++ b/bundles/org.openhab.binding.homeconnect/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.homeconnect diff --git a/bundles/org.openhab.binding.homematic/pom.xml b/bundles/org.openhab.binding.homematic/pom.xml index 1dc383a6f557a..055a63bc26fa7 100644 --- a/bundles/org.openhab.binding.homematic/pom.xml +++ b/bundles/org.openhab.binding.homematic/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.homematic diff --git a/bundles/org.openhab.binding.homewizard/pom.xml b/bundles/org.openhab.binding.homewizard/pom.xml index f0559c97f19c6..86fc7789386f5 100644 --- a/bundles/org.openhab.binding.homewizard/pom.xml +++ b/bundles/org.openhab.binding.homewizard/pom.xml @@ -3,7 +3,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.homewizard openHAB Add-ons :: Bundles :: HomeWizard Binding diff --git a/bundles/org.openhab.binding.hpprinter/pom.xml b/bundles/org.openhab.binding.hpprinter/pom.xml index 0c5edde2c67bb..94a4bc74ed79a 100644 --- a/bundles/org.openhab.binding.hpprinter/pom.xml +++ b/bundles/org.openhab.binding.hpprinter/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.hpprinter diff --git a/bundles/org.openhab.binding.http/pom.xml b/bundles/org.openhab.binding.http/pom.xml index 3dda3f1753da1..84ccb3ab2eb63 100644 --- a/bundles/org.openhab.binding.http/pom.xml +++ b/bundles/org.openhab.binding.http/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.http diff --git a/bundles/org.openhab.binding.hue/pom.xml b/bundles/org.openhab.binding.hue/pom.xml index 2351bccd255a9..d0a6e0d6dcefc 100644 --- a/bundles/org.openhab.binding.hue/pom.xml +++ b/bundles/org.openhab.binding.hue/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.hue diff --git a/bundles/org.openhab.binding.hydrawise/pom.xml b/bundles/org.openhab.binding.hydrawise/pom.xml index 48ba9d5cf57cd..96f9c14396c0a 100644 --- a/bundles/org.openhab.binding.hydrawise/pom.xml +++ b/bundles/org.openhab.binding.hydrawise/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.hydrawise diff --git a/bundles/org.openhab.binding.hyperion/pom.xml b/bundles/org.openhab.binding.hyperion/pom.xml index 609d82b68cdf8..9605c9587ac6b 100644 --- a/bundles/org.openhab.binding.hyperion/pom.xml +++ b/bundles/org.openhab.binding.hyperion/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.hyperion diff --git a/bundles/org.openhab.binding.iammeter/pom.xml b/bundles/org.openhab.binding.iammeter/pom.xml index feb5e83000ab4..3ba41bc76382a 100644 --- a/bundles/org.openhab.binding.iammeter/pom.xml +++ b/bundles/org.openhab.binding.iammeter/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.iammeter diff --git a/bundles/org.openhab.binding.iaqualink/pom.xml b/bundles/org.openhab.binding.iaqualink/pom.xml index 428f87f2a9622..59e8e4ec0da9e 100644 --- a/bundles/org.openhab.binding.iaqualink/pom.xml +++ b/bundles/org.openhab.binding.iaqualink/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.iaqualink diff --git a/bundles/org.openhab.binding.icalendar/pom.xml b/bundles/org.openhab.binding.icalendar/pom.xml index 72cf9083f165a..a5e872da51e9a 100644 --- a/bundles/org.openhab.binding.icalendar/pom.xml +++ b/bundles/org.openhab.binding.icalendar/pom.xml @@ -3,7 +3,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.icalendar openHAB Add-ons :: Bundles :: iCalendar Binding diff --git a/bundles/org.openhab.binding.icloud/pom.xml b/bundles/org.openhab.binding.icloud/pom.xml index c1ef005a4f03e..8bbd6088e0054 100644 --- a/bundles/org.openhab.binding.icloud/pom.xml +++ b/bundles/org.openhab.binding.icloud/pom.xml @@ -4,7 +4,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.icloud diff --git a/bundles/org.openhab.binding.ihc/pom.xml b/bundles/org.openhab.binding.ihc/pom.xml index 481ac3149f818..d230b3c9b1acf 100644 --- a/bundles/org.openhab.binding.ihc/pom.xml +++ b/bundles/org.openhab.binding.ihc/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.ihc diff --git a/bundles/org.openhab.binding.innogysmarthome/pom.xml b/bundles/org.openhab.binding.innogysmarthome/pom.xml index 70534cd6db8fb..b743edeff007f 100644 --- a/bundles/org.openhab.binding.innogysmarthome/pom.xml +++ b/bundles/org.openhab.binding.innogysmarthome/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.innogysmarthome diff --git a/bundles/org.openhab.binding.insteon/pom.xml b/bundles/org.openhab.binding.insteon/pom.xml index ee821e915cadc..2d146a0da2011 100644 --- a/bundles/org.openhab.binding.insteon/pom.xml +++ b/bundles/org.openhab.binding.insteon/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.insteon diff --git a/bundles/org.openhab.binding.intesis/pom.xml b/bundles/org.openhab.binding.intesis/pom.xml index 55f521c4236b9..2e1ce72f5e911 100644 --- a/bundles/org.openhab.binding.intesis/pom.xml +++ b/bundles/org.openhab.binding.intesis/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.intesis diff --git a/bundles/org.openhab.binding.ipcamera/pom.xml b/bundles/org.openhab.binding.ipcamera/pom.xml index 1c31a159e7a83..22ffd18a4e25d 100644 --- a/bundles/org.openhab.binding.ipcamera/pom.xml +++ b/bundles/org.openhab.binding.ipcamera/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.ipcamera diff --git a/bundles/org.openhab.binding.ipobserver/pom.xml b/bundles/org.openhab.binding.ipobserver/pom.xml index 6eca376f6a5c2..94d57d0007048 100644 --- a/bundles/org.openhab.binding.ipobserver/pom.xml +++ b/bundles/org.openhab.binding.ipobserver/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.ipobserver diff --git a/bundles/org.openhab.binding.ipp/pom.xml b/bundles/org.openhab.binding.ipp/pom.xml index abce752dfa195..30d656b9b047b 100644 --- a/bundles/org.openhab.binding.ipp/pom.xml +++ b/bundles/org.openhab.binding.ipp/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.ipp diff --git a/bundles/org.openhab.binding.irobot/pom.xml b/bundles/org.openhab.binding.irobot/pom.xml index d6ebed4cd18ea..06a0567607145 100644 --- a/bundles/org.openhab.binding.irobot/pom.xml +++ b/bundles/org.openhab.binding.irobot/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.irobot diff --git a/bundles/org.openhab.binding.irtrans/pom.xml b/bundles/org.openhab.binding.irtrans/pom.xml index d03608e159f5e..0e255104423f8 100644 --- a/bundles/org.openhab.binding.irtrans/pom.xml +++ b/bundles/org.openhab.binding.irtrans/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.irtrans diff --git a/bundles/org.openhab.binding.ism8/pom.xml b/bundles/org.openhab.binding.ism8/pom.xml index 8aa76a6aa7557..66aab84db08a4 100644 --- a/bundles/org.openhab.binding.ism8/pom.xml +++ b/bundles/org.openhab.binding.ism8/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.ism8 diff --git a/bundles/org.openhab.binding.jablotron/pom.xml b/bundles/org.openhab.binding.jablotron/pom.xml index 38c23c4c52ddb..f41f4aa36c689 100644 --- a/bundles/org.openhab.binding.jablotron/pom.xml +++ b/bundles/org.openhab.binding.jablotron/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.jablotron diff --git a/bundles/org.openhab.binding.jeelink/pom.xml b/bundles/org.openhab.binding.jeelink/pom.xml index 19256a1d13d37..5e2ca49ec7500 100644 --- a/bundles/org.openhab.binding.jeelink/pom.xml +++ b/bundles/org.openhab.binding.jeelink/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.jeelink diff --git a/bundles/org.openhab.binding.jellyfin/pom.xml b/bundles/org.openhab.binding.jellyfin/pom.xml index 8e862ba102975..f2cabdcbfa744 100644 --- a/bundles/org.openhab.binding.jellyfin/pom.xml +++ b/bundles/org.openhab.binding.jellyfin/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 diff --git a/bundles/org.openhab.binding.kaleidescape/pom.xml b/bundles/org.openhab.binding.kaleidescape/pom.xml index 6e1871debec71..27f320dee15bd 100644 --- a/bundles/org.openhab.binding.kaleidescape/pom.xml +++ b/bundles/org.openhab.binding.kaleidescape/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.kaleidescape diff --git a/bundles/org.openhab.binding.keba/pom.xml b/bundles/org.openhab.binding.keba/pom.xml index ba7531b17a5eb..f22d757c44bca 100644 --- a/bundles/org.openhab.binding.keba/pom.xml +++ b/bundles/org.openhab.binding.keba/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.keba diff --git a/bundles/org.openhab.binding.km200/pom.xml b/bundles/org.openhab.binding.km200/pom.xml index 6481431fdc521..725d66268bbb6 100644 --- a/bundles/org.openhab.binding.km200/pom.xml +++ b/bundles/org.openhab.binding.km200/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.km200 diff --git a/bundles/org.openhab.binding.knx/pom.xml b/bundles/org.openhab.binding.knx/pom.xml index 0dfc3f7313932..f189d5fa5f97e 100644 --- a/bundles/org.openhab.binding.knx/pom.xml +++ b/bundles/org.openhab.binding.knx/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.knx diff --git a/bundles/org.openhab.binding.kodi/pom.xml b/bundles/org.openhab.binding.kodi/pom.xml index 811be14999de5..b6973e1bbc7fb 100644 --- a/bundles/org.openhab.binding.kodi/pom.xml +++ b/bundles/org.openhab.binding.kodi/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.kodi diff --git a/bundles/org.openhab.binding.konnected/pom.xml b/bundles/org.openhab.binding.konnected/pom.xml index e18c48a94b906..ce597ece07dbc 100644 --- a/bundles/org.openhab.binding.konnected/pom.xml +++ b/bundles/org.openhab.binding.konnected/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.konnected diff --git a/bundles/org.openhab.binding.kostalinverter/pom.xml b/bundles/org.openhab.binding.kostalinverter/pom.xml index f7d558dddf5fa..cea22fd41bd85 100644 --- a/bundles/org.openhab.binding.kostalinverter/pom.xml +++ b/bundles/org.openhab.binding.kostalinverter/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.kostalinverter diff --git a/bundles/org.openhab.binding.kvv/pom.xml b/bundles/org.openhab.binding.kvv/pom.xml index 78d729818c8e2..af9e38e07a3ed 100644 --- a/bundles/org.openhab.binding.kvv/pom.xml +++ b/bundles/org.openhab.binding.kvv/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.kvv diff --git a/bundles/org.openhab.binding.lametrictime/pom.xml b/bundles/org.openhab.binding.lametrictime/pom.xml index 5d609131eded4..3597f9c355d5f 100644 --- a/bundles/org.openhab.binding.lametrictime/pom.xml +++ b/bundles/org.openhab.binding.lametrictime/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.lametrictime diff --git a/bundles/org.openhab.binding.lcn/pom.xml b/bundles/org.openhab.binding.lcn/pom.xml index 9c54994fa21af..e1f13578b2415 100644 --- a/bundles/org.openhab.binding.lcn/pom.xml +++ b/bundles/org.openhab.binding.lcn/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.lcn diff --git a/bundles/org.openhab.binding.leapmotion/pom.xml b/bundles/org.openhab.binding.leapmotion/pom.xml index 4589972152b96..4bae45f525dbf 100644 --- a/bundles/org.openhab.binding.leapmotion/pom.xml +++ b/bundles/org.openhab.binding.leapmotion/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.leapmotion diff --git a/bundles/org.openhab.binding.lghombot/pom.xml b/bundles/org.openhab.binding.lghombot/pom.xml index 87eb381f6f8a3..8e0371af0f911 100644 --- a/bundles/org.openhab.binding.lghombot/pom.xml +++ b/bundles/org.openhab.binding.lghombot/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.lghombot diff --git a/bundles/org.openhab.binding.lgtvserial/pom.xml b/bundles/org.openhab.binding.lgtvserial/pom.xml index f2f09c69556b8..a14bd6f5ff81c 100644 --- a/bundles/org.openhab.binding.lgtvserial/pom.xml +++ b/bundles/org.openhab.binding.lgtvserial/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.lgtvserial diff --git a/bundles/org.openhab.binding.lgwebos/pom.xml b/bundles/org.openhab.binding.lgwebos/pom.xml index 69d6a3114e2cb..66e6a75541909 100644 --- a/bundles/org.openhab.binding.lgwebos/pom.xml +++ b/bundles/org.openhab.binding.lgwebos/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.lgwebos diff --git a/bundles/org.openhab.binding.lifx/pom.xml b/bundles/org.openhab.binding.lifx/pom.xml index a3ee525d11839..6d4d37278ffc8 100644 --- a/bundles/org.openhab.binding.lifx/pom.xml +++ b/bundles/org.openhab.binding.lifx/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.lifx diff --git a/bundles/org.openhab.binding.linky/pom.xml b/bundles/org.openhab.binding.linky/pom.xml index 129de47f0e318..041fb2e3d63b4 100644 --- a/bundles/org.openhab.binding.linky/pom.xml +++ b/bundles/org.openhab.binding.linky/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.linky diff --git a/bundles/org.openhab.binding.linuxinput/pom.xml b/bundles/org.openhab.binding.linuxinput/pom.xml index 4a7ef36393942..ccafbbc2d8993 100644 --- a/bundles/org.openhab.binding.linuxinput/pom.xml +++ b/bundles/org.openhab.binding.linuxinput/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.linuxinput diff --git a/bundles/org.openhab.binding.lirc/pom.xml b/bundles/org.openhab.binding.lirc/pom.xml index 9d800a075f949..6bd8efaea56ed 100644 --- a/bundles/org.openhab.binding.lirc/pom.xml +++ b/bundles/org.openhab.binding.lirc/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.lirc diff --git a/bundles/org.openhab.binding.livisismarthome/pom.xml b/bundles/org.openhab.binding.livisismarthome/pom.xml index 69e41fd44aad9..3dc3cabc524f2 100644 --- a/bundles/org.openhab.binding.livisismarthome/pom.xml +++ b/bundles/org.openhab.binding.livisismarthome/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.livisismarthome diff --git a/bundles/org.openhab.binding.logreader/pom.xml b/bundles/org.openhab.binding.logreader/pom.xml index 88351da963314..6bd4cc8e8b044 100644 --- a/bundles/org.openhab.binding.logreader/pom.xml +++ b/bundles/org.openhab.binding.logreader/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.logreader diff --git a/bundles/org.openhab.binding.loxone/pom.xml b/bundles/org.openhab.binding.loxone/pom.xml index b782a31111dbf..dabdf09a2d44a 100644 --- a/bundles/org.openhab.binding.loxone/pom.xml +++ b/bundles/org.openhab.binding.loxone/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.loxone diff --git a/bundles/org.openhab.binding.luftdateninfo/pom.xml b/bundles/org.openhab.binding.luftdateninfo/pom.xml index 61a26bfb0257f..fdc504ba12884 100644 --- a/bundles/org.openhab.binding.luftdateninfo/pom.xml +++ b/bundles/org.openhab.binding.luftdateninfo/pom.xml @@ -4,7 +4,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.luftdateninfo diff --git a/bundles/org.openhab.binding.lutron/pom.xml b/bundles/org.openhab.binding.lutron/pom.xml index 77b86644ecf25..1d0edb14337ad 100644 --- a/bundles/org.openhab.binding.lutron/pom.xml +++ b/bundles/org.openhab.binding.lutron/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.lutron diff --git a/bundles/org.openhab.binding.luxom/pom.xml b/bundles/org.openhab.binding.luxom/pom.xml index f3a548665efa3..9e4aef00ed6d9 100644 --- a/bundles/org.openhab.binding.luxom/pom.xml +++ b/bundles/org.openhab.binding.luxom/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.luxom diff --git a/bundles/org.openhab.binding.luxtronikheatpump/pom.xml b/bundles/org.openhab.binding.luxtronikheatpump/pom.xml index 593145246401b..776d1ec1a3831 100644 --- a/bundles/org.openhab.binding.luxtronikheatpump/pom.xml +++ b/bundles/org.openhab.binding.luxtronikheatpump/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.luxtronikheatpump diff --git a/bundles/org.openhab.binding.magentatv/pom.xml b/bundles/org.openhab.binding.magentatv/pom.xml index 3cbb6dd6fbda8..9700f3304e0f1 100644 --- a/bundles/org.openhab.binding.magentatv/pom.xml +++ b/bundles/org.openhab.binding.magentatv/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.magentatv diff --git a/bundles/org.openhab.binding.mail/pom.xml b/bundles/org.openhab.binding.mail/pom.xml index 1033f05bf0dd9..a800c51cfe685 100644 --- a/bundles/org.openhab.binding.mail/pom.xml +++ b/bundles/org.openhab.binding.mail/pom.xml @@ -4,7 +4,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.mail diff --git a/bundles/org.openhab.binding.max/pom.xml b/bundles/org.openhab.binding.max/pom.xml index 011fe680315b6..f29b06b1cd856 100644 --- a/bundles/org.openhab.binding.max/pom.xml +++ b/bundles/org.openhab.binding.max/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.max diff --git a/bundles/org.openhab.binding.mcp23017/pom.xml b/bundles/org.openhab.binding.mcp23017/pom.xml index 917de342ba274..4c86145d2488c 100644 --- a/bundles/org.openhab.binding.mcp23017/pom.xml +++ b/bundles/org.openhab.binding.mcp23017/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.mcp23017 diff --git a/bundles/org.openhab.binding.mecmeter/pom.xml b/bundles/org.openhab.binding.mecmeter/pom.xml index 812ced062128d..90aff2732d52b 100644 --- a/bundles/org.openhab.binding.mecmeter/pom.xml +++ b/bundles/org.openhab.binding.mecmeter/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.mecmeter diff --git a/bundles/org.openhab.binding.melcloud/pom.xml b/bundles/org.openhab.binding.melcloud/pom.xml index a29702e6721b3..d26dd5b9110bd 100644 --- a/bundles/org.openhab.binding.melcloud/pom.xml +++ b/bundles/org.openhab.binding.melcloud/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.melcloud diff --git a/bundles/org.openhab.binding.meteoalerte/pom.xml b/bundles/org.openhab.binding.meteoalerte/pom.xml index 90ca61e65ad70..edff6c1af40a9 100644 --- a/bundles/org.openhab.binding.meteoalerte/pom.xml +++ b/bundles/org.openhab.binding.meteoalerte/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.meteoalerte diff --git a/bundles/org.openhab.binding.meteoblue/pom.xml b/bundles/org.openhab.binding.meteoblue/pom.xml index 0033ea6446b6b..6765c4e6e5133 100644 --- a/bundles/org.openhab.binding.meteoblue/pom.xml +++ b/bundles/org.openhab.binding.meteoblue/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.meteoblue diff --git a/bundles/org.openhab.binding.meteostick/pom.xml b/bundles/org.openhab.binding.meteostick/pom.xml index bd34475aed13b..6d0a25a7fb9ca 100644 --- a/bundles/org.openhab.binding.meteostick/pom.xml +++ b/bundles/org.openhab.binding.meteostick/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.meteostick diff --git a/bundles/org.openhab.binding.miele/pom.xml b/bundles/org.openhab.binding.miele/pom.xml index dc79c62ec985b..7af9374704a5d 100644 --- a/bundles/org.openhab.binding.miele/pom.xml +++ b/bundles/org.openhab.binding.miele/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.miele diff --git a/bundles/org.openhab.binding.mielecloud/pom.xml b/bundles/org.openhab.binding.mielecloud/pom.xml index 5d6c8f536926b..5a0a36ba4dee2 100644 --- a/bundles/org.openhab.binding.mielecloud/pom.xml +++ b/bundles/org.openhab.binding.mielecloud/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.mielecloud diff --git a/bundles/org.openhab.binding.mihome/pom.xml b/bundles/org.openhab.binding.mihome/pom.xml index fc6209385f075..44200f587caf6 100644 --- a/bundles/org.openhab.binding.mihome/pom.xml +++ b/bundles/org.openhab.binding.mihome/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.mihome diff --git a/bundles/org.openhab.binding.miio/pom.xml b/bundles/org.openhab.binding.miio/pom.xml index 281b0ef9415a8..f3915dd205a24 100644 --- a/bundles/org.openhab.binding.miio/pom.xml +++ b/bundles/org.openhab.binding.miio/pom.xml @@ -3,7 +3,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.miio openHAB Add-ons :: Bundles :: Xiaomi Wifi devices (Mi IO) Binding diff --git a/bundles/org.openhab.binding.mikrotik/pom.xml b/bundles/org.openhab.binding.mikrotik/pom.xml index f6fe422d36dc7..2502709f597d7 100644 --- a/bundles/org.openhab.binding.mikrotik/pom.xml +++ b/bundles/org.openhab.binding.mikrotik/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.mikrotik diff --git a/bundles/org.openhab.binding.milight/pom.xml b/bundles/org.openhab.binding.milight/pom.xml index b36441d3984eb..bfc255e02700d 100644 --- a/bundles/org.openhab.binding.milight/pom.xml +++ b/bundles/org.openhab.binding.milight/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.milight diff --git a/bundles/org.openhab.binding.millheat/pom.xml b/bundles/org.openhab.binding.millheat/pom.xml index 677c2099534b0..759621f0462b0 100644 --- a/bundles/org.openhab.binding.millheat/pom.xml +++ b/bundles/org.openhab.binding.millheat/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.millheat diff --git a/bundles/org.openhab.binding.minecraft/pom.xml b/bundles/org.openhab.binding.minecraft/pom.xml index 1f92e1d1988aa..8477877717514 100644 --- a/bundles/org.openhab.binding.minecraft/pom.xml +++ b/bundles/org.openhab.binding.minecraft/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.minecraft diff --git a/bundles/org.openhab.binding.modbus.e3dc/pom.xml b/bundles/org.openhab.binding.modbus.e3dc/pom.xml index 5009c9bd63dad..06fe5e4ae93d1 100644 --- a/bundles/org.openhab.binding.modbus.e3dc/pom.xml +++ b/bundles/org.openhab.binding.modbus.e3dc/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.modbus.e3dc diff --git a/bundles/org.openhab.binding.modbus.helioseasycontrols/pom.xml b/bundles/org.openhab.binding.modbus.helioseasycontrols/pom.xml index 85d8ff87bd291..65983891e0a6c 100644 --- a/bundles/org.openhab.binding.modbus.helioseasycontrols/pom.xml +++ b/bundles/org.openhab.binding.modbus.helioseasycontrols/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.modbus.helioseasycontrols diff --git a/bundles/org.openhab.binding.modbus.sbc/pom.xml b/bundles/org.openhab.binding.modbus.sbc/pom.xml index f6ee5cf0b7ba2..c85acca0c151c 100644 --- a/bundles/org.openhab.binding.modbus.sbc/pom.xml +++ b/bundles/org.openhab.binding.modbus.sbc/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.modbus.sbc diff --git a/bundles/org.openhab.binding.modbus.stiebeleltron/pom.xml b/bundles/org.openhab.binding.modbus.stiebeleltron/pom.xml index f19b8a5349e1c..c4c0e0fb74e6c 100644 --- a/bundles/org.openhab.binding.modbus.stiebeleltron/pom.xml +++ b/bundles/org.openhab.binding.modbus.stiebeleltron/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.modbus.stiebeleltron diff --git a/bundles/org.openhab.binding.modbus.studer/pom.xml b/bundles/org.openhab.binding.modbus.studer/pom.xml index 9a74d3836abbe..bbca11f104185 100644 --- a/bundles/org.openhab.binding.modbus.studer/pom.xml +++ b/bundles/org.openhab.binding.modbus.studer/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.modbus.studer diff --git a/bundles/org.openhab.binding.modbus.sunspec/pom.xml b/bundles/org.openhab.binding.modbus.sunspec/pom.xml index b0325ef083166..f5f4f41563e61 100644 --- a/bundles/org.openhab.binding.modbus.sunspec/pom.xml +++ b/bundles/org.openhab.binding.modbus.sunspec/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.modbus.sunspec diff --git a/bundles/org.openhab.binding.modbus/pom.xml b/bundles/org.openhab.binding.modbus/pom.xml index cba511ad6bd80..a01d2c34f2bb0 100644 --- a/bundles/org.openhab.binding.modbus/pom.xml +++ b/bundles/org.openhab.binding.modbus/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.modbus diff --git a/bundles/org.openhab.binding.monopriceaudio/pom.xml b/bundles/org.openhab.binding.monopriceaudio/pom.xml index 42e8e1cd122f1..8616674fcbdfc 100644 --- a/bundles/org.openhab.binding.monopriceaudio/pom.xml +++ b/bundles/org.openhab.binding.monopriceaudio/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.monopriceaudio diff --git a/bundles/org.openhab.binding.mpd/pom.xml b/bundles/org.openhab.binding.mpd/pom.xml index 8dd22b2cf185a..40abcae73b68c 100644 --- a/bundles/org.openhab.binding.mpd/pom.xml +++ b/bundles/org.openhab.binding.mpd/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.mpd diff --git a/bundles/org.openhab.binding.mqtt.espmilighthub/pom.xml b/bundles/org.openhab.binding.mqtt.espmilighthub/pom.xml index 281bedab2637e..7ab39a8685266 100644 --- a/bundles/org.openhab.binding.mqtt.espmilighthub/pom.xml +++ b/bundles/org.openhab.binding.mqtt.espmilighthub/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.mqtt.espmilighthub diff --git a/bundles/org.openhab.binding.mqtt.generic/pom.xml b/bundles/org.openhab.binding.mqtt.generic/pom.xml index 493382ec978d5..b7bd2f1ef48ad 100644 --- a/bundles/org.openhab.binding.mqtt.generic/pom.xml +++ b/bundles/org.openhab.binding.mqtt.generic/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.mqtt.generic diff --git a/bundles/org.openhab.binding.mqtt.homeassistant/pom.xml b/bundles/org.openhab.binding.mqtt.homeassistant/pom.xml index 25332e35cb464..951684c6a2b66 100644 --- a/bundles/org.openhab.binding.mqtt.homeassistant/pom.xml +++ b/bundles/org.openhab.binding.mqtt.homeassistant/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.mqtt.homeassistant diff --git a/bundles/org.openhab.binding.mqtt.homie/pom.xml b/bundles/org.openhab.binding.mqtt.homie/pom.xml index bc9015102a18b..956fb8dfb4ca0 100644 --- a/bundles/org.openhab.binding.mqtt.homie/pom.xml +++ b/bundles/org.openhab.binding.mqtt.homie/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.mqtt.homie diff --git a/bundles/org.openhab.binding.mqtt/pom.xml b/bundles/org.openhab.binding.mqtt/pom.xml index 73ef075be6240..cda7293507e4c 100644 --- a/bundles/org.openhab.binding.mqtt/pom.xml +++ b/bundles/org.openhab.binding.mqtt/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.mqtt diff --git a/bundles/org.openhab.binding.mybmw/pom.xml b/bundles/org.openhab.binding.mybmw/pom.xml index 72ab26fa66aca..cda0a6aa9baa4 100644 --- a/bundles/org.openhab.binding.mybmw/pom.xml +++ b/bundles/org.openhab.binding.mybmw/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.mybmw diff --git a/bundles/org.openhab.binding.mycroft/pom.xml b/bundles/org.openhab.binding.mycroft/pom.xml index aa79ca35845c4..1d6f4975aac63 100644 --- a/bundles/org.openhab.binding.mycroft/pom.xml +++ b/bundles/org.openhab.binding.mycroft/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.mycroft diff --git a/bundles/org.openhab.binding.myq/pom.xml b/bundles/org.openhab.binding.myq/pom.xml index 538cc006c264c..b77a5bcdd3811 100644 --- a/bundles/org.openhab.binding.myq/pom.xml +++ b/bundles/org.openhab.binding.myq/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.myq diff --git a/bundles/org.openhab.binding.mystrom/pom.xml b/bundles/org.openhab.binding.mystrom/pom.xml index be7384933db1d..410aa12ae0e74 100644 --- a/bundles/org.openhab.binding.mystrom/pom.xml +++ b/bundles/org.openhab.binding.mystrom/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.mystrom diff --git a/bundles/org.openhab.binding.nanoleaf/pom.xml b/bundles/org.openhab.binding.nanoleaf/pom.xml index 7882c435f5611..3e35da81aa76c 100644 --- a/bundles/org.openhab.binding.nanoleaf/pom.xml +++ b/bundles/org.openhab.binding.nanoleaf/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.nanoleaf diff --git a/bundles/org.openhab.binding.neato/pom.xml b/bundles/org.openhab.binding.neato/pom.xml index 0690ac2dfee28..b87ff520d4674 100644 --- a/bundles/org.openhab.binding.neato/pom.xml +++ b/bundles/org.openhab.binding.neato/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.neato diff --git a/bundles/org.openhab.binding.neeo/pom.xml b/bundles/org.openhab.binding.neeo/pom.xml index 141fd3c8efc71..d289068b48bca 100644 --- a/bundles/org.openhab.binding.neeo/pom.xml +++ b/bundles/org.openhab.binding.neeo/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.neeo diff --git a/bundles/org.openhab.binding.neohub/pom.xml b/bundles/org.openhab.binding.neohub/pom.xml index d3fc314b1b104..55c8a908bf619 100644 --- a/bundles/org.openhab.binding.neohub/pom.xml +++ b/bundles/org.openhab.binding.neohub/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.neohub diff --git a/bundles/org.openhab.binding.nest/pom.xml b/bundles/org.openhab.binding.nest/pom.xml index 0b60b825d0790..a5c7ccf9e6800 100644 --- a/bundles/org.openhab.binding.nest/pom.xml +++ b/bundles/org.openhab.binding.nest/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.nest diff --git a/bundles/org.openhab.binding.netatmo/pom.xml b/bundles/org.openhab.binding.netatmo/pom.xml index db81b065e84bf..a3692fb216747 100644 --- a/bundles/org.openhab.binding.netatmo/pom.xml +++ b/bundles/org.openhab.binding.netatmo/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.netatmo diff --git a/bundles/org.openhab.binding.network/pom.xml b/bundles/org.openhab.binding.network/pom.xml index dc41b4da45b1c..17d8bd6810544 100644 --- a/bundles/org.openhab.binding.network/pom.xml +++ b/bundles/org.openhab.binding.network/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.network diff --git a/bundles/org.openhab.binding.networkupstools/pom.xml b/bundles/org.openhab.binding.networkupstools/pom.xml index 322a935610cbe..5e60d6c4f76c7 100644 --- a/bundles/org.openhab.binding.networkupstools/pom.xml +++ b/bundles/org.openhab.binding.networkupstools/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.networkupstools diff --git a/bundles/org.openhab.binding.nibeheatpump/pom.xml b/bundles/org.openhab.binding.nibeheatpump/pom.xml index e318b7c4142f6..8541604d00fe5 100644 --- a/bundles/org.openhab.binding.nibeheatpump/pom.xml +++ b/bundles/org.openhab.binding.nibeheatpump/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.nibeheatpump diff --git a/bundles/org.openhab.binding.nibeuplink/pom.xml b/bundles/org.openhab.binding.nibeuplink/pom.xml index 7abee02a447e9..6f972dd6056f2 100644 --- a/bundles/org.openhab.binding.nibeuplink/pom.xml +++ b/bundles/org.openhab.binding.nibeuplink/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.nibeuplink diff --git a/bundles/org.openhab.binding.nikobus/pom.xml b/bundles/org.openhab.binding.nikobus/pom.xml index 83c97e96c3633..3fca2a4b46c25 100644 --- a/bundles/org.openhab.binding.nikobus/pom.xml +++ b/bundles/org.openhab.binding.nikobus/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.nikobus diff --git a/bundles/org.openhab.binding.nikohomecontrol/pom.xml b/bundles/org.openhab.binding.nikohomecontrol/pom.xml index 130d6d7fda158..048e9833af9cd 100644 --- a/bundles/org.openhab.binding.nikohomecontrol/pom.xml +++ b/bundles/org.openhab.binding.nikohomecontrol/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.nikohomecontrol diff --git a/bundles/org.openhab.binding.novafinedust/pom.xml b/bundles/org.openhab.binding.novafinedust/pom.xml index a9f268260c7aa..9c950c7a5cf42 100644 --- a/bundles/org.openhab.binding.novafinedust/pom.xml +++ b/bundles/org.openhab.binding.novafinedust/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.novafinedust diff --git a/bundles/org.openhab.binding.ntp/pom.xml b/bundles/org.openhab.binding.ntp/pom.xml index 64e45191d88cc..31c9f9c1b6964 100644 --- a/bundles/org.openhab.binding.ntp/pom.xml +++ b/bundles/org.openhab.binding.ntp/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.ntp diff --git a/bundles/org.openhab.binding.nuki/pom.xml b/bundles/org.openhab.binding.nuki/pom.xml index b0a78105fffdf..a6daaaa4abe43 100644 --- a/bundles/org.openhab.binding.nuki/pom.xml +++ b/bundles/org.openhab.binding.nuki/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.nuki diff --git a/bundles/org.openhab.binding.nuvo/pom.xml b/bundles/org.openhab.binding.nuvo/pom.xml index 34fcff61b41cb..71d8ba60e7c49 100644 --- a/bundles/org.openhab.binding.nuvo/pom.xml +++ b/bundles/org.openhab.binding.nuvo/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.nuvo diff --git a/bundles/org.openhab.binding.nzwateralerts/pom.xml b/bundles/org.openhab.binding.nzwateralerts/pom.xml index 84a73d157bdc4..5005fad522edd 100644 --- a/bundles/org.openhab.binding.nzwateralerts/pom.xml +++ b/bundles/org.openhab.binding.nzwateralerts/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.nzwateralerts diff --git a/bundles/org.openhab.binding.oceanic/pom.xml b/bundles/org.openhab.binding.oceanic/pom.xml index 1944ad5037ce0..a9adbd1c87b65 100644 --- a/bundles/org.openhab.binding.oceanic/pom.xml +++ b/bundles/org.openhab.binding.oceanic/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.oceanic diff --git a/bundles/org.openhab.binding.ojelectronics/pom.xml b/bundles/org.openhab.binding.ojelectronics/pom.xml index 940d21bb20de7..e6f1b20f62b36 100644 --- a/bundles/org.openhab.binding.ojelectronics/pom.xml +++ b/bundles/org.openhab.binding.ojelectronics/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.ojelectronics diff --git a/bundles/org.openhab.binding.omnikinverter/pom.xml b/bundles/org.openhab.binding.omnikinverter/pom.xml index b9cb580826e85..65a7e462448e7 100644 --- a/bundles/org.openhab.binding.omnikinverter/pom.xml +++ b/bundles/org.openhab.binding.omnikinverter/pom.xml @@ -4,7 +4,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.omnikinverter diff --git a/bundles/org.openhab.binding.omnilink/pom.xml b/bundles/org.openhab.binding.omnilink/pom.xml index 44e5d7a828310..b385494d6af51 100644 --- a/bundles/org.openhab.binding.omnilink/pom.xml +++ b/bundles/org.openhab.binding.omnilink/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.omnilink diff --git a/bundles/org.openhab.binding.onebusaway/pom.xml b/bundles/org.openhab.binding.onebusaway/pom.xml index 9dbea2e0cc432..f408bdbd8676d 100644 --- a/bundles/org.openhab.binding.onebusaway/pom.xml +++ b/bundles/org.openhab.binding.onebusaway/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.onebusaway diff --git a/bundles/org.openhab.binding.onewire/pom.xml b/bundles/org.openhab.binding.onewire/pom.xml index 8c5a05f7bbe75..a1d0981470369 100644 --- a/bundles/org.openhab.binding.onewire/pom.xml +++ b/bundles/org.openhab.binding.onewire/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.onewire diff --git a/bundles/org.openhab.binding.onewiregpio/pom.xml b/bundles/org.openhab.binding.onewiregpio/pom.xml index 44132abafb14f..3bc90ba370ef6 100644 --- a/bundles/org.openhab.binding.onewiregpio/pom.xml +++ b/bundles/org.openhab.binding.onewiregpio/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.onewiregpio diff --git a/bundles/org.openhab.binding.onkyo/pom.xml b/bundles/org.openhab.binding.onkyo/pom.xml index c874e7be54de0..d117fa23f29e0 100644 --- a/bundles/org.openhab.binding.onkyo/pom.xml +++ b/bundles/org.openhab.binding.onkyo/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.onkyo diff --git a/bundles/org.openhab.binding.opengarage/pom.xml b/bundles/org.openhab.binding.opengarage/pom.xml index b3e30bbf12b42..a2bf984e97f6f 100644 --- a/bundles/org.openhab.binding.opengarage/pom.xml +++ b/bundles/org.openhab.binding.opengarage/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.opengarage diff --git a/bundles/org.openhab.binding.opensprinkler/pom.xml b/bundles/org.openhab.binding.opensprinkler/pom.xml index 267b737ee9a29..1e69deba7b165 100644 --- a/bundles/org.openhab.binding.opensprinkler/pom.xml +++ b/bundles/org.openhab.binding.opensprinkler/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.opensprinkler diff --git a/bundles/org.openhab.binding.openthermgateway/pom.xml b/bundles/org.openhab.binding.openthermgateway/pom.xml index 2906490fe60cf..d037d28d8967e 100644 --- a/bundles/org.openhab.binding.openthermgateway/pom.xml +++ b/bundles/org.openhab.binding.openthermgateway/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.openthermgateway diff --git a/bundles/org.openhab.binding.openuv/pom.xml b/bundles/org.openhab.binding.openuv/pom.xml index bcfb8ccee5ba7..f92d26c8441c6 100644 --- a/bundles/org.openhab.binding.openuv/pom.xml +++ b/bundles/org.openhab.binding.openuv/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.openuv diff --git a/bundles/org.openhab.binding.openweathermap/pom.xml b/bundles/org.openhab.binding.openweathermap/pom.xml index e8c665176248b..45f2432fa9171 100644 --- a/bundles/org.openhab.binding.openweathermap/pom.xml +++ b/bundles/org.openhab.binding.openweathermap/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.openweathermap diff --git a/bundles/org.openhab.binding.openwebnet/pom.xml b/bundles/org.openhab.binding.openwebnet/pom.xml index e4c791d1dff79..afb02797fbf18 100644 --- a/bundles/org.openhab.binding.openwebnet/pom.xml +++ b/bundles/org.openhab.binding.openwebnet/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.openwebnet diff --git a/bundles/org.openhab.binding.oppo/pom.xml b/bundles/org.openhab.binding.oppo/pom.xml index 4eac6adcc5f5a..33d43e0d3519f 100644 --- a/bundles/org.openhab.binding.oppo/pom.xml +++ b/bundles/org.openhab.binding.oppo/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.oppo diff --git a/bundles/org.openhab.binding.orbitbhyve/pom.xml b/bundles/org.openhab.binding.orbitbhyve/pom.xml index d87d79dccd15d..276dbed696530 100644 --- a/bundles/org.openhab.binding.orbitbhyve/pom.xml +++ b/bundles/org.openhab.binding.orbitbhyve/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.orbitbhyve diff --git a/bundles/org.openhab.binding.orvibo/pom.xml b/bundles/org.openhab.binding.orvibo/pom.xml index 53050c5bce20c..1ea6a2c5fe56c 100644 --- a/bundles/org.openhab.binding.orvibo/pom.xml +++ b/bundles/org.openhab.binding.orvibo/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.orvibo diff --git a/bundles/org.openhab.binding.paradoxalarm/pom.xml b/bundles/org.openhab.binding.paradoxalarm/pom.xml index 85a965a3957c9..11c4f9396383b 100644 --- a/bundles/org.openhab.binding.paradoxalarm/pom.xml +++ b/bundles/org.openhab.binding.paradoxalarm/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.reactor.bundles org.openhab.addons.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.paradoxalarm diff --git a/bundles/org.openhab.binding.pentair/pom.xml b/bundles/org.openhab.binding.pentair/pom.xml index 81f2de077f094..5f0599015b7c3 100644 --- a/bundles/org.openhab.binding.pentair/pom.xml +++ b/bundles/org.openhab.binding.pentair/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.pentair diff --git a/bundles/org.openhab.binding.phc/pom.xml b/bundles/org.openhab.binding.phc/pom.xml index 9bc95014a419c..4a41194fbfd41 100644 --- a/bundles/org.openhab.binding.phc/pom.xml +++ b/bundles/org.openhab.binding.phc/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.phc diff --git a/bundles/org.openhab.binding.pilight/pom.xml b/bundles/org.openhab.binding.pilight/pom.xml index fc939118e0a8e..1f7ef950d2862 100644 --- a/bundles/org.openhab.binding.pilight/pom.xml +++ b/bundles/org.openhab.binding.pilight/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.pilight diff --git a/bundles/org.openhab.binding.pioneeravr/pom.xml b/bundles/org.openhab.binding.pioneeravr/pom.xml index aafc65fdf1369..2d46ab37723d9 100644 --- a/bundles/org.openhab.binding.pioneeravr/pom.xml +++ b/bundles/org.openhab.binding.pioneeravr/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.pioneeravr diff --git a/bundles/org.openhab.binding.pixometer/pom.xml b/bundles/org.openhab.binding.pixometer/pom.xml index be4ce1380bf56..10babd5283d8a 100644 --- a/bundles/org.openhab.binding.pixometer/pom.xml +++ b/bundles/org.openhab.binding.pixometer/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.pixometer diff --git a/bundles/org.openhab.binding.pjlinkdevice/pom.xml b/bundles/org.openhab.binding.pjlinkdevice/pom.xml index fce66eb53097f..ce41df67c64e5 100644 --- a/bundles/org.openhab.binding.pjlinkdevice/pom.xml +++ b/bundles/org.openhab.binding.pjlinkdevice/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.pjlinkdevice diff --git a/bundles/org.openhab.binding.playstation/pom.xml b/bundles/org.openhab.binding.playstation/pom.xml index 215477f16362b..250199fbec05b 100644 --- a/bundles/org.openhab.binding.playstation/pom.xml +++ b/bundles/org.openhab.binding.playstation/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.playstation diff --git a/bundles/org.openhab.binding.plclogo/pom.xml b/bundles/org.openhab.binding.plclogo/pom.xml index cc935852f03f0..1476da4a729c4 100644 --- a/bundles/org.openhab.binding.plclogo/pom.xml +++ b/bundles/org.openhab.binding.plclogo/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.plclogo diff --git a/bundles/org.openhab.binding.plugwise/pom.xml b/bundles/org.openhab.binding.plugwise/pom.xml index 0137b5efab499..18860046e7565 100644 --- a/bundles/org.openhab.binding.plugwise/pom.xml +++ b/bundles/org.openhab.binding.plugwise/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.plugwise diff --git a/bundles/org.openhab.binding.plugwiseha/pom.xml b/bundles/org.openhab.binding.plugwiseha/pom.xml index bf3e08cb19eee..c6773f584c60a 100644 --- a/bundles/org.openhab.binding.plugwiseha/pom.xml +++ b/bundles/org.openhab.binding.plugwiseha/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.plugwiseha diff --git a/bundles/org.openhab.binding.powermax/pom.xml b/bundles/org.openhab.binding.powermax/pom.xml index 8762b5796afc0..a5e9dc8a5c74a 100644 --- a/bundles/org.openhab.binding.powermax/pom.xml +++ b/bundles/org.openhab.binding.powermax/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.powermax diff --git a/bundles/org.openhab.binding.proteusecometer/pom.xml b/bundles/org.openhab.binding.proteusecometer/pom.xml index d95c5358dff3e..1b54bbae5d70a 100644 --- a/bundles/org.openhab.binding.proteusecometer/pom.xml +++ b/bundles/org.openhab.binding.proteusecometer/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.proteusecometer diff --git a/bundles/org.openhab.binding.prowl/pom.xml b/bundles/org.openhab.binding.prowl/pom.xml index 2778fa9fe20a0..21ccdc682649e 100644 --- a/bundles/org.openhab.binding.prowl/pom.xml +++ b/bundles/org.openhab.binding.prowl/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.prowl diff --git a/bundles/org.openhab.binding.publictransportswitzerland/pom.xml b/bundles/org.openhab.binding.publictransportswitzerland/pom.xml index 030da1e081482..fc3fecb6132ed 100644 --- a/bundles/org.openhab.binding.publictransportswitzerland/pom.xml +++ b/bundles/org.openhab.binding.publictransportswitzerland/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.publictransportswitzerland diff --git a/bundles/org.openhab.binding.pulseaudio/pom.xml b/bundles/org.openhab.binding.pulseaudio/pom.xml index ac2a600752544..e05688a31c92f 100644 --- a/bundles/org.openhab.binding.pulseaudio/pom.xml +++ b/bundles/org.openhab.binding.pulseaudio/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.pulseaudio diff --git a/bundles/org.openhab.binding.pushbullet/pom.xml b/bundles/org.openhab.binding.pushbullet/pom.xml index bc3845bafcb0e..5696d0da69f48 100644 --- a/bundles/org.openhab.binding.pushbullet/pom.xml +++ b/bundles/org.openhab.binding.pushbullet/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.pushbullet diff --git a/bundles/org.openhab.binding.pushover/pom.xml b/bundles/org.openhab.binding.pushover/pom.xml index dfd91772b92c9..d0ba956527fbd 100644 --- a/bundles/org.openhab.binding.pushover/pom.xml +++ b/bundles/org.openhab.binding.pushover/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.pushover diff --git a/bundles/org.openhab.binding.pushsafer/pom.xml b/bundles/org.openhab.binding.pushsafer/pom.xml index b7213e35efdde..217a198906a7b 100644 --- a/bundles/org.openhab.binding.pushsafer/pom.xml +++ b/bundles/org.openhab.binding.pushsafer/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.pushsafer diff --git a/bundles/org.openhab.binding.qbus/pom.xml b/bundles/org.openhab.binding.qbus/pom.xml index ea3f8d9d37b54..7ca9f4a69eb3e 100644 --- a/bundles/org.openhab.binding.qbus/pom.xml +++ b/bundles/org.openhab.binding.qbus/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.qbus diff --git a/bundles/org.openhab.binding.radiothermostat/pom.xml b/bundles/org.openhab.binding.radiothermostat/pom.xml index 0fe03bae4fc4d..234f5c80e937d 100644 --- a/bundles/org.openhab.binding.radiothermostat/pom.xml +++ b/bundles/org.openhab.binding.radiothermostat/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.radiothermostat diff --git a/bundles/org.openhab.binding.regoheatpump/pom.xml b/bundles/org.openhab.binding.regoheatpump/pom.xml index a5b93bf6b6182..f8d6aff0aa343 100644 --- a/bundles/org.openhab.binding.regoheatpump/pom.xml +++ b/bundles/org.openhab.binding.regoheatpump/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.regoheatpump diff --git a/bundles/org.openhab.binding.remoteopenhab/pom.xml b/bundles/org.openhab.binding.remoteopenhab/pom.xml index 8df0509a054ba..b95fc93af2253 100644 --- a/bundles/org.openhab.binding.remoteopenhab/pom.xml +++ b/bundles/org.openhab.binding.remoteopenhab/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.remoteopenhab diff --git a/bundles/org.openhab.binding.renault/pom.xml b/bundles/org.openhab.binding.renault/pom.xml index 24291117b5494..de02ebc3e621c 100644 --- a/bundles/org.openhab.binding.renault/pom.xml +++ b/bundles/org.openhab.binding.renault/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.renault diff --git a/bundles/org.openhab.binding.resol/pom.xml b/bundles/org.openhab.binding.resol/pom.xml index 7014c287f4a11..8652f9d122b4c 100644 --- a/bundles/org.openhab.binding.resol/pom.xml +++ b/bundles/org.openhab.binding.resol/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.resol diff --git a/bundles/org.openhab.binding.revogi/pom.xml b/bundles/org.openhab.binding.revogi/pom.xml index b04e14b660f61..ebf80e984c4ad 100644 --- a/bundles/org.openhab.binding.revogi/pom.xml +++ b/bundles/org.openhab.binding.revogi/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.revogi diff --git a/bundles/org.openhab.binding.rfxcom/pom.xml b/bundles/org.openhab.binding.rfxcom/pom.xml index 49b9cf9dee282..7fa3c5fb92318 100644 --- a/bundles/org.openhab.binding.rfxcom/pom.xml +++ b/bundles/org.openhab.binding.rfxcom/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.rfxcom diff --git a/bundles/org.openhab.binding.rme/pom.xml b/bundles/org.openhab.binding.rme/pom.xml index a6f54dd2e7478..a03b44c8e94af 100644 --- a/bundles/org.openhab.binding.rme/pom.xml +++ b/bundles/org.openhab.binding.rme/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.rme diff --git a/bundles/org.openhab.binding.robonect/pom.xml b/bundles/org.openhab.binding.robonect/pom.xml index d150b06825b45..2c2993fa4bbfe 100644 --- a/bundles/org.openhab.binding.robonect/pom.xml +++ b/bundles/org.openhab.binding.robonect/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.robonect diff --git a/bundles/org.openhab.binding.roku/pom.xml b/bundles/org.openhab.binding.roku/pom.xml index 564a3c1d9153f..bf96ee5c2f3ce 100644 --- a/bundles/org.openhab.binding.roku/pom.xml +++ b/bundles/org.openhab.binding.roku/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.roku diff --git a/bundles/org.openhab.binding.rotel/pom.xml b/bundles/org.openhab.binding.rotel/pom.xml index ad5481b6547bd..446c9662f084b 100644 --- a/bundles/org.openhab.binding.rotel/pom.xml +++ b/bundles/org.openhab.binding.rotel/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.rotel diff --git a/bundles/org.openhab.binding.russound/pom.xml b/bundles/org.openhab.binding.russound/pom.xml index 7fb8299dfe33a..b040f6b9f6e89 100644 --- a/bundles/org.openhab.binding.russound/pom.xml +++ b/bundles/org.openhab.binding.russound/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.russound diff --git a/bundles/org.openhab.binding.sagercaster/pom.xml b/bundles/org.openhab.binding.sagercaster/pom.xml index 7cf91695400b0..c00edb2d4b49b 100644 --- a/bundles/org.openhab.binding.sagercaster/pom.xml +++ b/bundles/org.openhab.binding.sagercaster/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.sagercaster diff --git a/bundles/org.openhab.binding.samsungtv/pom.xml b/bundles/org.openhab.binding.samsungtv/pom.xml index 15a92d875a747..d8668eb4793ae 100644 --- a/bundles/org.openhab.binding.samsungtv/pom.xml +++ b/bundles/org.openhab.binding.samsungtv/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.samsungtv diff --git a/bundles/org.openhab.binding.satel/pom.xml b/bundles/org.openhab.binding.satel/pom.xml index d32fe5b63dffb..e44c0f7cd10a2 100644 --- a/bundles/org.openhab.binding.satel/pom.xml +++ b/bundles/org.openhab.binding.satel/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.satel diff --git a/bundles/org.openhab.binding.semsportal/pom.xml b/bundles/org.openhab.binding.semsportal/pom.xml index bf33de9f9b227..a7324540ab08d 100644 --- a/bundles/org.openhab.binding.semsportal/pom.xml +++ b/bundles/org.openhab.binding.semsportal/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.semsportal diff --git a/bundles/org.openhab.binding.senechome/pom.xml b/bundles/org.openhab.binding.senechome/pom.xml index 0108aa7036298..63c1c1283d18d 100644 --- a/bundles/org.openhab.binding.senechome/pom.xml +++ b/bundles/org.openhab.binding.senechome/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.senechome diff --git a/bundles/org.openhab.binding.seneye/pom.xml b/bundles/org.openhab.binding.seneye/pom.xml index 887fa3db62903..6da2b45916cde 100644 --- a/bundles/org.openhab.binding.seneye/pom.xml +++ b/bundles/org.openhab.binding.seneye/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.seneye diff --git a/bundles/org.openhab.binding.sensebox/pom.xml b/bundles/org.openhab.binding.sensebox/pom.xml index 7760dd62b9c4b..b9210a56c0aec 100644 --- a/bundles/org.openhab.binding.sensebox/pom.xml +++ b/bundles/org.openhab.binding.sensebox/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.sensebox diff --git a/bundles/org.openhab.binding.sensibo/pom.xml b/bundles/org.openhab.binding.sensibo/pom.xml index cb7136e8c71c7..3837fd0828a1d 100644 --- a/bundles/org.openhab.binding.sensibo/pom.xml +++ b/bundles/org.openhab.binding.sensibo/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.sensibo diff --git a/bundles/org.openhab.binding.serial/pom.xml b/bundles/org.openhab.binding.serial/pom.xml index fde1401ee3ca5..058b040a51cfb 100644 --- a/bundles/org.openhab.binding.serial/pom.xml +++ b/bundles/org.openhab.binding.serial/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.serial diff --git a/bundles/org.openhab.binding.serialbutton/pom.xml b/bundles/org.openhab.binding.serialbutton/pom.xml index 0cc1c971552af..bcbf148520d17 100644 --- a/bundles/org.openhab.binding.serialbutton/pom.xml +++ b/bundles/org.openhab.binding.serialbutton/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.serialbutton diff --git a/bundles/org.openhab.binding.shelly/pom.xml b/bundles/org.openhab.binding.shelly/pom.xml index 09543e0dd794f..3fa70f8c93ae4 100644 --- a/bundles/org.openhab.binding.shelly/pom.xml +++ b/bundles/org.openhab.binding.shelly/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 diff --git a/bundles/org.openhab.binding.siemensrds/pom.xml b/bundles/org.openhab.binding.siemensrds/pom.xml index f60e561e0737e..64f2edf5b170e 100644 --- a/bundles/org.openhab.binding.siemensrds/pom.xml +++ b/bundles/org.openhab.binding.siemensrds/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.siemensrds diff --git a/bundles/org.openhab.binding.silvercrestwifisocket/pom.xml b/bundles/org.openhab.binding.silvercrestwifisocket/pom.xml index 4f2e4fd6e0500..c2c224cf90440 100644 --- a/bundles/org.openhab.binding.silvercrestwifisocket/pom.xml +++ b/bundles/org.openhab.binding.silvercrestwifisocket/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.silvercrestwifisocket diff --git a/bundles/org.openhab.binding.sinope/pom.xml b/bundles/org.openhab.binding.sinope/pom.xml index ff60a4ac7ea23..9169eab19fb21 100644 --- a/bundles/org.openhab.binding.sinope/pom.xml +++ b/bundles/org.openhab.binding.sinope/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.sinope diff --git a/bundles/org.openhab.binding.sleepiq/pom.xml b/bundles/org.openhab.binding.sleepiq/pom.xml index c0030746d8698..b0bfaa8f5c8df 100644 --- a/bundles/org.openhab.binding.sleepiq/pom.xml +++ b/bundles/org.openhab.binding.sleepiq/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.sleepiq diff --git a/bundles/org.openhab.binding.smaenergymeter/pom.xml b/bundles/org.openhab.binding.smaenergymeter/pom.xml index d507322b6f943..b09496c544dd1 100644 --- a/bundles/org.openhab.binding.smaenergymeter/pom.xml +++ b/bundles/org.openhab.binding.smaenergymeter/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.smaenergymeter diff --git a/bundles/org.openhab.binding.smartmeter/pom.xml b/bundles/org.openhab.binding.smartmeter/pom.xml index dd20e74def2cc..af7149b521ed7 100644 --- a/bundles/org.openhab.binding.smartmeter/pom.xml +++ b/bundles/org.openhab.binding.smartmeter/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.smartmeter diff --git a/bundles/org.openhab.binding.smartthings/pom.xml b/bundles/org.openhab.binding.smartthings/pom.xml index db21ae57be36a..1c1cce7273437 100644 --- a/bundles/org.openhab.binding.smartthings/pom.xml +++ b/bundles/org.openhab.binding.smartthings/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.smartthings diff --git a/bundles/org.openhab.binding.smhi/pom.xml b/bundles/org.openhab.binding.smhi/pom.xml index 69a65e1ba49e5..41bb9bf9cc9b0 100644 --- a/bundles/org.openhab.binding.smhi/pom.xml +++ b/bundles/org.openhab.binding.smhi/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.smhi diff --git a/bundles/org.openhab.binding.sncf/pom.xml b/bundles/org.openhab.binding.sncf/pom.xml index 1d136da2e0201..3a90006d2cf94 100644 --- a/bundles/org.openhab.binding.sncf/pom.xml +++ b/bundles/org.openhab.binding.sncf/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.sncf diff --git a/bundles/org.openhab.binding.snmp/pom.xml b/bundles/org.openhab.binding.snmp/pom.xml index 04fd056b27431..24d5bbfeb2115 100644 --- a/bundles/org.openhab.binding.snmp/pom.xml +++ b/bundles/org.openhab.binding.snmp/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.snmp diff --git a/bundles/org.openhab.binding.solaredge/pom.xml b/bundles/org.openhab.binding.solaredge/pom.xml index c19ede6f31770..be28cc51f5c66 100644 --- a/bundles/org.openhab.binding.solaredge/pom.xml +++ b/bundles/org.openhab.binding.solaredge/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.solaredge diff --git a/bundles/org.openhab.binding.solarlog/pom.xml b/bundles/org.openhab.binding.solarlog/pom.xml index 02787c878acd5..94b1397b1e877 100644 --- a/bundles/org.openhab.binding.solarlog/pom.xml +++ b/bundles/org.openhab.binding.solarlog/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.solarlog diff --git a/bundles/org.openhab.binding.solarwatt/pom.xml b/bundles/org.openhab.binding.solarwatt/pom.xml index acba2aa9d2272..abf2067df08c3 100644 --- a/bundles/org.openhab.binding.solarwatt/pom.xml +++ b/bundles/org.openhab.binding.solarwatt/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.solarwatt diff --git a/bundles/org.openhab.binding.somfymylink/pom.xml b/bundles/org.openhab.binding.somfymylink/pom.xml index acb6bc5e4baca..226ed3904ccc4 100644 --- a/bundles/org.openhab.binding.somfymylink/pom.xml +++ b/bundles/org.openhab.binding.somfymylink/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.somfymylink diff --git a/bundles/org.openhab.binding.somfytahoma/pom.xml b/bundles/org.openhab.binding.somfytahoma/pom.xml index c465f88655aa9..8ac42d895698c 100644 --- a/bundles/org.openhab.binding.somfytahoma/pom.xml +++ b/bundles/org.openhab.binding.somfytahoma/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.somfytahoma diff --git a/bundles/org.openhab.binding.sonnen/pom.xml b/bundles/org.openhab.binding.sonnen/pom.xml index d64d03dee6170..eb1adbccfc59f 100644 --- a/bundles/org.openhab.binding.sonnen/pom.xml +++ b/bundles/org.openhab.binding.sonnen/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.sonnen diff --git a/bundles/org.openhab.binding.sonos/pom.xml b/bundles/org.openhab.binding.sonos/pom.xml index cfdc2f09c4c09..8e2d3514db06c 100644 --- a/bundles/org.openhab.binding.sonos/pom.xml +++ b/bundles/org.openhab.binding.sonos/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.sonos diff --git a/bundles/org.openhab.binding.sonyaudio/pom.xml b/bundles/org.openhab.binding.sonyaudio/pom.xml index 8c9bee32b5fb2..237dcad942466 100644 --- a/bundles/org.openhab.binding.sonyaudio/pom.xml +++ b/bundles/org.openhab.binding.sonyaudio/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.sonyaudio diff --git a/bundles/org.openhab.binding.sonyprojector/pom.xml b/bundles/org.openhab.binding.sonyprojector/pom.xml index 79947e93693f2..b525df86c5318 100644 --- a/bundles/org.openhab.binding.sonyprojector/pom.xml +++ b/bundles/org.openhab.binding.sonyprojector/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.sonyprojector diff --git a/bundles/org.openhab.binding.souliss/pom.xml b/bundles/org.openhab.binding.souliss/pom.xml index 5b88804f3b58f..6f48ebc542c63 100644 --- a/bundles/org.openhab.binding.souliss/pom.xml +++ b/bundles/org.openhab.binding.souliss/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.souliss diff --git a/bundles/org.openhab.binding.spotify/pom.xml b/bundles/org.openhab.binding.spotify/pom.xml index 0cecb972944f9..2ab94534b375f 100644 --- a/bundles/org.openhab.binding.spotify/pom.xml +++ b/bundles/org.openhab.binding.spotify/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.spotify diff --git a/bundles/org.openhab.binding.squeezebox/pom.xml b/bundles/org.openhab.binding.squeezebox/pom.xml index 5f9465d3446dd..083ddb42b46fd 100644 --- a/bundles/org.openhab.binding.squeezebox/pom.xml +++ b/bundles/org.openhab.binding.squeezebox/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.squeezebox diff --git a/bundles/org.openhab.binding.surepetcare/pom.xml b/bundles/org.openhab.binding.surepetcare/pom.xml index 508ab2e5c0ee4..9d6d15cbd1673 100644 --- a/bundles/org.openhab.binding.surepetcare/pom.xml +++ b/bundles/org.openhab.binding.surepetcare/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.surepetcare diff --git a/bundles/org.openhab.binding.synopanalyzer/pom.xml b/bundles/org.openhab.binding.synopanalyzer/pom.xml index e16402442d622..615479ead74ef 100644 --- a/bundles/org.openhab.binding.synopanalyzer/pom.xml +++ b/bundles/org.openhab.binding.synopanalyzer/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.synopanalyzer diff --git a/bundles/org.openhab.binding.systeminfo/pom.xml b/bundles/org.openhab.binding.systeminfo/pom.xml index 37f41cd17f80e..6d3049ab24398 100644 --- a/bundles/org.openhab.binding.systeminfo/pom.xml +++ b/bundles/org.openhab.binding.systeminfo/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.systeminfo diff --git a/bundles/org.openhab.binding.tacmi/pom.xml b/bundles/org.openhab.binding.tacmi/pom.xml index 1372514b3a9ea..bff2041b7f84f 100644 --- a/bundles/org.openhab.binding.tacmi/pom.xml +++ b/bundles/org.openhab.binding.tacmi/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.tacmi diff --git a/bundles/org.openhab.binding.tado/pom.xml b/bundles/org.openhab.binding.tado/pom.xml index 1635fe18eb0be..dc3365b1432fc 100644 --- a/bundles/org.openhab.binding.tado/pom.xml +++ b/bundles/org.openhab.binding.tado/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.tado diff --git a/bundles/org.openhab.binding.tankerkoenig/pom.xml b/bundles/org.openhab.binding.tankerkoenig/pom.xml index 588d516ab798c..b5bd4e26691e6 100644 --- a/bundles/org.openhab.binding.tankerkoenig/pom.xml +++ b/bundles/org.openhab.binding.tankerkoenig/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.tankerkoenig diff --git a/bundles/org.openhab.binding.tapocontrol/pom.xml b/bundles/org.openhab.binding.tapocontrol/pom.xml index 46c4a72209061..d6c999857fa64 100644 --- a/bundles/org.openhab.binding.tapocontrol/pom.xml +++ b/bundles/org.openhab.binding.tapocontrol/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.tapocontrol diff --git a/bundles/org.openhab.binding.telegram/pom.xml b/bundles/org.openhab.binding.telegram/pom.xml index 24c82b9a07248..3f2e7d5c0628d 100644 --- a/bundles/org.openhab.binding.telegram/pom.xml +++ b/bundles/org.openhab.binding.telegram/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.telegram diff --git a/bundles/org.openhab.binding.teleinfo/pom.xml b/bundles/org.openhab.binding.teleinfo/pom.xml index d9678fc247928..f643e23fc2757 100644 --- a/bundles/org.openhab.binding.teleinfo/pom.xml +++ b/bundles/org.openhab.binding.teleinfo/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.teleinfo diff --git a/bundles/org.openhab.binding.tellstick/pom.xml b/bundles/org.openhab.binding.tellstick/pom.xml index d6acc30ca91f5..dc6ebadf9f130 100644 --- a/bundles/org.openhab.binding.tellstick/pom.xml +++ b/bundles/org.openhab.binding.tellstick/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.tellstick diff --git a/bundles/org.openhab.binding.tesla/pom.xml b/bundles/org.openhab.binding.tesla/pom.xml index be85ba23891c9..c03b54b48c120 100644 --- a/bundles/org.openhab.binding.tesla/pom.xml +++ b/bundles/org.openhab.binding.tesla/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.tesla diff --git a/bundles/org.openhab.binding.tibber/pom.xml b/bundles/org.openhab.binding.tibber/pom.xml index f947596b317e8..16d79c86fd77e 100644 --- a/bundles/org.openhab.binding.tibber/pom.xml +++ b/bundles/org.openhab.binding.tibber/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.tibber diff --git a/bundles/org.openhab.binding.tivo/pom.xml b/bundles/org.openhab.binding.tivo/pom.xml index a599edd1ea299..ecba2cf296099 100644 --- a/bundles/org.openhab.binding.tivo/pom.xml +++ b/bundles/org.openhab.binding.tivo/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.tivo diff --git a/bundles/org.openhab.binding.touchwand/pom.xml b/bundles/org.openhab.binding.touchwand/pom.xml index e9d6a0e8961e4..31dcfacd36a20 100644 --- a/bundles/org.openhab.binding.touchwand/pom.xml +++ b/bundles/org.openhab.binding.touchwand/pom.xml @@ -4,7 +4,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.touchwand diff --git a/bundles/org.openhab.binding.tplinksmarthome/pom.xml b/bundles/org.openhab.binding.tplinksmarthome/pom.xml index d7496ef99a92b..976db4ae40f9c 100644 --- a/bundles/org.openhab.binding.tplinksmarthome/pom.xml +++ b/bundles/org.openhab.binding.tplinksmarthome/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.tplinksmarthome diff --git a/bundles/org.openhab.binding.tr064/pom.xml b/bundles/org.openhab.binding.tr064/pom.xml index 261f09f6a088b..c6bd8e37513bb 100644 --- a/bundles/org.openhab.binding.tr064/pom.xml +++ b/bundles/org.openhab.binding.tr064/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.tr064 diff --git a/bundles/org.openhab.binding.tradfri/pom.xml b/bundles/org.openhab.binding.tradfri/pom.xml index d008983b37dfd..b64f2aa6d3603 100644 --- a/bundles/org.openhab.binding.tradfri/pom.xml +++ b/bundles/org.openhab.binding.tradfri/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.tradfri diff --git a/bundles/org.openhab.binding.twitter/pom.xml b/bundles/org.openhab.binding.twitter/pom.xml index 1ca60fc68606e..7dd58c0eca27b 100644 --- a/bundles/org.openhab.binding.twitter/pom.xml +++ b/bundles/org.openhab.binding.twitter/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.twitter diff --git a/bundles/org.openhab.binding.unifi/pom.xml b/bundles/org.openhab.binding.unifi/pom.xml index 205ecd2f68371..88f3dc3f60ec7 100644 --- a/bundles/org.openhab.binding.unifi/pom.xml +++ b/bundles/org.openhab.binding.unifi/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.unifi diff --git a/bundles/org.openhab.binding.unifiedremote/pom.xml b/bundles/org.openhab.binding.unifiedremote/pom.xml index 678f21abe162d..263e674232ed9 100644 --- a/bundles/org.openhab.binding.unifiedremote/pom.xml +++ b/bundles/org.openhab.binding.unifiedremote/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.unifiedremote diff --git a/bundles/org.openhab.binding.upb/pom.xml b/bundles/org.openhab.binding.upb/pom.xml index ad1e6ce690f53..d964bac54fffe 100644 --- a/bundles/org.openhab.binding.upb/pom.xml +++ b/bundles/org.openhab.binding.upb/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.upb diff --git a/bundles/org.openhab.binding.upnpcontrol/pom.xml b/bundles/org.openhab.binding.upnpcontrol/pom.xml index 218009ece0108..e6a80ec82d667 100644 --- a/bundles/org.openhab.binding.upnpcontrol/pom.xml +++ b/bundles/org.openhab.binding.upnpcontrol/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.upnpcontrol diff --git a/bundles/org.openhab.binding.urtsi/pom.xml b/bundles/org.openhab.binding.urtsi/pom.xml index cbfdeff25c082..5a92c6e44bde2 100644 --- a/bundles/org.openhab.binding.urtsi/pom.xml +++ b/bundles/org.openhab.binding.urtsi/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.urtsi diff --git a/bundles/org.openhab.binding.valloxmv/pom.xml b/bundles/org.openhab.binding.valloxmv/pom.xml index 6eaa48b30d0c7..0ffdd1b1fc0ef 100644 --- a/bundles/org.openhab.binding.valloxmv/pom.xml +++ b/bundles/org.openhab.binding.valloxmv/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.valloxmv diff --git a/bundles/org.openhab.binding.vdr/pom.xml b/bundles/org.openhab.binding.vdr/pom.xml index 6af0e79948dfc..9d992fb52e413 100644 --- a/bundles/org.openhab.binding.vdr/pom.xml +++ b/bundles/org.openhab.binding.vdr/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.vdr diff --git a/bundles/org.openhab.binding.vektiva/pom.xml b/bundles/org.openhab.binding.vektiva/pom.xml index c454ea0ae3764..8b2ce7d670203 100644 --- a/bundles/org.openhab.binding.vektiva/pom.xml +++ b/bundles/org.openhab.binding.vektiva/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.reactor.bundles org.openhab.addons.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.vektiva diff --git a/bundles/org.openhab.binding.velbus/pom.xml b/bundles/org.openhab.binding.velbus/pom.xml index 2890373232d6b..0eabe0c770459 100644 --- a/bundles/org.openhab.binding.velbus/pom.xml +++ b/bundles/org.openhab.binding.velbus/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.velbus diff --git a/bundles/org.openhab.binding.velux/pom.xml b/bundles/org.openhab.binding.velux/pom.xml index c143741cc55e4..f75448d82f461 100644 --- a/bundles/org.openhab.binding.velux/pom.xml +++ b/bundles/org.openhab.binding.velux/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.velux diff --git a/bundles/org.openhab.binding.venstarthermostat/pom.xml b/bundles/org.openhab.binding.venstarthermostat/pom.xml index 6b37c36b9bbc3..5f3591dae8181 100644 --- a/bundles/org.openhab.binding.venstarthermostat/pom.xml +++ b/bundles/org.openhab.binding.venstarthermostat/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.venstarthermostat diff --git a/bundles/org.openhab.binding.ventaair/pom.xml b/bundles/org.openhab.binding.ventaair/pom.xml index 43c4efcab7e97..7e8e231383bc9 100644 --- a/bundles/org.openhab.binding.ventaair/pom.xml +++ b/bundles/org.openhab.binding.ventaair/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.ventaair diff --git a/bundles/org.openhab.binding.verisure/pom.xml b/bundles/org.openhab.binding.verisure/pom.xml index 76cb3137dc866..7399f4ce9c8f5 100644 --- a/bundles/org.openhab.binding.verisure/pom.xml +++ b/bundles/org.openhab.binding.verisure/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.verisure diff --git a/bundles/org.openhab.binding.vesync/pom.xml b/bundles/org.openhab.binding.vesync/pom.xml index 8da54fb4e80d0..2091aa34fd151 100644 --- a/bundles/org.openhab.binding.vesync/pom.xml +++ b/bundles/org.openhab.binding.vesync/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.vesync diff --git a/bundles/org.openhab.binding.vigicrues/pom.xml b/bundles/org.openhab.binding.vigicrues/pom.xml index cfdac09e1a767..ef747161cc75c 100644 --- a/bundles/org.openhab.binding.vigicrues/pom.xml +++ b/bundles/org.openhab.binding.vigicrues/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.vigicrues diff --git a/bundles/org.openhab.binding.vitotronic/pom.xml b/bundles/org.openhab.binding.vitotronic/pom.xml index 9b25d8608067f..acdaf3af4342b 100644 --- a/bundles/org.openhab.binding.vitotronic/pom.xml +++ b/bundles/org.openhab.binding.vitotronic/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.vitotronic diff --git a/bundles/org.openhab.binding.volvooncall/pom.xml b/bundles/org.openhab.binding.volvooncall/pom.xml index cb411771dca63..b237eaf358237 100644 --- a/bundles/org.openhab.binding.volvooncall/pom.xml +++ b/bundles/org.openhab.binding.volvooncall/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.volvooncall diff --git a/bundles/org.openhab.binding.warmup/pom.xml b/bundles/org.openhab.binding.warmup/pom.xml index fe1dcb4191bf9..9d180586503ab 100644 --- a/bundles/org.openhab.binding.warmup/pom.xml +++ b/bundles/org.openhab.binding.warmup/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.warmup diff --git a/bundles/org.openhab.binding.weathercompany/pom.xml b/bundles/org.openhab.binding.weathercompany/pom.xml index cf68740f96484..6406b7002442a 100644 --- a/bundles/org.openhab.binding.weathercompany/pom.xml +++ b/bundles/org.openhab.binding.weathercompany/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.weathercompany diff --git a/bundles/org.openhab.binding.weatherunderground/pom.xml b/bundles/org.openhab.binding.weatherunderground/pom.xml index 8b68dbf6c57a6..50f95069db4c9 100644 --- a/bundles/org.openhab.binding.weatherunderground/pom.xml +++ b/bundles/org.openhab.binding.weatherunderground/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.weatherunderground diff --git a/bundles/org.openhab.binding.webthing/pom.xml b/bundles/org.openhab.binding.webthing/pom.xml index cc7dbc7f9db4a..b1744464a3aba 100644 --- a/bundles/org.openhab.binding.webthing/pom.xml +++ b/bundles/org.openhab.binding.webthing/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.webthing diff --git a/bundles/org.openhab.binding.wemo/pom.xml b/bundles/org.openhab.binding.wemo/pom.xml index 65ae565ff3e01..b72307474f14a 100644 --- a/bundles/org.openhab.binding.wemo/pom.xml +++ b/bundles/org.openhab.binding.wemo/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.wemo diff --git a/bundles/org.openhab.binding.wifiled/pom.xml b/bundles/org.openhab.binding.wifiled/pom.xml index 053861925b11e..625522ab8d21e 100644 --- a/bundles/org.openhab.binding.wifiled/pom.xml +++ b/bundles/org.openhab.binding.wifiled/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.wifiled diff --git a/bundles/org.openhab.binding.windcentrale/pom.xml b/bundles/org.openhab.binding.windcentrale/pom.xml index 751276da03feb..44c6b8601e399 100644 --- a/bundles/org.openhab.binding.windcentrale/pom.xml +++ b/bundles/org.openhab.binding.windcentrale/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.windcentrale diff --git a/bundles/org.openhab.binding.wlanthermo/pom.xml b/bundles/org.openhab.binding.wlanthermo/pom.xml index 60eb25ee6fe6d..d99e2c651e87c 100644 --- a/bundles/org.openhab.binding.wlanthermo/pom.xml +++ b/bundles/org.openhab.binding.wlanthermo/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.wlanthermo diff --git a/bundles/org.openhab.binding.wled/pom.xml b/bundles/org.openhab.binding.wled/pom.xml index 3fdd1c7e9c531..afbbb29df5986 100644 --- a/bundles/org.openhab.binding.wled/pom.xml +++ b/bundles/org.openhab.binding.wled/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.wled diff --git a/bundles/org.openhab.binding.wolfsmartset/pom.xml b/bundles/org.openhab.binding.wolfsmartset/pom.xml index 528961007fe68..b5ee42a0f7434 100644 --- a/bundles/org.openhab.binding.wolfsmartset/pom.xml +++ b/bundles/org.openhab.binding.wolfsmartset/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.wolfsmartset diff --git a/bundles/org.openhab.binding.wundergroundupdatereceiver/pom.xml b/bundles/org.openhab.binding.wundergroundupdatereceiver/pom.xml index 6f51672a0fe6b..ff7801b43352a 100644 --- a/bundles/org.openhab.binding.wundergroundupdatereceiver/pom.xml +++ b/bundles/org.openhab.binding.wundergroundupdatereceiver/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.wundergroundupdatereceiver diff --git a/bundles/org.openhab.binding.xmltv/pom.xml b/bundles/org.openhab.binding.xmltv/pom.xml index 85b1f8f4efb05..192590c99e47a 100644 --- a/bundles/org.openhab.binding.xmltv/pom.xml +++ b/bundles/org.openhab.binding.xmltv/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.xmltv diff --git a/bundles/org.openhab.binding.xmppclient/pom.xml b/bundles/org.openhab.binding.xmppclient/pom.xml index 5fd9667b0d59b..03b5ea2405b3e 100644 --- a/bundles/org.openhab.binding.xmppclient/pom.xml +++ b/bundles/org.openhab.binding.xmppclient/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.xmppclient diff --git a/bundles/org.openhab.binding.yamahamusiccast/pom.xml b/bundles/org.openhab.binding.yamahamusiccast/pom.xml index 924c030798172..db525860b29d4 100644 --- a/bundles/org.openhab.binding.yamahamusiccast/pom.xml +++ b/bundles/org.openhab.binding.yamahamusiccast/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.yamahamusiccast diff --git a/bundles/org.openhab.binding.yamahareceiver/pom.xml b/bundles/org.openhab.binding.yamahareceiver/pom.xml index 15569792d79a1..4a27d7c8656ef 100644 --- a/bundles/org.openhab.binding.yamahareceiver/pom.xml +++ b/bundles/org.openhab.binding.yamahareceiver/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.yamahareceiver diff --git a/bundles/org.openhab.binding.yeelight/pom.xml b/bundles/org.openhab.binding.yeelight/pom.xml index ef734f03767d4..9f5bb2da13c82 100644 --- a/bundles/org.openhab.binding.yeelight/pom.xml +++ b/bundles/org.openhab.binding.yeelight/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.yeelight diff --git a/bundles/org.openhab.binding.yioremote/pom.xml b/bundles/org.openhab.binding.yioremote/pom.xml index 31f9f7bcbda71..4ab43f18fe3cf 100644 --- a/bundles/org.openhab.binding.yioremote/pom.xml +++ b/bundles/org.openhab.binding.yioremote/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.yioremote diff --git a/bundles/org.openhab.binding.zoneminder/pom.xml b/bundles/org.openhab.binding.zoneminder/pom.xml index 2ff0f1ccd8e2d..16b49095aa02f 100644 --- a/bundles/org.openhab.binding.zoneminder/pom.xml +++ b/bundles/org.openhab.binding.zoneminder/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.zoneminder diff --git a/bundles/org.openhab.binding.zway/pom.xml b/bundles/org.openhab.binding.zway/pom.xml index 02e6595658152..2064773c97c07 100644 --- a/bundles/org.openhab.binding.zway/pom.xml +++ b/bundles/org.openhab.binding.zway/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.zway diff --git a/bundles/org.openhab.io.homekit/pom.xml b/bundles/org.openhab.io.homekit/pom.xml index 8e6fc2db6632e..0008cc70259a0 100644 --- a/bundles/org.openhab.io.homekit/pom.xml +++ b/bundles/org.openhab.io.homekit/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.io.homekit diff --git a/bundles/org.openhab.io.hueemulation/pom.xml b/bundles/org.openhab.io.hueemulation/pom.xml index 51bcbad5b2625..d388594514c81 100644 --- a/bundles/org.openhab.io.hueemulation/pom.xml +++ b/bundles/org.openhab.io.hueemulation/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.io.hueemulation diff --git a/bundles/org.openhab.io.imperihome/pom.xml b/bundles/org.openhab.io.imperihome/pom.xml index 918be11a81c24..276e9eff2dc31 100644 --- a/bundles/org.openhab.io.imperihome/pom.xml +++ b/bundles/org.openhab.io.imperihome/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.io.imperihome diff --git a/bundles/org.openhab.io.metrics/pom.xml b/bundles/org.openhab.io.metrics/pom.xml index 2f762459274e3..389abe39e12aa 100644 --- a/bundles/org.openhab.io.metrics/pom.xml +++ b/bundles/org.openhab.io.metrics/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.io.metrics diff --git a/bundles/org.openhab.io.neeo/pom.xml b/bundles/org.openhab.io.neeo/pom.xml index 18ce4429278f8..6cab99acae2e5 100644 --- a/bundles/org.openhab.io.neeo/pom.xml +++ b/bundles/org.openhab.io.neeo/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.io.neeo diff --git a/bundles/org.openhab.io.openhabcloud/pom.xml b/bundles/org.openhab.io.openhabcloud/pom.xml index 3c46d8394a5e2..e341409a465e4 100644 --- a/bundles/org.openhab.io.openhabcloud/pom.xml +++ b/bundles/org.openhab.io.openhabcloud/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.io.openhabcloud diff --git a/bundles/org.openhab.persistence.dynamodb/pom.xml b/bundles/org.openhab.persistence.dynamodb/pom.xml index 0815a87b74b1c..f4f12c70cd67f 100644 --- a/bundles/org.openhab.persistence.dynamodb/pom.xml +++ b/bundles/org.openhab.persistence.dynamodb/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.persistence.dynamodb diff --git a/bundles/org.openhab.persistence.influxdb/pom.xml b/bundles/org.openhab.persistence.influxdb/pom.xml index b7d42170e8c6b..3b358ebafdc57 100644 --- a/bundles/org.openhab.persistence.influxdb/pom.xml +++ b/bundles/org.openhab.persistence.influxdb/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.persistence.influxdb diff --git a/bundles/org.openhab.persistence.jdbc/pom.xml b/bundles/org.openhab.persistence.jdbc/pom.xml index c2dc98eaf41a3..a02744f795e44 100644 --- a/bundles/org.openhab.persistence.jdbc/pom.xml +++ b/bundles/org.openhab.persistence.jdbc/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.persistence.jdbc diff --git a/bundles/org.openhab.persistence.jpa/pom.xml b/bundles/org.openhab.persistence.jpa/pom.xml index cce2d85f8812c..5acb94fe3f46c 100644 --- a/bundles/org.openhab.persistence.jpa/pom.xml +++ b/bundles/org.openhab.persistence.jpa/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.persistence.jpa diff --git a/bundles/org.openhab.persistence.mapdb/pom.xml b/bundles/org.openhab.persistence.mapdb/pom.xml index bbd3f40a9df74..7491594ad2eaf 100644 --- a/bundles/org.openhab.persistence.mapdb/pom.xml +++ b/bundles/org.openhab.persistence.mapdb/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.persistence.mapdb diff --git a/bundles/org.openhab.persistence.mongodb/pom.xml b/bundles/org.openhab.persistence.mongodb/pom.xml index b5411c7860f15..0b28a953adcd3 100644 --- a/bundles/org.openhab.persistence.mongodb/pom.xml +++ b/bundles/org.openhab.persistence.mongodb/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.persistence.mongodb diff --git a/bundles/org.openhab.persistence.rrd4j/pom.xml b/bundles/org.openhab.persistence.rrd4j/pom.xml index 8a4489d2d3db2..fe3d7c763fa31 100644 --- a/bundles/org.openhab.persistence.rrd4j/pom.xml +++ b/bundles/org.openhab.persistence.rrd4j/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.persistence.rrd4j diff --git a/bundles/org.openhab.transform.bin2json/pom.xml b/bundles/org.openhab.transform.bin2json/pom.xml index a238ddc74386c..a051efb7480a4 100644 --- a/bundles/org.openhab.transform.bin2json/pom.xml +++ b/bundles/org.openhab.transform.bin2json/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.transform.bin2json diff --git a/bundles/org.openhab.transform.exec/pom.xml b/bundles/org.openhab.transform.exec/pom.xml index 606b7fbfe42b4..a755a31d3b60b 100644 --- a/bundles/org.openhab.transform.exec/pom.xml +++ b/bundles/org.openhab.transform.exec/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.transform.exec diff --git a/bundles/org.openhab.transform.javascript/pom.xml b/bundles/org.openhab.transform.javascript/pom.xml index 216dbe8af38c5..a0f1c58508f87 100644 --- a/bundles/org.openhab.transform.javascript/pom.xml +++ b/bundles/org.openhab.transform.javascript/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.transform.javascript diff --git a/bundles/org.openhab.transform.jinja/pom.xml b/bundles/org.openhab.transform.jinja/pom.xml index ffe2e1ef4ba6b..899f22e98195f 100644 --- a/bundles/org.openhab.transform.jinja/pom.xml +++ b/bundles/org.openhab.transform.jinja/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.transform.jinja diff --git a/bundles/org.openhab.transform.jsonpath/pom.xml b/bundles/org.openhab.transform.jsonpath/pom.xml index 69250c50b030c..1cf8c2908bbdc 100644 --- a/bundles/org.openhab.transform.jsonpath/pom.xml +++ b/bundles/org.openhab.transform.jsonpath/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.transform.jsonpath diff --git a/bundles/org.openhab.transform.map/pom.xml b/bundles/org.openhab.transform.map/pom.xml index c5c02cd6e2963..a09067104678d 100644 --- a/bundles/org.openhab.transform.map/pom.xml +++ b/bundles/org.openhab.transform.map/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.transform.map diff --git a/bundles/org.openhab.transform.regex/pom.xml b/bundles/org.openhab.transform.regex/pom.xml index ae4d03fab755d..1f50c2c924c2b 100644 --- a/bundles/org.openhab.transform.regex/pom.xml +++ b/bundles/org.openhab.transform.regex/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.transform.regex diff --git a/bundles/org.openhab.transform.scale/pom.xml b/bundles/org.openhab.transform.scale/pom.xml index 79696d6408aa1..cbbf7f9316c61 100644 --- a/bundles/org.openhab.transform.scale/pom.xml +++ b/bundles/org.openhab.transform.scale/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.transform.scale diff --git a/bundles/org.openhab.transform.xpath/pom.xml b/bundles/org.openhab.transform.xpath/pom.xml index c374d7c95558b..4aaba369a5778 100644 --- a/bundles/org.openhab.transform.xpath/pom.xml +++ b/bundles/org.openhab.transform.xpath/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.transform.xpath diff --git a/bundles/org.openhab.transform.xslt/pom.xml b/bundles/org.openhab.transform.xslt/pom.xml index 7a2af637d4c27..7851be096b14c 100644 --- a/bundles/org.openhab.transform.xslt/pom.xml +++ b/bundles/org.openhab.transform.xslt/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.transform.xslt diff --git a/bundles/org.openhab.voice.actiontemplatehli/pom.xml b/bundles/org.openhab.voice.actiontemplatehli/pom.xml index cadca24c672bc..7a37166bc8fb3 100644 --- a/bundles/org.openhab.voice.actiontemplatehli/pom.xml +++ b/bundles/org.openhab.voice.actiontemplatehli/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.voice.actiontemplatehli diff --git a/bundles/org.openhab.voice.googlestt/pom.xml b/bundles/org.openhab.voice.googlestt/pom.xml index 003f627e4c204..87cd2cc6bff02 100644 --- a/bundles/org.openhab.voice.googlestt/pom.xml +++ b/bundles/org.openhab.voice.googlestt/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.voice.googlestt diff --git a/bundles/org.openhab.voice.googletts/pom.xml b/bundles/org.openhab.voice.googletts/pom.xml index ea27820730b14..44597564df14c 100644 --- a/bundles/org.openhab.voice.googletts/pom.xml +++ b/bundles/org.openhab.voice.googletts/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.voice.googletts diff --git a/bundles/org.openhab.voice.mactts/pom.xml b/bundles/org.openhab.voice.mactts/pom.xml index 4b12f0710aea8..9790b5bff9f30 100644 --- a/bundles/org.openhab.voice.mactts/pom.xml +++ b/bundles/org.openhab.voice.mactts/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.voice.mactts diff --git a/bundles/org.openhab.voice.marytts/pom.xml b/bundles/org.openhab.voice.marytts/pom.xml index 1b3ff36a6bbca..41ec3a01515ab 100644 --- a/bundles/org.openhab.voice.marytts/pom.xml +++ b/bundles/org.openhab.voice.marytts/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.voice.marytts diff --git a/bundles/org.openhab.voice.picotts/pom.xml b/bundles/org.openhab.voice.picotts/pom.xml index 6b4a782442c39..1dbd3f877710c 100644 --- a/bundles/org.openhab.voice.picotts/pom.xml +++ b/bundles/org.openhab.voice.picotts/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.voice.picotts diff --git a/bundles/org.openhab.voice.pollytts/pom.xml b/bundles/org.openhab.voice.pollytts/pom.xml index 2fb3c9f1e3dcb..ffdae6b444f0b 100644 --- a/bundles/org.openhab.voice.pollytts/pom.xml +++ b/bundles/org.openhab.voice.pollytts/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.voice.pollytts diff --git a/bundles/org.openhab.voice.porcupineks/pom.xml b/bundles/org.openhab.voice.porcupineks/pom.xml index d82de4d6957fb..714e0696cca47 100644 --- a/bundles/org.openhab.voice.porcupineks/pom.xml +++ b/bundles/org.openhab.voice.porcupineks/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.voice.porcupineks diff --git a/bundles/org.openhab.voice.rustpotterks/pom.xml b/bundles/org.openhab.voice.rustpotterks/pom.xml index fc83fd255eb02..f3738899d3d6c 100644 --- a/bundles/org.openhab.voice.rustpotterks/pom.xml +++ b/bundles/org.openhab.voice.rustpotterks/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.voice.rustpotterks diff --git a/bundles/org.openhab.voice.voicerss/pom.xml b/bundles/org.openhab.voice.voicerss/pom.xml index 0fc299a351282..47aeb6b3ba1b0 100644 --- a/bundles/org.openhab.voice.voicerss/pom.xml +++ b/bundles/org.openhab.voice.voicerss/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.voice.voicerss diff --git a/bundles/org.openhab.voice.voskstt/pom.xml b/bundles/org.openhab.voice.voskstt/pom.xml index 1b1522e54cf4b..a7bcdb19ea94e 100644 --- a/bundles/org.openhab.voice.voskstt/pom.xml +++ b/bundles/org.openhab.voice.voskstt/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.voice.voskstt diff --git a/bundles/org.openhab.voice.watsonstt/pom.xml b/bundles/org.openhab.voice.watsonstt/pom.xml index c69d346dd97c2..97d0b9fd2da2e 100644 --- a/bundles/org.openhab.voice.watsonstt/pom.xml +++ b/bundles/org.openhab.voice.watsonstt/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.bundles org.openhab.addons.reactor.bundles - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.voice.watsonstt diff --git a/bundles/pom.xml b/bundles/pom.xml index 35bb76500b033..a27e2138da5cb 100644 --- a/bundles/pom.xml +++ b/bundles/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons org.openhab.addons.reactor - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.addons.bundles diff --git a/features/openhab-addons-external/pom.xml b/features/openhab-addons-external/pom.xml index ac3c80b1f1e77..045051976c131 100644 --- a/features/openhab-addons-external/pom.xml +++ b/features/openhab-addons-external/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.features.karaf org.openhab.addons.reactor.features.karaf - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.addons.features.karaf.openhab-addons-external diff --git a/features/openhab-addons/pom.xml b/features/openhab-addons/pom.xml index c42ca7b0d9d0c..b8aaba34a1ff3 100644 --- a/features/openhab-addons/pom.xml +++ b/features/openhab-addons/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.features.karaf org.openhab.addons.reactor.features.karaf - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.addons.features.karaf.openhab-addons diff --git a/features/pom.xml b/features/pom.xml index 70f5e03a41bf6..1c68d8e671569 100644 --- a/features/pom.xml +++ b/features/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons org.openhab.addons.reactor - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.addons.features.karaf diff --git a/itests/org.openhab.binding.astro.tests/pom.xml b/itests/org.openhab.binding.astro.tests/pom.xml index 0e3d5c98ecb21..e1495a70e54a2 100644 --- a/itests/org.openhab.binding.astro.tests/pom.xml +++ b/itests/org.openhab.binding.astro.tests/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.itests org.openhab.addons.reactor.itests - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.astro.tests diff --git a/itests/org.openhab.binding.avmfritz.tests/pom.xml b/itests/org.openhab.binding.avmfritz.tests/pom.xml index 95aeea604b1ee..349afd86ad04d 100644 --- a/itests/org.openhab.binding.avmfritz.tests/pom.xml +++ b/itests/org.openhab.binding.avmfritz.tests/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.itests org.openhab.addons.reactor.itests - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.avmfritz.tests diff --git a/itests/org.openhab.binding.feed.tests/pom.xml b/itests/org.openhab.binding.feed.tests/pom.xml index 353593d56a588..72b53c363198b 100644 --- a/itests/org.openhab.binding.feed.tests/pom.xml +++ b/itests/org.openhab.binding.feed.tests/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.itests org.openhab.addons.reactor.itests - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.feed.tests diff --git a/itests/org.openhab.binding.hue.tests/pom.xml b/itests/org.openhab.binding.hue.tests/pom.xml index 49e748b21ffc6..a28fc19e37f47 100644 --- a/itests/org.openhab.binding.hue.tests/pom.xml +++ b/itests/org.openhab.binding.hue.tests/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.itests org.openhab.addons.reactor.itests - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.hue.tests diff --git a/itests/org.openhab.binding.max.tests/pom.xml b/itests/org.openhab.binding.max.tests/pom.xml index 2fe7a42df839b..3eaa551e07ced 100644 --- a/itests/org.openhab.binding.max.tests/pom.xml +++ b/itests/org.openhab.binding.max.tests/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.itests org.openhab.addons.reactor.itests - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.max.tests diff --git a/itests/org.openhab.binding.mielecloud.tests/pom.xml b/itests/org.openhab.binding.mielecloud.tests/pom.xml index 6546a76cb45fb..ecd8d54b8421b 100644 --- a/itests/org.openhab.binding.mielecloud.tests/pom.xml +++ b/itests/org.openhab.binding.mielecloud.tests/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.itests org.openhab.addons.reactor.itests - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.mielecloud.tests diff --git a/itests/org.openhab.binding.modbus.tests/pom.xml b/itests/org.openhab.binding.modbus.tests/pom.xml index 28b2157fe9709..4de353c89698e 100644 --- a/itests/org.openhab.binding.modbus.tests/pom.xml +++ b/itests/org.openhab.binding.modbus.tests/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.itests org.openhab.addons.reactor.itests - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.modbus.tests diff --git a/itests/org.openhab.binding.mqtt.homeassistant.tests/pom.xml b/itests/org.openhab.binding.mqtt.homeassistant.tests/pom.xml index 4bb5436d63568..811f53df217e3 100644 --- a/itests/org.openhab.binding.mqtt.homeassistant.tests/pom.xml +++ b/itests/org.openhab.binding.mqtt.homeassistant.tests/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.itests org.openhab.addons.reactor.itests - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.mqtt.homeassistant.tests diff --git a/itests/org.openhab.binding.mqtt.homie.tests/pom.xml b/itests/org.openhab.binding.mqtt.homie.tests/pom.xml index 6ece514dfaafc..45dace0e8f7d6 100644 --- a/itests/org.openhab.binding.mqtt.homie.tests/pom.xml +++ b/itests/org.openhab.binding.mqtt.homie.tests/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.itests org.openhab.addons.reactor.itests - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.mqtt.homie.tests diff --git a/itests/org.openhab.binding.nest.tests/pom.xml b/itests/org.openhab.binding.nest.tests/pom.xml index bd098a2821868..6e5e5fab8d466 100644 --- a/itests/org.openhab.binding.nest.tests/pom.xml +++ b/itests/org.openhab.binding.nest.tests/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.itests org.openhab.addons.reactor.itests - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.nest.tests diff --git a/itests/org.openhab.binding.ntp.tests/pom.xml b/itests/org.openhab.binding.ntp.tests/pom.xml index b0e2c852fba1a..ad63334e628ab 100644 --- a/itests/org.openhab.binding.ntp.tests/pom.xml +++ b/itests/org.openhab.binding.ntp.tests/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.itests org.openhab.addons.reactor.itests - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.ntp.tests diff --git a/itests/org.openhab.binding.systeminfo.tests/pom.xml b/itests/org.openhab.binding.systeminfo.tests/pom.xml index 06845ebcd44c5..db959d5ead620 100644 --- a/itests/org.openhab.binding.systeminfo.tests/pom.xml +++ b/itests/org.openhab.binding.systeminfo.tests/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.itests org.openhab.addons.reactor.itests - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.systeminfo.tests diff --git a/itests/org.openhab.binding.tradfri.tests/pom.xml b/itests/org.openhab.binding.tradfri.tests/pom.xml index 26dcf807168e9..c090bae559bfa 100644 --- a/itests/org.openhab.binding.tradfri.tests/pom.xml +++ b/itests/org.openhab.binding.tradfri.tests/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.itests org.openhab.addons.reactor.itests - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.tradfri.tests diff --git a/itests/org.openhab.binding.wemo.tests/pom.xml b/itests/org.openhab.binding.wemo.tests/pom.xml index 8af8445b667a7..e3e119ba8bf72 100644 --- a/itests/org.openhab.binding.wemo.tests/pom.xml +++ b/itests/org.openhab.binding.wemo.tests/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.itests org.openhab.addons.reactor.itests - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.binding.wemo.tests diff --git a/itests/org.openhab.persistence.mapdb.tests/pom.xml b/itests/org.openhab.persistence.mapdb.tests/pom.xml index 5d760c8445360..0c775140cb1fa 100644 --- a/itests/org.openhab.persistence.mapdb.tests/pom.xml +++ b/itests/org.openhab.persistence.mapdb.tests/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons.itests org.openhab.addons.reactor.itests - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.persistence.mapdb.tests diff --git a/itests/pom.xml b/itests/pom.xml index bbbc12a83ca1c..e348f5b43ebdf 100644 --- a/itests/pom.xml +++ b/itests/pom.xml @@ -5,7 +5,7 @@ org.openhab.addons org.openhab.addons.reactor - 3.4.0-SNAPSHOT + 3.3.0 org.openhab.addons.itests diff --git a/pom.xml b/pom.xml index de211107e86b4..609c9e4668885 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ org.openhab.addons org.openhab.addons.reactor - 3.4.0-SNAPSHOT + 3.3.0 pom @@ -38,7 +38,7 @@ scm:git:https://github.com/openhab/openhab-addons.git scm:git:https://github.com/openhab/openhab-addons.git - HEAD + 3.3.0 https://github.com/openhab/openhab-addons @@ -66,7 +66,7 @@ ${oh.java.version} ${oh.java.version} - 3.4.0-SNAPSHOT + 3.3.0 6.3.0 3.7.2 2.2.1 From c4f2cab5905463515dc9f5530a50e9b93932c3a6 Mon Sep 17 00:00:00 2001 From: Stephan Richter Date: Sat, 17 Dec 2022 18:30:11 +0100 Subject: [PATCH 02/31] Added new _Clementine Remote_ binding. This is a squash commit to tidy up experiments. Signed-off-by: Stephan Richter --- CODEOWNERS | 1 + bom/openhab-addons/pom.xml | 5 + .../NOTICE | 13 + .../README.md | 334 + .../doc/screenshot.png | Bin 0 -> 197294 bytes .../doc/useful links.md | 7 + .../pom.xml | 24 + .../proto/remotecontrolmessages.proto | 404 + .../src/main/feature/feature.xml | 9 + .../backend/pb/ClementineRemote.java | 36434 ++++++++++++++++ .../ClementineRemoteBindingConstants.java | 56 + .../ClementineRemoteConfiguration.java | 33 + .../internal/ClementineRemoteHandler.java | 409 + .../ClementineRemoteHandlerFactory.java | 55 + .../main/resources/OH-INF/binding/binding.xml | 9 + .../i18n/clementineremote_de.properties | 35 + .../resources/OH-INF/thing/thing-types.xml | 98 + bundles/pom.xml | 647 +- features/openhab-addons/pom.xml | 7 +- 19 files changed, 38566 insertions(+), 14 deletions(-) create mode 100644 bundles/org.openhab.binding.clementineremote/NOTICE create mode 100644 bundles/org.openhab.binding.clementineremote/README.md create mode 100644 bundles/org.openhab.binding.clementineremote/doc/screenshot.png create mode 100644 bundles/org.openhab.binding.clementineremote/doc/useful links.md create mode 100644 bundles/org.openhab.binding.clementineremote/pom.xml create mode 100644 bundles/org.openhab.binding.clementineremote/proto/remotecontrolmessages.proto create mode 100644 bundles/org.openhab.binding.clementineremote/src/main/feature/feature.xml create mode 100644 bundles/org.openhab.binding.clementineremote/src/main/java/de/qspool/clementineremote/backend/pb/ClementineRemote.java create mode 100644 bundles/org.openhab.binding.clementineremote/src/main/java/org/openhab/binding/clementineremote/internal/ClementineRemoteBindingConstants.java create mode 100644 bundles/org.openhab.binding.clementineremote/src/main/java/org/openhab/binding/clementineremote/internal/ClementineRemoteConfiguration.java create mode 100644 bundles/org.openhab.binding.clementineremote/src/main/java/org/openhab/binding/clementineremote/internal/ClementineRemoteHandler.java create mode 100644 bundles/org.openhab.binding.clementineremote/src/main/java/org/openhab/binding/clementineremote/internal/ClementineRemoteHandlerFactory.java create mode 100644 bundles/org.openhab.binding.clementineremote/src/main/resources/OH-INF/binding/binding.xml create mode 100644 bundles/org.openhab.binding.clementineremote/src/main/resources/OH-INF/i18n/clementineremote_de.properties create mode 100644 bundles/org.openhab.binding.clementineremote/src/main/resources/OH-INF/thing/thing-types.xml diff --git a/CODEOWNERS b/CODEOWNERS index 48d5b69c26f92..382d28b89d878 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -54,6 +54,7 @@ /bundles/org.openhab.binding.caddx/ @jossuar /bundles/org.openhab.binding.cbus/ @jpharvey /bundles/org.openhab.binding.chromecast/ @kaikreuzer +/bundles/org.openhab.binding.clementineremote/ @StephanRichter /bundles/org.openhab.binding.cm11a/ @BobRak /bundles/org.openhab.binding.comfoair/ @boehan /bundles/org.openhab.binding.coolmasternet/ @projectgus diff --git a/bom/openhab-addons/pom.xml b/bom/openhab-addons/pom.xml index 32569251828a5..1557dcedc2c28 100644 --- a/bom/openhab-addons/pom.xml +++ b/bom/openhab-addons/pom.xml @@ -259,6 +259,11 @@ org.openhab.binding.chromecast ${project.version} + + org.openhab.addons.bundles + org.openhab.binding.clementineremote + ${project.version} + org.openhab.addons.bundles org.openhab.binding.cm11a diff --git a/bundles/org.openhab.binding.clementineremote/NOTICE b/bundles/org.openhab.binding.clementineremote/NOTICE new file mode 100644 index 0000000000000..38d625e349232 --- /dev/null +++ b/bundles/org.openhab.binding.clementineremote/NOTICE @@ -0,0 +1,13 @@ +This content is produced and maintained by the openHAB project. + +* Project home: https://www.openhab.org + +== Declared Project Licenses + +This program and the accompanying materials are made available under the terms +of the Eclipse Public License 2.0 which is available at +https://www.eclipse.org/legal/epl-2.0/. + +== Source Code + +https://github.com/openhab/openhab-addons diff --git a/bundles/org.openhab.binding.clementineremote/README.md b/bundles/org.openhab.binding.clementineremote/README.md new file mode 100644 index 0000000000000..2bbc98d2f2dec --- /dev/null +++ b/bundles/org.openhab.binding.clementineremote/README.md @@ -0,0 +1,334 @@ +# ClementineRemote Binding + +Screenshot +This binding shall bring the benefits of over-the-network control of the [Clementine-Player] to OpenHab! + +It allows control of playback, position and volume and allows display of various title information: + +* Artist +* Album +* Title +* current position within track +* Album cover + + +[→ useful Links][links] + +## Discovery + +This thing does (currently) not provide auto-discovery. +You will have to manually configure clementine to allow remote connections. +And you will have to manually configure the Thing instances to talk to your player: + +## Thing Configuration + +Configuring the connection to Clementine is quite easy: + +Normally you only need to set the hostname your Clementine player is running at. +If you set a password in the Clementine configuration, you will have to provide it to the configuration, too. + +### `sample` Thing Configuration + +| Name | Type | Description | Default | Required | Advanced | +|----------|---------|-------------------------------------------------------------------|---------|----------|----------| +| hostname | text | Hostname or IP address of the device | N/A | yes | no | +| password | text | Password to access the device | N/A | no | no | +| port | integer | Port at which Clementine is listening for remote control commands | 5500 | yes | no | + +## Channels + +The binding provides the following channels: + +| Channel | Type | Read/Write | Description | +|------------------|---------------|-------------|----------------------------------------------| +| album | String | read-only | Album the currently playing song belongs to | +| artist | String | read-only | Artist of the currently playing title | +| cover | Image | read-only | Cover of the current album | +| playback-control | String | read/write | Common control of playback and position | +| position | Number:Time | read-only | Current position within the playing track | +| state | String | read-only | Current state of Clementine player | +| title | String | read-only | Name of the currently playing track | +| track | String | read-only | Number of the title within the current album | +| volume-control | system.volume | read/write | Playback volume | + + + +## Full Example + +### Thing + +``` +UID: clementineremote:clementine:0590462b5b +label: Clementine +thingTypeUID: clementineremote:clementine +configuration: + port: 5500 + hostname: 192.168.1.6 +``` + +### Widget + +based on https://community.openhab.org/t/universal-remote-widget/118423 + +``` +uid: clementine_remote +tags: [] +props: + parameters: + - context: item + description: Select the clementine player item + label: Select Clementine + name: clementine + required: true + type: TEXT + - context: item + description: Select the artist channel + label: Artist + name: artist + required: true + type: TEXT + - context: item + description: Select the album channelpos + label: Album + name: album + required: true + type: TEXT + - context: item + description: Select the title channel + label: Title + name: title + required: true + type: TEXT + - context: item + description: Select the position channel + label: Position + name: pos + required: true + type: TEXT + - context: item + description: Select the volume channel + label: Volume + name: volume + required: true + type: TEXT + - context: item + description: Select the cover image channel + label: Cover image + name: cover + required: true + type: TEXT + parameterGroups: [] +component: f7-card +config: + style: + background: rgba(0,0,0,0) + height: 20rem + width: 20rem +slots: + default: + - component: oh-image + config: + item: =props.cover + style: + border-radius: 20px + bottom: 0; + height: auto + position: absolute; + width: 100% + - component: oh-slider + config: + item: =props.volume + label: true + max: 100 + min: 0 + step: 10 + style: + color: yellow + left: 30px + position: absolute + top: 20px + width: 260px + unit: "%" + - component: f7-badge + config: + style: + background: rgba(0,0,0,0.6) + border-radius: 12px + box-shadow: 0px 2px 5px + height: 60px + left: 30px + position: absolute + top: 50px + width: 70px + - component: f7-badge + config: + style: + background: rgba(0,0,0,0.6) + border-radius: 12px + box-shadow: 0px 2px 5px + height: 60px + left: 115px + position: absolute + top: 50px + width: 80px + - component: f7-badge + config: + style: + background: rgba(0,0,0,0.6) + border-radius: 12px + box-shadow: 0px 2px 5px + height: 60px + position: absolute + right: 30px + top: 50px + width: 80px + - component: f7-badge + config: + style: + background: rgba(0,0,0,0.6) + border-radius: 12px + box-shadow: 0px 2px 5px + height: 60px + left: 30px + position: absolute + top: 120px + width: 70px + - component: f7-badge + config: + style: + background: rgba(0,0,0,0.6) + border-radius: 12px + box-shadow: 0px 2px 5px + height: 60px + left: 115px + position: absolute + top: 120px + width: 80px + - component: f7-badge + config: + style: + background: rgba(0,0,0,0.6) + border-radius: 12px + box-shadow: 0px 2px 5px + height: 60px + position: absolute + right: 30px + top: 120px + width: 80px + - component: oh-link + config: + action: command + actionCommand: REWIND + actionItem: =props.clementine + iconF7: backward + iconSize: 50 + style: + color: white + left: 40px + position: absolute + top: 55px + - component: oh-link + config: + action: command + actionCommand: "=(items[props.clementine].state == 'PLAY') ? 'PAUSE' : 'PLAY'" + actionItem: =props.clementine + iconF7: "=(items[props.clementine].state == 'PLAY') ? 'pause' : 'play'" + iconSize: 50 + style: + color: "=(items[props.clementine].state == 'PLAY') ? 'yellow' : 'lime'" + left: 130px + position: absolute + top: 55px + - component: oh-link + config: + action: command + actionCommand: FASTFORWARD + actionItem: =props.clementine + iconF7: forward + iconSize: 50 + style: + color: white + position: absolute + right: 44px + top: 55px + - component: oh-link + config: + action: command + actionCommand: PREVIOUS + actionItem: =props.clementine + iconF7: backward_end_alt + iconSize: 50 + style: + color: white + left: 40px + position: absolute + top: 124px + - component: oh-link + config: + action: command + actionCommand: STOP + actionItem: =props.clementine + iconF7: stop + iconSize: 50 + style: + color: red + left: 130px + position: absolute + top: 124px + - component: oh-link + config: + action: command + actionCommand: NEXT + actionItem: =props.clementine + iconF7: forward_end_alt + iconSize: 50 + style: + color: white + position: absolute + right: 44px + top: 124px + - component: oh-link + config: + style: + background: rgba(0,0,0,0.7) + color: yellow + left: 20px + padding: 0 6px + position: absolute + top: 190px + text: =items[props.artist].state + - component: oh-link + config: + style: + background: rgba(0,0,0,0.7) + color: yellow + left: 20px + padding: 0 6px + position: absolute + top: 210px + text: =items[props.album].state + - component: oh-link + config: + style: + background: rgba(0,0,0,0.7) + color: yellow + left: 20px + padding: 0 6px + position: absolute + top: 230px + text: =items[props.title].state + - component: oh-link + config: + style: + background: rgba(0,0,0,0.7) + color: yellow + left: 20px + padding: 0 6px + position: absolute + top: 250px + text: =items[props.pos].displayState || items[props.pos].state + +``` + +[Clementine-Player]: https://www.clementine-player.org/ +[Links]: doc/useful%20links.md diff --git a/bundles/org.openhab.binding.clementineremote/doc/screenshot.png b/bundles/org.openhab.binding.clementineremote/doc/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..8911820e2855dfd24cfe0042923988bd50cb33fb GIT binary patch literal 197294 zcmV(tK zaB^>EX>4U6ba`-PAZ2)IW&i+q+O559vgA07W%*yLs3nNsvHGMgRr^7|ZmhGq0A94NlHoWj*mD2gK%J0U% zg}=A+d+@v8^L|6V*ZtlPzuz!I4C($t4(kdtd|`*hpKo}%#vFHS{2AjL)A?FYEspr6 zJB5_}9lqGoNGtUe(;Ih6DPJl6eJ$a9?l_qC2|N8s-zrEmp^85SV zn>7l7yAOZtg6oRWeF!dN^1r-{4GG_$eJf{y|N8y+uj^kMo7ll}mbr6-^L~DB@s#k7 zZKY!XiPshW{MlD%%Uz4dN;02axR{XGg1d%PLJfC|v4xOR>}=5F%45p$VFyAfadD9` zr&QUSjvevY{7ehywXwwC*Krm0r=*%1do$8xvvMxjPs<$}nkAK7N~xulUPhT$O*Pk2 zYi(7Zn=Q56N~^84-bR}}_1sIZz4hKlpCgWhOO{bb8-0v1C!aa+x4iXjZ-2)-S6pf3RaRYX^)=SqVPi_y&b#co+wObp`C)5c`tn!4 z`n9irYU}0E3S1 z+1*3V(VcV8?h)~d61m9Y-mGxXD^#{H?-0uu{@%NPcJ6=_^axxYK_r?u~%?|ek1zTW<&@zjyN z-pYL5v;)`4I^_J+_VGc1jqPJTC1crN#eHV#A8+?0%;kN&z!A&%_{{aa)jxM+LB1VW zs%L#)TJh}-BrAWud)4`Hn|T9;Z^uOY+^aX%HD6KpSkdYmHYVamC8HP-Y;R7#aJ^nUku*2 zCyiEb7jk=@xqiI{_P3Ss_ex!VZVYSwU1G#i#(W=ce*g1UF+a~;R(N{}Ww8ytt@(7< zaMkmwtF7m+m#?(%unHgHHJ^)r_WFB?-}$n5m_D1_!@lDxf8Su{)_$-3ZAQnfOMOGy z7*1nL&ZqDh&nP`$7hKMrpB?ywp3<{-T&?eWhjG2cVP3&b5D&qF@Z5_xo8!giD~R=d zwcxN%N&zQY(~qljr&_}#7!Oy(wbaNx@0>7&`7Rc3S1#v!BGCb7&Rhr=1O1ts z|9xRXslM!NYJQH9W8(eiN^r(daJ`j7;)c@ihUV_^eP6u@@aT2#d$7EFE}U`q@^Rzu zT?hLTuEutD>;lxO6VoH;l;7>xCa`GtWC=hH zh)ipsXUR{`YqJUqE`zg-z3bE4{Oav0m1B@0kM$&NXnkq>6?SN0?4d+m4y(ti|k459_X#>&iQi>8_6j5$o&zVkTCk_Z^$> z!NMMK6>JNHnQ?PXe0b=U{e6Mzv14yU4L%*iJ5eMMK~oqv>(f}!$(`PSSzxvK=Ub~B z<~=JbRY9Hy?!>yb7;ez6j`3A|vs^$W5yCG%kq`dZ*!-}jqv5qd1m7jy^?eH$bkDU| zBs_YAdIO&;fn3je+YR^=Aa{88T`HDGoDwqn8`-o4pu8K;L8=toco?wj#`%C%Slc8l z!SeDLce(~IjN>u-=PX5ST!E1{-P65#OWdW5hLNxQaxG;~R~(Dl0QB2+A?U+3=2XxzGH4y0~)^Mdb7}N|-R8Td9zQP)_ zJR6YPu(E!0MHnj)P|LpG#e3G(al|hg@&HNSagF&~EMph^vK|fpGxn?AyTKSuN0sP?-&Mcxd4Vvv`j$l=$$!g}YCs%<^3PV0xj8 ztQpj)0)L|u*H~Kj`u0cgx!d*YPs*LhR$fqjA2i)_)&lz=KtdZLZUpxPM$3#}9XG6t z6~J71dokz(s}?%0U?w4Q1Jbp|79u`?NMe6`aFJ9|n8X|4<^G=Zf~6Rx5da?>7!8Iq z?}k%mh*LvH0)uF(T`?qMS29>#&qu^ecw&4S%NDpKq$a=;8UUSVlssd92$Sa9Kr-0X z@jSfGhn7Tv15|^>hKR9KW0jIV+&}X+-_w&wJR#zkALN>i!DklKRTK-sZiA_uD$bR9wvAD;2v7juV_vkrhx?o%`_7e5KWy`hx|30P(CmR}-1 z{4fKq5n!HhwYNQAp4|uoKV@0J35Nk|v8PnP=nI7YHZ%d?&jx?)tUhqsFA~w;jw!*_ z0((HPb#DG`A;K@_?0y-SN|1W4RuH3M8i zBrHK>LLDo1)V>;@3tq??VmFAU%*z|*x915QSo{Qt8)S6@61Xd?gN2T^0NA%bpevlP z5gzuu*kuSr7%#fzITZcH9B`|`B`#GKOpOJs7(oShP-U>M);2B*?E+Ph%GldQbn1XF zV4mKNHxQC)<848BC<9VxeVZuL`+DwyOb0j~kdLSUw5hnB3gg+*V$?JkeE+KpSktFXa6_01NKWCR%h>?35dsR+UK3r($$?2~zi+Gv#|c z9m}2qA&QI`ia+5u4-Nwq5_~ZOq~b$#LWINu65UgE0+WIMni&$bqKfZgcUTT?Z$HQA z@n?SY%LSi4mo2}7D8Go;Da_AAw74PtgDc@O*bmqmkCDI6Mc{<2E?Ixw)lFk_2$=AJnr@6N2d-zbsV~B?;OZ=799RS(4h@rN z!fnHa;1)V+FNK1%mr$m!L5`f<^lbRzJ@^Z9tg3cIb=LX@4WMT zV(u7(J6R|9M>J;pT|x+cW8*P@Ka%UmvDu$`U)E%pN)2+hixsB63wCE&GUBn6iU@ z5S< zfuV%3MQ{T=j0=~>KG=KEAU^Mhlg=k$i0~uexR!{`bVBG;F;kZDAu@ar5jFxooS-ic zY_3QY0cwJU9%4M^mWlkh2q;n%C>UBIco3ps@*6#tqVls5JmcCTJSvwc`J`5aE3Ue@ zw%mnZH-m!wb2;K-V9uopJ4GiD(xLn}7ih_{48V7e>9*dUs5 z@Utv*$+K*3oFE>iv^Mh*Ap$)^=m>j20TrYh6+Do*Mvc2dTW)p@JjY8h4mdXOfK5Y} z(*k9lkEkK_2r!2ZdF+xC3^=JCfp!p_mQFhVo{8PFk+qY%6R;6UUIbq_s^s;q(b$LGR+i1LBpD zYIR6iffqjdE9nA1LCOrpt1GJMiAvkV9Jsr|1++*Snjl;aBY2v63rp-~ge1lj!-D3RXyA~x8`mXTZRT7++GzPKbQ z5Clm0=+F{^Z-$Zs44t2WuS5PPS`4Q1n4 zR%^y3x(bU}Mo1zs4MD2HM6|>2BGx^M2bc{cZ~&EfE0;`cthWRxJTEj3UILEuW*^tV ze>!$`nB+-CKqMeq#OjWQeh^^X^gz9@MIfuh;|AsOL&yrj6hlEfeP9^0t}U$K{-7?V#>WlC^ellJ$}9k`!d`>C0lgN63JhUc z;5x8tlZR;D87BK!V_4kABB&B|YC_B*Yr0zL&MzeK3pmQF?#Fs{`#fu4K`Xj;r8~SQ zgxG1~Y51fnki0S*be z7E{Y;b`%(zjJUcm>GuYH8sYdG#OLJ!O>;#WWaDd6mmoO8KvUXdUHbu`0$v<2u@&*a zDZ;Rnk12%*WMbpLyJzDCi#DO_8Y0^UCuzHujkpA}5k#OC5DfTXXB+AdHAd2)k)~Na zBmu#QZQK)@M=XOu;)VnO43k@d9K17KH};mEU(CPJ7K8qcgH;krQ0TBFq&t!KHV}Y& z{wI|TOYWv~@Fc>!=d@sg`Dqm^VeK|C31kG`11xU1I-~~a3}phZCr*U)xN+i5tl06J z3F$#x>)x~Z%^|74!ndSm+}xD;Ym_-#15<&n2lPuvtp^D0YW_f%0uIDQz3@DP6M+m# zPc+UR&Js&kCH6u(aSpf!mTK?=?Rt7G>_AJJ_*Sq%E{GTxk|EU!aOJ~@*d$NC&^g?z z(FD5xdEV)LhU)P!G9V$}*~IcfN<5RyU%gWP%v6AhIe55B5C*qD1AFSkfoy1lqQ|NJ zc+SBT@cVU7%((N-Uf~x3;dk>X#3C3KSHP~Ds12TRO(X0j zDr^xk^I_%}mfSX04*u+bl);y<6XIo4D8i*xH+d4Sy=bBjR|5pLdACy{!=*Lc>$^NP zISiUGQt@Lb(aU?V!|KU;ZWdY2g7bq|PcA?TlreU%7}c>j!KjAe`i}Y(If&qg!g{qJKc_mkbLnymzM@CM3C&f3( znljXJ*Rz_-(=TXq1f(|rUJ_BAp!>bORHfFcm(uO?#GJL_dm4Dj2_kR~8y@{^{rCWD zs=fdK2@LU65kx)_sT{DI>xtlZC%|lE=k3XEngZAUa5prw1VZ=8a}G z7ix;}D2@xSz;LO-~#F9V^k8valZQD2xj#R*^LE% zACo{MJRl?HA*sSXxcq(mI|;AtAlYXiO+PXW&z zgp&~%V)o>P7*QiGh<5_B&}Os3pD9msNLRq3@n%4S3-Vxiu+@vuySYe+Td*h!LidEe zxUd`zIgl;1_gpGt%n%d)E-xF{ES66kM##E$5f|T!5Nn`~YeN%c_#{AqN^DrAl!WjG z$g!6V{&l@cD~Q1h*oE|C>F zJ7ER5179Sd!)_iFs;9ao8i;QcOy5=%go$jm9)dXX?)id91-Bdbh4_bV#^;ViNjbKM zM(P>fW?*QQtp{1m<(Z*JuE$KM;NkKo z#{h@{!NNyO;-rUC12zcInx*U&qIJX6c*h43CM$nne(0b$rNcq{@fLB!7R^izPaPq( z*@UjtwY8sWyZ)W~@Nj|ni$X%+HX`$f#Fv-WIoVmnBnGkg;{EQ2tHy^w_!Q^4HPgH4 z-rAr3e1kJwrF;(H&lvoKn*jjZDhm%*bG+36nAjtLpfRV#u!@s0Kv(Ez(GnML2MHrQ>W z%zbeEo%1Gu0kOHEAyfmGS)7Tp0_v%rz;qM(OdQr5zegN=iX~9U)9(fu2&O4;Ztx`+ z5C}oR{Oz_{@Jo4cSpN-Y9Qu4Nh%w za*yL_aL7mPI^R*vc=6}$Ne!!Lj*lC~Bce5RNXSG`!vCaG9-1bKRSCs=8X1yw6PagWVUv~R3)vAb$MG@IuiTCvs0wx7eS&37|nx>Bv0-jz%cDVQ1;Xn3BW#W zX+ANg%A^sXmj3)Igc?`mHQd89QB+QQPTd=^7+r$7;H_^GaLdm11^tL(9%W}-D&e5d z^SG@Q67fDb|JR8T`5a7xB$h_so|P0OzD19*gR}^Jk7tnn?9j464M63pt>Kg{Nk_8J+5zwvGiHUYK{9;{;~-?`QZ3eko)!~XK#1pZPhOYxQ$!Ne0Na%D2D?Ob ze6nMgx7P@zj7QdII6{{KY*umQU{HV#hqZv(I#yFJOt^@VEn19vinXoQkPk=s=OSE5 zLD9>#<54Me%$?{X^dK@W!!ZyA$am&VFY*}23RcxX2HS=AR^mk6HK1GR<^w= zVW`yjE(?Ef>5zzh;^9P)bUhqEc+^$`9kyrc1R>y?bh=pY4VnKA{ID1l{xY4sWY?2LGIPG0ME-^-e0M)?Bi=aJNCWMi& z8+!Esd&zXY7UZARgan3O`1Tl>0*npofgjJLjHd5d&gs6}}a731#mwAt9H~ ze6NT>%YiE9KHSi0q{`NbJ>56DiOwnDlxVvo z;$$;i)uYeZ&E0k(enz=eRe;ypholF9PNAk})pfcSt50Jf|K=turxlmNJiG}OU&k39v)jOJ@rv5q){#}B~A zC%v-jyuOw@wsjGlp@H3$2HJE2)Je~p^+Skm%L9mh@E%VN?#Hwq3xu6p&tO50)w2y= za{-p7J7tpBliIOZ2Ddjgk_ zr6{?FVv(;x9-tl#fxq?MGP=05#=gdcn(aOTN{`&Ko@}w!ZmA&4F#>B`6G2LNfr$*cvR@RJ4_wFcj5| z1a(~I`w{nVIZ7KD2H99dz@-wx>puxuEastdL|d&I%*q`)xDl!iEsD1NF1EQT!H7>0 z*xjB|Na==|f^QxJkNtp}m1OvdB_r6bRTg~QwuX1#w^u}feSd@#Qi-Zj+24at07$Mcc<{8{qvw?2MLR*zeI`&w?%twI)jgKzAzU!R-k?(L zx=}cNWyO8)kdMz{+wR*Ep7%DjeF`aG>&#NK3b|m9VOVBXa)#L8SQdIOWSGGNKM$c{ zto4&hVbLglD53)A&c8e&rft2#I#r`++s86)L>Fkwt?h&d-;;p1>{iLkdZldDg9&91 z663To5DdUv%tVMh#D+ z@^0hsg|8`=0lbmm=? z?g+OeHoeK(2WVnh@H;FCx?`EJRU*IA7Kr_TpmRrKel1=^CQWMXj~Hkgd5M0gxV;y! zy-sc2ZIK=D0Tv+DEyGEtY6pP_!68J<`+AbyPL{|)72%9EMwfIv;1+*ydGMWP`w?(l zJ+Fa3EX%IXN+Qu=pdj9L&$Ug>#j)VQwOG^#It%fSXR^xMpH4f9zYBz*W%!ka5Qop- z%6FyTm%3d{5DgUIuo%h1PMBEw&;v9=u;mLfJJeX^{4 z7K2H#l1MsBkWEb^dTi|}GVe#?{JnR;79I~QB5arU4$}^nzTji*KJo(UeFOraGXXKn z+J^mJP%>h!^&-5aMpIfIi)nRmQT{*F3#>-bemI438|cT7I`I;E24(i>Kq`TiTdfRF z_oU;A`4Ib#+gZByWfdgC0DL(OFnB185SchmJi$CcJIhqfj}W0hv>MwUv5{%(1o~$2 z>Pe(;mnY7+mxn8`q2(>I3Rp2W#QoXDLwJaC8eMjwMfdxvpn`gqca~g;N1(o$G|w!d zE8O&-vyn_}$OOmYAyc!tb0OIgUxUCL9?OUzrudFQy%5)Ww?3M1AHYW#aUh<0p_$t^jx1@@>#_ zprIb?F%}rwpL5&^zJFInWD0j=$P5U5f1?OR=SW3p`6;?P9(v-u5 ze~IIRUc-#Gr4|Loh5%+8&)HYyr^cza91tML8@Bu=`%HSY&>l2aLfbl!`g>n|H{#^% z7R>ia6)z+xSbz(qhHEudicB>(#6#ouAN>Ed4X2m}1Kd2kh1N`z6LKQL5raX)dMNX} zCW;{qFs-sX0SY1q_L^3L8~zdv{UbD{Hi5oV=Z^$z`QQf<3`mB(+Jv~gSr+OT4I+cs zXD3scw>3j(&S8;?bt@{Et9l}bvg_k+=)Tu1RlUE6Fe9Ygp0BZk1TAwH*5;y@;EXR0 z)}$}<8;=?1YnhK?hpVvos& ze7DawD&D)E6Xw;^uPJcdRxlfD4?gH}39*c{Uf3oP;*tAqH6g!7i2U#yTd zdp$_7C2(Dc#$iPwu8DY99wk^14O28YM=YGrODuDZA#_v!7ONl8Y|*OamYDw&z#}9D zBo;RYS`qURae-{@uT4s`RCr$1x@^u-3|J;a2o3d=fntr&dpyhv&2i5EA5YV;Nc_wK z67-BUJ?28rQLAT8EwqBoL)1(Kj$&5Oz0^i74>AeUxI834gq#hjNv{P^-IG#}SSQc2@ewP!EH{#EOEYhDD2BUav?y@wfN;Az)U`v~VzTWlLb_a4pid(d zYh=9lTFQhR7D4_vwZ6BV==WC{5Tv zi&pDmflr`mzc^k98~K{=~u|*0UMB4tS5Ru{d(Qn!ef0D(a8eihui8lazSgVhuDZEUxRk> zfH&KpVq?tirxw~4L=!)Rn>%IeJ*!2<2vXFt=h}GaRjfu~$0yE3B;C8%p~Y@_U@L83 z=B!wgW>NysARIk-F^nI71ZN$q@jYPn#*FOWAz=2PW}VrN#bROSx5n)vU{2kW?e)qU zgUPYiuIUWDLCaYna=~x$oBiCF_BxG(R+}o%x#LHT17!!lV0S}}avR3xM7bg5q;qzP zw%lR<)~0RQjy-1Ja6ZNs&4pT|fj_Lb_k3l9X$~bI;XiAg>+N!z>myRtU(;^?v6bc7uB0n~*rK)thJy`RF`3EI)sh$g9=GmIfavB)Z z@K{VXVK1JY4M%My{tel%TZTP&L;>)DEl<6&py2I*;ojY&3BtUCIuH~4^2{720t*2Y zVe|y8(_C-ob^2bSmS=B(?8R12mOiEj`$iqAt3SDD z44xKEOK~5{%KV;At_qCU1Tyhbac@=o(wY%JHEX2!bDTz7^PkY7ZFjWw_EtW>ps)uz zgvMuFb|a^0CIVY#wPrrqP+PU$MHJf4(@tB?!-|5m^0LWZ64Q)geL)g!MIdBDuM!Z! ziWMTevuDORGeo4KS$};!x3xq2&l$3mOJ-B+lPr&h2*r54px-eC5YKK&E5Vx$+%urG zh{{=QcEaHEd7ypj6|i~WQaDg*K=?h)Dr|ePa7w0M&h#77D?#+v5-T^Ox6PlR<_L8pq2{ccRCr zpr#e>a6~=TDq%c?a95xC=yWY6jGgC{DnsOts_yS@OdY#;$ak{zwuH+!1 z?dhzA!P1|a=l6Fkbp4eaB9vGw>JX3UycuZKGtc6@76xqMU;j<>Ac!GBiAOe_n!)gG z(IVATX%++;QUN=*eRb0dMXR%~;1o1wyxg3MgC~eVP>sP|JB%hc`Cz|SY#@~9Zc5kN z+VRD*iK4Ivea z=tPhW$YCskkYta`W2t*lMiEYNGu2&B7ZIwp=oyry^+EV|9RxG2rk1HMR=cPy0|ST9 z$=hR0^^vo6n%#aN z7U>XyZ(^p$gDl2o{zl6rlo#1 z_L}o=zAM1+*qrNd21pi^#uJ!fS?>6dXU#(?&-gyH$Z37I;wljbOhVl!++!T9)5Bij zq!Gr}p4WyxoDIOaP3gm99M3SIvE>5)%&4>0L~wv*dy)d5=*-%Zc{R>nMZBOiVXq@mhtG^EOlw8 zIFu#J&_*nBA5uY|$NE$0hC z_!(BecIPpu?&SIHX2p>D9^aT129Mcc!sSyhr69Qgo##%5Tujgw$Zo1vu&hNLfFfDifxOc z=J7DI+)ANc<11_=)a-q7NBd+~Ev`{30T=)^5%9HygN;Vm+NPKwm)C2EB4#54EeV8Z z2)M7E88&Z<8Ro-e#{>*e9p`p#+hdY}XxYa$9K4qqoe%ll!@EIl@KcJKEg)Sh_w4dsj0iZ_f@_c0E%F-ChTF{IgEbQ8eIdFu)K~Z$5L| zF+V2~EDnAbWZrwj{JUM+4&%c}m))i|^}uX9;aMpxYgx8;wL^yfIVh{x!}kqn%sNHP z?ChVM=jpWp2`u~};aQ%LY{G>_Ch$5;d;7Y{A6kHh8f;{V$y)-JM%jtUsfI-J|i zY{&a`2T8E4c$B3bsVu~3*Yw8?cRaQG?%wTgB52 z=L?N(VT+Dp?u;`zat6cC$zRycfHw7yaOyqkw7};^Q5Zu#(*h*XwqlCi)>V3KKvb`!{wo!bub83gLKbDR!Q zWHnB8cMVQvDoXqmJgyE-!g?AJ?m77uvsVCGbJou%p(XlRN;CAs3q9OUQ_Ke~w%RMf zs11Fmjia$h6DqGos~|BSdm-MEU?vtC7x|BMDYgnjoT60^wa-&Manh2k5teHYui4G9 z*)KFTA%J_iPYj31L95N6-_WJ&OP-mZ(m?FgoJ=}L*v=U(jxXZ6EpxH;y`9Gjq*vdAo1kPw7!*oDr^zMj_ zt>173a2qj(2r%$_utGq|x04efQZSVF(Bomos(0-u-cFArW()_aIYa{`4&R2_zzl}V zyd623PR&U%Bik(Fw&)#5ew^|!FFA6o_VruaZJ8z%l8t&#Mge;Y$r=~eI|BBPcx(gI za53_-$`>rG>GB)FLc$3-wyE}8mYUgkx53fXQ6B3I2&<<5%d)YF4L)bunGZ#wjJxLR zJ7Xojv5F~O>yn)sWO2TOZ-7bI0$^%o#D^1h;$K&$I#SUeJyek&z5o>m<80jzjqV^v z-4-@vqVcv+{*k~s)oY#+yyMC5w2naBYHV#mbJnXkT*C4>g8O@J-Xb`wHL8t;nGo5| ztdLWc1)5`p<5YG4Ur&in0Bl^_WoL<{67{*~U5;j9A1p+5ilswdJm{DnZ?dvCy42w% z={bdIKl+4ObZ+fg71_&YK`XLTgiZsfLy13@vlCP7P`Lr_u0lbgc@fS_O36X7I1A97 zFY8Hf5YDFV42j5QA8Xp#`KYZ{Q+}VoE}eVu=~q?;a83Y8VL78QrC#-3kMY!!QxkAF zHYC`NPKXzx{^vcopsQCOOF!m>-`l|M;3(|(wi4%ZY9Jdu9BHr&=}@5Hc!o2}!{c8Y zLLTQvI-<{c$idpu`kLMy;-&S|7FSqUcdECf{PPx(px!3bOt!wo0`eE9@uNm)5e1M1?DpeIFlJd97Gcl*_8swF!>K3GzDTRj7V=!nJ3 z#5M1Zt#x+G0hj?^j0{TFei`kD_3)p?65pSC>r>G451V{slb2cjyd70_niv1YB~MA# zREy4O`CN7iOU3R^r4e%5ET1Ds!LQn{C6I!yk2UiRE|kqc$*rnWS$}S3%U8LVPUxwK z`9crZErIG_a)sL4n9HkpZDdcQ$4#Di-G@IFh5OrY!0K$=Yexqx%27t!Og{>Pu-Bb} zc15c%harMO0NR=5qSJ>0|B5! z4l+@-fx*x8C|pV%WfVG+^=ZX+JGL5%8-W<&&G;^Gn(KZ~9K%M~OYYA`S;(_&6Vk=n z6PX>SW+z#7mMXkS%&?87JF+~N%P|xv#2(JHpI0$`hfg@>?j2v{NH^>0+Oz@2qI2NQ zmif>LwgW8Iq9dNrD(C~}7{K4`?!BC3i)(f(5Rq?$L%FbR z%#H*cd_ETb9QQ#{EnD_+y-p}hVcwyj$B)*!d66}aRmS(~Xpgv{qio8Snkc^+%wTn+QK zKG|Y?Enkjp^VDXT)j<}qAAJo6AR(bpZos_r9O7W-*f6K^9gboC%Cq4Q$bhuf>%;EN z88|;|I~%|A%{Dv`z{X*N)`j4Y#aU<7)w)AcetHEs73Ab|*z1KktQ(R7rQ~uUNtm38 z4yn`i+(A=Uw&qNrYo87IDY+6KQ?aj@)!n+rkMOxgwug`HbhiU@@3x%KS~FWZhQ zg?>Zw3U(j6ZMxHFb-KlrpU*Y(8lD0B_?5@zan`G%sIAkMrZ`f8wRTt&7}V_Wc9>ej zqWDRTm>&epu6tOZ!j=XP{_;unKSrZraWpi)T8Za5nzIUTbjfL}1u$V$R!ExLO6h|{ zc>IQIb6X&2unXvMsFWVJeeZQf6ri)?xx`@wf6RD%M%BM8zAe1>l^uTsyPIcaY~2T4Q9wb=$6}Qubrc zNUY^1pecfij88PF2~at>gVmNqAlZtiSJ0l~$rBt9%Sy0x=WDW&w$NnWs(A|entfmP zmL#jZZVQ5nY3Nd5I!MJB6VU)atpJxb_3@|u-}9InxPlq>Xztp%P}Z_pn!kJm0CK)x z(XzteFdJw#_5s!!*Dz*hgTPCy4);hMR#BTm1)?j5^DuOr6wRC`O8W4pm{5Lmr-M%s<<^T8FL6EGb(iR9s)YM1DR+a9TYdd97X zDytRqp(k0EwRT12WwJD#M;w&wQ!Gw_`8o|Y&S+@(B~kv^R`*m)>QJoNvXXgzk6n^u zef46IVN5nh?$?L9@Nr6sOmNe)oD~9yZwnB?8OL?AlF8x2pT+K)AwLw}i-4b^1G={5 z8NmTb$$Y;xRCvkogwF%$pTy11c1d##3_KIA?+u5&v89cI0}Qbjt-f_*PsnJ(5ZTGIM^A>;i!5at^l#HdC1bY>3A6@ zbg(ADIrREhc6@+UD-fWIKxjFUmFutWTbw_GC#dCtM%(vyLt?=o3k1Rnjr1rU!1kgG zCC{83F>i6`_j#=Uq6q903pN`^tAsnK*y`$yTk04&rZ=4SON@X{+XsohOX%$w>0NRO3;!G1mI`z+Ri1p_aK%4O>^a!LT+eHSa= z9WLkaS925>GTr_N@PoHSshbEr1qdG`gQ(+#*63(@RN1LVKh@X{TKbC59C#es_6=?= z=*Bm4#No7`eO-?D@AEX3bPqzDAha#hbR73gH$>Tk1cV-|#WgL}Fx1b<9U&>S9n?~r zscR=PZHF$7_a-=>mM4JCvUvw7FNd4hS~&=`Lfd^`Pz9SfxdeMBps;O2P)yQCmgH3+ zf??2iS&T=jvn)ODb!xyV*b|{od z#P>9RH2Y(NqBRi~ta#E0Aw^X?Up7K#pY9_mFgg2}auCGxov?He@ns2;6Z!eFXB+8c zB9epjk+e})_q>R>0G6R6vaH2+g!g1bAzZA@skvm$woYTN&FVmvr}K~4-{=VY|sZFn%w05n50`Ls|vKAfu$XTbjB+Y(@wz0g8hEj-MV3RudT+|uY=N| zAQBea+?}Jaoi~x3C4Pa4PU$K)<`!Og-Wm|c?g+WfI(3I#C8zOM%Z=lA8d$jXTx-y> z9FtZXo7h`B1z$GcI|UKyP%UKgd?gaCOrl?&Ty*En zu~}HDJj)iI*HdjSgSU9k!=AeHt@jsB0u(fqQ4kG%MwKIXr`@Zkt--Rx=)f)bdwZ}h zr(w@C&T)OnH?-9-)%U$Pny19jUW+@eG|F7(Wf@%F5r~0{R7@$KV+R;n@X1F$zo!&Y z7YOOrB3cUhhWiW*ho@{?BJwxXYp@+BW;BGoW4qqGJs@(}OoQv7(zoNXGvuf_Uga}7 zp6SuA!);gv{K@8=aXOT7C+AU^`N^m?_I!Y5MiRW)Rt`8u?%Z?hmiRb7I3GgrJ7YtN zuHWF2|8&N7CLn-EPKjUjUxV%taw;DT9RYD$jp4kU_cvVc_x1;aA=(HDi8@FSQKE}( zL~o-7K}3n(doL44Z=?6lXwl0ki5g{y-iZj_dYK^l*XM`lUwFQ+I!!x z>)KnU#{5f-;{yJ4-yms~Z@3MYGs-AHXVX^lxZ=+3-&SPixCLmI8nSO+&y*xHU!CA^ zCV@9Wmx*b4XAizWIemAl!XKEeD8>fm0d z`vYPHF;N;Y;LD&z(O#k=ppW03#HeKe!NMpet8H0CRE#5MppA8{z z!bCqqhiWgT)}zD!eWNyOxY&drdoDg+?=1@xybeaFvNwLXa@%LFTFb1Tnv#)T8?$@& zUA|^06FCL(TJZa_7+|Ii@yXfRi2Ob^_%+g{Iad_C;3CyxY?Y^BiS>^_bE)V5h31<` zHudbN{3zHL(A(Z-$+oY37Wa=Wu3G!|mTELe2fw9N8YO|#P_^tly=$4g)Iopy&yJDd z4SyuJVG0N~{#Y*C=r)+VWs0d_I6YMGX%#t=AeT|EtHV!EXg=)TXRznnsrcmjfehKl z^99l{%*s^6Bh&t25V&(&38)Lv0&JLVyD z?4w*iBo6YOs491f8|u9ES{kwV!&|)c+3y=&Ri1=F?#s`ghf(VG*2jESq~30sE)qp? zS@CNP>AU9I*+91L76rEbGXj3P_Q~XvgMrQ>5$8L3Dr56?IgWdBR0S`v%dJN|C-?6CDBQ3i@79mLAl-gQO8cC?%mG6D z(&L+w+t-;eHG9uUHrLsbT-4VOl#~7p)tl^S+Z@~P76}nY&$Y~$O)5pI0FB|Y@gFnb z@j`zQ_E#XhJzi5r;4~(nFFPxR(CBlsGw$!_>fjrjym{qbbYO4LR;mk|1!THY)D(D`*4_SXr=P#g0qjfvSalseb zp`$_AcsLyK+8T54Sf>lH|HaTjU2XePQ=OwHEhm7;;3cbcuZ9y{IF-2JxrMdmud5T< zN~cZ)BYH_rd~9@FyN)3Geb>Z5HBR?b)zDi5(C5fdUCZy1l+pX>x{OwrOA#ntIZvLF z$8Z*6Fqh#J=gBY2w-^jTv#S-Es6?3jf;8GOKu&BFC<1Y;ViuxNg9EN-2KUp^Z6noR@7NHLRm?ej` z$?$6GQ?TD?&PS!L+Z;-kT6YOm_$vQ`dp`Ovf!LN${M+Mt(o<$}W+}2|@7JuK%IIFE zjb2j$fA00gjYRO+v*srch3znrT$vnekMoCb&QB>(t(dKM;2duA;t!sNxJxR^HxH^A z@0VL5CKkFRlgE6Xl9imZv*+x$;o1Ibl05ky;cc;z*l@faqUf@Ba2)IE@jLzV*V0-L zkBDvDXFYquS*vqz`Y)ttfa|y${ZZ^!-0EzZ4laOls$Njq!4IRvuHg4&jogH7>=>pH z#!9jiAQ;1A_(O(Q@rO>9MQ?4ezloEdm!HID)7&^#({ac? zah$?!IiIaNO@Q-B)& z|3vBuo|IT8$MEm%%k6WSK00{kPx&K-*hxHIDn#eK@SdvNzf8h`=Nw}8iUyaBps{tX z%&la}vg(nfx+quAEyIg~T*=*Eeh1+vU`EV4!_dBrU|iM4KR0eP$2NZbfe|n9;zF_P zBMjUxq5h|C%}qWc=eeThl)N3;^UlhDKY4H`dhNQ$%_UxL2S0h_x@y&|gCTSmwLHBQ zM>sQmM^_2SEt)HI>~;MT?Vn)Wa3Ry^!$pywaY=R=y_jUPZh3vpz_y?oqDy5rlbX9f z>f)D6kQ$4h6ITR&E$!l}CgnECOq<6%lzF$VxdHkn0jV0_&U7B&b6EDYYRSQ30cgi zt|V*PZ{`@Zwq9;TNhX;&_d&M1hKY+VnNE7XPi18Ai8@1`>hsym%=UEU2NyBn?kSGC5U@*z+{e3nGv z@;4T(w#Je_89d_vA3qd<;-I`RrE=IA}_;l&qF?qIF@|gUn^=Is~_lIwOlg2p#59*$8jOzrG-YF zffOPk!()^CXs5jPI&X=uWi?Q_WbUeapw_Lxr)D-b}Z=7qHXydlM=s=3_xvu|J%gSW8g=xfy z^N&SmlBP0kC;wXi=+*wR^DC07Lw7OgWNiMJkZ0%hsQ%CMfB~WP6&SU~6H=Hih*YxT za96smHx2VaB&)Az?d2*HAkJa@TEs}xKi`RC@Z4W0S>Z>kj7hvLOUJG2)y8&)%c-bc zzuxVfPDhUI(I zO5dyp-C`JXE<^e19@S;Z2|LgTaTva_AWmi0EM*I-C%KN6S_}>fy?yJTD8vTSX~=Tg z)j!gm$r<~4F%|;~`VruiOmOpEw#6P#Sd)GE**|9#wNDRxIb4Y)ph>9lrxmo*;f@8Z+B;OMq1Pem1lV3&z5-zuh{3?^Kr zXO<;19tQyx-@!BF;ix2mhHXX}7*tUfDxeXtV<&h2q@gZcnOra=(J7YQM|Rjf!^*8szKgmVKT0kCivi*Ob$ zlj~UrGZzN~AfqcK685cVekN9mnMy(dwglD{%nBsb8H|J}g7CnQQ6+h6E0eGq8Rn!% z%O4Q{oYpJ~^R$$%(QU(0b+%|=3@aP-y`4d-4IQCwfVg<$%gTP8WW?;Q5>~`9)#lXj zO7eh5h&v&36~zl5QM=*HawSH_qwB7sd{yl_&| zz<4`&|DV)NSdh2N3BeBwz@uN%OWzLcIm@ZQN)TLx0+0gS1BDG8GciE`EaJh%%28SP z%pb4mWeJ$3YsiUlKPLE#DdNCUQ6M66etzLc!J4h03X~2r9tpYEdy!==<)KX7(|VmR zrAX9Lo21UPm>*T~*G+e$k%+mu_N6_qwLmwKZ1l~uH@vYcrL`iopEBOQ%28AvM#{1& zJ`(9*PAg}HMFPuFFgOv_XFqAUU#pQEkU)Zt0ZPFNASZ7r?^hA5Z1Seb2}b+D>p}oM zqcoaerqSwFpDH`*!!1Dw4Ml&wsx*jV9a_##2$$R9m{xv5JUE!!J)sXn=JbG0>%;}c%}_HW~|%zi-3*W%@P0N3 z%S`Do!%|nVoaWxr)|@R%)E5x(#kDaUGhzTg6jIaXP=OX_H8en!`HiCnukg)vP7X}(Z=Bz+cJA?T3xlk^fvJ|Cpn5nlG6Y`^ z^5sR^mx;chAe^cY(amBG8%kRy+yg7&TD_j06`-vN1k%$3Mx?69BoUK-**ZR!2EYO9 zI5oBA0D8?&#uH`kJxU4SfnZR(BNHBjBSBwgEF9o2_YDsOk~Vb%>Vv(6fA(TnvI#B> zw@aX3^;kU63)|UgmYJpMaP+OZu6h|({PhTI%SSSY447(@sZmy=lBSRD-C@4y+?w`~ z6V%28tW{X?YjCJ-v-ArPA$I&Fd9d!{t3+m{$l^~WvzDTCWZ3#YHP2hJR{HxL(X>SdMKnEyH_DE&v)VwhIJrHzS{{V8njpASl4y%Af8% zZ@x3$6iHnU-ru$^0Az_X0Qk?|J+?1PFDBN7G8HBuffUko-fWMJh`MJSL7 zg`@Msjo{bE#^9{-a^9CH%Jua*ja)?!l zO^3C@R$0{Y3ljyjkC@mwZ0;CD+-tMt$gq0K2?bJ7K;Wt$alj5LLK;4hs|wqs zn&)nRvEsFnhD_TXD-RCVR7=sEv4dd*DAdw~EMnu}w)4f#fC;p$ZF;yMh!ti)3~n2L zBFFb?q!Bub)%n5o%!(LX$Q2#T>08&`+TQg{D6EuA$#qPBPJg|$7&zR4ppZ^W^0=*P zQ&~y4uIKV%JaUrq|4^#L7Q134nQLy1jzrnCEG3H5ku}W@4u&DNvc1s8)n|8is}kH^ zepUtVGVC}!>W7p`-3llmeI2S(m-{oRK73viYGZBT_MTbwic%zKweC@cR}IA^7tjz} zkN4Gus)f8#jO1v(ht907*1MatyS)4Uw6#0u`}@D3doee7&}rHI#@c1kJ??J+5gTO& zz($`tLlFnWT%IqBgdCa)O5;qk%r~dI%UIgdh9WpQzzpEkR-DEAO|a3seIY^|1=4uW zuQ<9X(%&xWs(ao+;j(jmZ&^bboSgt0!6y~2UR1i8G%k8$7Hp(Zs^fiu2{I#XbZf>( z@p7aQJlkf=oYkt@-Acbcb!oCeAwY^mb?sT?cU3S#(XX+%un-mE>=j(SYh$1j_Psa* z_#w2IFc0;bTv%9IhhGtb3*z_ER|51=YR)}VUfSjFnPvR_!s0rS6d&N*s!)~3LF59~ z!Z_miCNRrd=ZC!Mp^YJU9-2C7vt6*SET~q$axfarB0joqEETiyE*TZ2n^)QvU=e{H z+_*J2*gA0B_zF^y6OJ?Y$R2wc?^f+1nF}VP`6wFwMZ>b9q!?*vhALD7#luozR%$w5 zh>4EeRu6>qpI(nd8yhQEpE*mmWeKE4L#V=A`~3}n^yRU0>sv{N=}-Q*TODolPgTvk z!J%fH^lW~t*gq!Kis{zFtIc`M)NTa@onZi6903?hHURvaOxTx#`2eHfwDDfu{E0+C1GWa6t8~yaRzt2 z{@^*U$yex&Q+wM_6syp7(=`J$9GQkiwQ z?m}~sbzmt%9zTfP@y?ACHAB;*3mSHtX0zSOhDJf`{mP;_ae0yfRZZD(5mP%f-#lAH z^Ww-aTAreB#WetQ|F!$)S}{hX`hOwJu4dSSt$7(!NliCwsS8%T;LqA_LoQwf9G;%I zXP1d?FQXP=%5xqZ+dJZIOO4rf9D^HmNSKN)7!%^bT*=ff*)q4_=u4r5S4R>+`Tg>r zw|@uEh=6+rlJyM+`;dd0e5EK7K&_SK2C?O+Ox?hX72UkQdH4Hi_ch@4?rW#Jw4nR7 zYr;6^))%s&tnvstoi7BGthHydXyT^tEdWX;`8+U=EDETr8zwV>L^6FWZt9aV>|~7n zOGyk@cG+z=?v-H$qfp8tM~2j9ppPYwQAX*{aVEbUFgSk5rKq8zruADO5p%bBJ9*&G z=yD!~1#%JD*sv&TMX5@?XM&jtbYkSkg`qUf(B66rA3oD|O9q`*ios?5wR&bPrJ%m#>RHn!p zs(3w64l?a#MmUrEf|vpDMNqnRIdde0v_cWiBp%!p$kIQGkE1-&-LXQb$*KFA?YzjN zEqS_)S}j1BNwJ~-S)*`={?J2_9j1S=P(5u%1M7YmP1!cOb;w{WwcO!5bCG44Nj^9j z5n%*ojHqF}x)ebB%z1Faw(u?T_*urbUq|+?gAq2FqjqzVbC-uxt~AXLr6rT=T5Ru@ zw5|+x>361C>*d>sVs$vAkTrn&N`q$U{Cn` zXPAQ2j2EXrk*>TvYrc*T+-{J%ZW*S!dktRCyGy&DI=cTO zb!NTf%hre!J|#mT+izHM>O_T#k$xbDF&*6RR>+3eKCqLlIDSrE~N4cEzXYd8hYQQ$37v z+q7j|1MSd&eUF6?NEka@L6D2_N(#6GeS?C?vVYV{N6;WsSF>~LwG zF5RgDM1sU}X=o|)wf@D#T7(s+q7>oH!vNWDxj!QGJ~*>#OvPU`Bn$5-s7s;&BpkEA|-d;+q!I3+t1`;}IL*rpioziY`+ zZDsJQ3}xjpTgR+}=A*Y@aq(phtPh%2@td78Or@eJ-N0L1Qk)x`?MfCO**+Sb)=vA* zD|`I2k@E0@HXTF!lz16;UfE7>MEospV=O_UkHM&+t(D_8^TqW_7vrh8Mn6R0KzIo$ zxV%z1^UREslfxrGIWk!L0|Xk7Io3BTF}58xQ<$`3ZxB`T!A>hNTRY9|aUPNCb_JK< z_E=Tj81T=h{{k;Cn>=?;B414TAvZZvH_6@C3im0ry+uAG;#}e#Z6F%R-+UH85xg95 zoFX&mo10<*44nkwQ;@*FQNR__35m$%E2W{JFcvOAq9SgOS;6-d^5~BU0*_9z^+QSv zc8b5AO;(D$9l9qUM>?``N?2v|V(5iAOb)OZ!3Z5Pk2{O_P5*1>ivo2?YmG7ev|hCE zT&-zY{My<}ogpoh-%wL2%)m&2yf8->#Hs{n zJiDnWGlf%`wW3?P9oQno18mLIl;877j#ib>ScM;_sDu-|e+3dQLIVY4S11aQTolSU z$%Gsno2u0iC2azzcG?xQm)vltbrQ1Nz^yy+&fNr;*DapHR@sMU0QSQBZ@^QA;%US7 znygY$MI}+*imig9h=RQ*@L%wVSacjfWZn>L}7G)6dWZFe|B0WF`wJK=_Qv^otpL#Wiw7) z7#&6V;KRm@l_%qUa$oWezZu6atf+6x8QAAq^<|!9w9PE6;JCMG>sHF^omi?bR=D?2 z$wUVeW~>^U(wANJZkz~5gR(IFQkPTr%-@*JlfyQ$lVgiWu&ZOrzOV-1f`L-BhkWn|N;ei>gdv}91;e032u@u<Mi{ukg=u9JVl= z$gLEErhMw<%Ga?Uka}Jcx{x?$VG7bUBccl(LkgXeBwTrDtMI$`KS;#bCz2=WsN8vK^u6YVH`1<<#Q|?y(=AC%B&r9sv3tEl?=`xEyZK0yR`HS(4d?+=Tdo&(! zUYWHAdvbvqzU@Cey|QgsIhT_fAG!1ciap|n9-ElNanrZFH$t%3WY47h-N-!LgB#|0eaNXhV&3c zibz9Dj^gpZ>dGvQ!G^Yb0`NNH%}G!W_WhHK1VQo$&2NArTHs@jVqjs;bQ8g^Oc_l& zYi`z;)Rd5dNn4-N7vfcePrG5n&mfAe(1b|vF$hmO9t6rQk)Omn9-ym9d1Pc$Z`Dz# z)M`td|5B(blDE>s^@Q1>Pdy@@d^^JQAry^wT`id2&FCKm-ECekX$+d2Vgj-KOShhO zR+2oA;1qY4-FMMPQmXe?YyKYB&gsK^9_#1xFYosocxr07yDv9a2IHmvX3eDue@P;8 zLN!Im$pTS2YQ=rNZuhTOeyqr+KsaNp)UK$dit?>xgVlmgc;BCWompd7(t|u%ugrY~ zK{$JV1K@QGiQ3CrT{BwnYv$|XLtgnU6U&OpDJqL!j+a*=N1TUup_Y)W$EpSDf9Omw zx+Oe*@}K5(_2iOKztLDTB4HeEP*tA~M&`DvkIris>~+ zS~zIS1p0(%jl?K&^YCF0{M#H4JaM{<54zmG-~GI{x{~{i=JcnWLa`aAOLmkNWBg!m z+fD!YUCU8-9s`34zVOrAR!s16U`GSzK-V66bEC zdn9jJPc0bnNszCpta)It$>TABqVbWV5Gs4M7~>rBR`z+pZ+9_0=mdC#p?EgH?Fm+xI~XiXD$hFRezEw5fHslGHwOTgit);4^M_+ za3?%$X#6T*c8SFso>cXz$_l&u2&}s+magqctVLGj7pP2Gxnghf>yG?%ukaGza=T<+ zoK{-f?54Xo_lT>PmzNlQZB32N%qXU6?|S)S5X(`aK61Kq=s0hGo~ECMj=qk#o^bIN z;Zk|szbwn@kwf{LAs_Ci^8FbhUbumvFe-m?R5o2e`|GqA#tnGhyX7gy({%TaV*TiL zMM_JFb65F|%wo>3Q}@7=KTMA2PYsAr-kuyy4zsPbo@Ldc?XR-3U%aaPxsQkGUi+XP zk}u7~FhLbz%4gtzm-pJ?1Q2>R8j@HCk(PV%BXeG;^?epj_E+wadOFE~4_#6L-uGvD zQh_&HOFTg*cS}c%jCE~S6IpXo?TaRd;qGk_=cNG)hb;wRZdZ4`-8bH*E$F#4^etwo z@>cTbDs$TIOxzuPz;NoE8Am=yNPA%}3}?3v{>oQRP}E@j-L4(mH(FD+AeYk9?5W27 ze*K(C=9zCW#S9d*Zq=mc1(+rKZ@8su4I(X5iSt|p)l6KF@g!5EEeahgWj#<`y8KJ& zh~yoMt=?+=nXR-gn0Yd?oDfJAGAykQ7=n7L9W&_`>o-js5TyGxa8}F-Xx3{srKD+w zDj|ocHLc<0Rv3C2-vX-%)gdsfihD~*K3#A-H>{{+K9&Fh$d^si4JY=Bw-J4frF6#p zjB{6xwZ(4E;Qs>W*8k}`8dUwl3NGMz(X+gH+uuC;cttlONp)&rRHG~z;cmRR-+cQs zb_ru6sWQnF{Uz*y%AG$=yY7^y%YHHlTcL}Ucx-h6YDLiK!Azj8d2V{~C?##>V!F7` zulmKeO4PB9?`^8i_HH*@S{Q>^5XXc;|HyUON`S;{_X=)+*@F}aAKq<+d4T0S3eoI@(oEzzV77@OldT){Fnc?qIQ~K9X zCPh{!Q=%~S1R26qvFkVV>LUJ%Plcxum9bqux9_f3_Sbaoubd?hOMBm|(|cM_o;3G^ z|L*pG(8-PB8i@KrM!=Ri@;)WMQT#&^f;e=`alO)@fquG}#7y9eL{(?h zNXNh!7f;xdq^tZId}yLkw&B^bH@JS{&2G~5!}LRE`#G=f43d#NzW>H!xMFYHGBYjn zN^8=-+ULuVnU#!pwUt%CoYagS2YDM~gyTNlJEABqkBkwUOe;8YH`?bArc8@G=sy$= z1v#zV9rpKQ>Vbm5!c542hjzBBbfapfe?LbOuRC~239`ZRM#p5G+}q(zH)}FK+XC@@ zhB@^%)a3}-vjoE#zEiv>ivGGySCBGN`LnHAq1i4tU!j*tKV0A)W(Oy@RGKNZaBiR`Jc9nKmRxpk;pFHh={n%y10l}c;14(ok5T2I}IM> zzftm_gc#3}_KMi5GdfCnqW3C=kGO~>nXvl|jnfE4{x^x$p=xDpFT5=f24y_1nw64T#Tb}>kIy*U8Ki?>OgF#Jqr7`vY>zoPsX97=^Pi-X51?Y1g$S5xm}# zRW@GT1klte8R~zH)*|{T{;8TNxzEjprx@kV`OG_YDw9&WK)}dFdptmwkCk1+67*XM zZ0BBp9^qVlWo{6F?_K)mSrEk&3T8M;gRNFrMfOF#CN6^(*OnEjrjl_BChod-#q{>~ zQ;{`uQE|Gh>7$4f!>KRDBitTUFJ*{-i%Y3b;nHpwKGn}N?Y=tL)0bM@=jMt^=}~m! zxQKt5eQLISWZy{cPqH4$?uVT-}6`qj?e&=a^e=^uji;C z3kP(b>$xLY)$G0}D$8)_bM0^6YQlVJpVQ9Xo(|p5_SL_ux&NjX5$$MD8}joag00o1 zuH5o;H!c-J$ux^AVACl_iVO1ar0=RQ9VmasN;PSNGx`7X0?-IPQp95?*22#I!#GzF zS#3y?DCr2yJVRM+H9cc{2CCMuo~fGM+R=-hrB-e^MkaYawBwa>CIKgls}x0}Kjw1w zW0|BOEZZGR4g&{P&28{9)-6ke7jEPiW>ZJ07*$^m1NZI)+hLWahjm`D5$g`T<=nnm zpBjwl-8lS|hR(jeYxnaA3c5f3cYI4O<$rg%y~3;6ls?|i#a@V0$&h0^{EQ-Mt7b|a z-Sud|MvP(XtatEeeEZ>~Xvq=&#&MwLx!qazRO|C9-%&Qr)vmU?GnO7q7USHziS%Bz zWZ|GmL+m5H76KzFW;}PRR^SI_Q@IloHF!en)ymlB*SlAvt3@9H!V}H%j7wwd=~!+heK_p zVr$sa9VJmR{P$kwd+i(ZpJ}xs=UZvF_OHW!;meSHe)9mmXnZ)YgXs+uJm~NPN)mBW~ zxx+x#>era2X~F*MmF4r-cGjQNX;6ZuDk7t(x3tw^Mk&Er22go8$UlWoE?W%-*&&PP z#o8WLuaN7QY5sL0Z%CL)R<;SoH~a>8`I_cX@I!Jbs}A@;d#Ok2BhNa>afW9?G!$5*4rka>;KMew^o}4T_87rH|gPrACSd_o&Noo z|7Tw)r)>Hx-fK{rY@=gz&HvUTp7q z_JAaV&jN%=ZavYRt*v@n4@z+fjb<`?k8QQEaNg}zW%%vcHnm|Sx5wY<_J8f%@+{Y^ z*-h`J^R+W%6Z?c%bDmIAgoj(dGG&P&U`k-m5anb3#X!~W15JPaSRh&;%&r5+UF0_BTx6u z-Nr=gg0V3v`Z>nPYf{U=sJckCfW%tS{ON(x8(m4!@RdHAaR!G6mB_Fuu4!k8g{v_1 z$+M(cQ9hi4vaR354YPIG5Sl}is&r~$ZSV}0W9(4*Ar8uF0?JbKqM#tW)@0kG8Q#!V ziVL0w6tTHLlcAI)^Dw+j9XH3jeQVEt2U`6%`R*cj<$lek69z_5GWVoP z7O81~#W}($4ceYD(%O@;CBCP9)7-J)L}K8(wX?L$YMrJ2iy8U}G<)~GOpACiyh-)* zb8Lc61g2kjEkIWzzILr^q&KybHM^g&JsZuiz45y_ChL18BLf-M{YmLa^!iodltmN6 z+t_gv(=^Mg%e0`|nYp#me(}aV;ipf9d%vFj#^jTVW%f2$&iNm1*hYFP+sFfSwH#un zFkAmsdVoL|y6p}aul&cLcAxo0yeHLD^KuX!X=BoShk*(0Db^IsH>yM4pu*E~iqCM7 z(FO6J6C&fOonNZl33C_Mp8G6izRp|z6U$!N)a=RO^nx#G5vk6b4#Vc+>vfkx=*I7= zzS?5UpN;1d!~PpzE|<4^(7)Jh9LKhVoC;^cnXWK;cJ$3}quzU~qu?kD2jg|!lIIZz z%sHw3U)qjz5{4{hY^y2lA0gekI@*1%7nW}CPR~AX9%gal9fgM|( zD{(3bvayQNY2-OdNk~d^W9!$B!u4x~veb-I8N04cilrFTEnQ?+dRDYy@nYkWBob^} zmw(Je%Ut-+<@D`jz8;BHf^lY+)u|!7u+$PREcC~GiK!IC{yLjYHUsGpt3N)tct*pl zF0Jo{exz)BktQOT1S?4dRAU=6>=QsU6nyQ>9|Q-*)I%T>H{+Pfl@be$6?K0~4wjF4 z8<7wr!Lb=~u-XojTwA7VwsWD{8@t!v>aS27#Sh9}2Ta|NVYSPrbGbWHY%ShK>~_ER z;QBVOdxvYj($ieOIct6E^z{7N)c?+^?BsBL-MKEM&n?g3qyF{E-X3P>cxSIRFwnna zJhXV(ap2aIafX%2c@il5te-ul5W_@KIY>*)3L&aUl4nwV6|iUKXm!Z2s@I+K_Givk z`PQM?i!H~LRqO68dS?e~hJx1yPkr6Y;Y!k=nnRL{e3XC?4a47*;a{AfTFMMO%AZXu zwhlBlo-Yl`WcoR2FBfZe))~4_-&Tu2eil1NTi2*@;$sHLZ0@w<=MZZ!QgEDKK8q5Z!`D=(| z;J<(Cz2w`y52=;YBV)U3{E+W&XZaYG4&3`w->7tFSxf|A^5Mh2r}>-**i(#tG= zP3Fj_YI=VIWe(~D7)n=vhWnnt75IhY!{y&00l!Cq9(b3#h%XRpZZ4&)>({K2FH)vE zRO&Mm8;6X~hU$L$Ce2<(B6ZWELE%aQgh_rI4~N0Fx)?q9Zzpf^uO_~TS+Tlj7dJM) z0sn%uC&Qk-E{lvT|P7a zlYH6I-5OYHIhDe<6yMb<6paxfkti)P-X9dMtwp)76q*A1)%CFbMo8XM=&e1b_)CgW^{Pa~Y&XA9acKPr5;i-I*J2J6E_=`IM=b24>o(|FP1#L2L za&KQ?D8L3Y<~h_&#N6O@%!eC`NNe#dafjmK>J}A&icmUdQKoU9{n=S`CuHo;fbdOGzJ>4*(nnoJ?P6dv##O{0O`qGFQKac+^{FZs}Q7mS&&6nL9&j2I2+64VQ*= zzGXSjy_aMYl(wOlZ$JGh3;nH1L_Jgds;Tc~2%3X3GL%A3Qg9K6nmJ@Ec4p>|PGeQ9 z^(W3#N#Ua}TibfSJXHq7x++LH?IVMs<{Nv9v~{TMaS4gNOrKU-JdRBtldI{pge8rO zr`NYmYah5gy1Ij;_)<-h;cBiVYwl+kK^F(>-ZxiI^8){s47z$>`|3yKFdk@WZ7tYx zSXMMS3SX~SJ$+JKIvuGg-Po*vKf{p=8&-`yIiAg9oqSe^B$a6teDOsfR==a^U2`R` zEQBhxBRs`A@Iv~!hbW2|=55E=;%vvxF+m{qjP0YkLsz1+(+i*`WvKn*qukHl!aN(h z@1i}lo~zb&R@t%16mT{O$%}IBP5qsJcZSQfOuO2;>(Ql)2aIsLwOD#NCiH}@0s)Ue z2stW2D=?v)I{1xeLF^e+5Wzw?X1!)KK+j;%{%5eue9V%=p|9Jx@uFjk_Q~PKZSTrK zTiztM4fETV~OVOl`nm z@6NHeZ>!&YOqOt7Kr{WtTHy7}iHNc3-ptI|=H{6=X3ZaqsUNj6N&RHvHU>#@^Acl( zNY`^&F8}T2wK_ltmd}(`j6T>IZK|D(g&UP#X~?Mrt{}cS6X|Oab5QC;g|jbua|&%d znymwp<>SiJa2jxEc=lL5o1J|Ywhdozt4O_T#L##*FV?z-L$Q60Dt7c^kV#&qTuLQL zhaABmd4cNgrX+F9>&@i7ZUeSiT!u_onpfxfHu?f|@9uXqk{94px7UKcb8ipmxW4lj zdl5Un*3}hwO&k|}@QV8K>HY5|#?_$eMlUCm&vms<&s}nfwy~WVQZqUgxOB27Muz z)M1|cGP|eWP-}Qsz=`XPp5c$Bn@6~ulW&Rv*&4v1tJ><4A`h{jI}SD400$CSua@!? zC5Nc$sE)URm)A%4b1hy$O<9LHbP=}^dyKa?2SLXkL8NLRvZd(TGmqgF0S#%Atd%UU zs|Qehz4PG3br_W4mzRSLC$0o=kDT}y|2QZcIq*zwcsK7Znc-u+uTy41h`Yf%_F-2% zBjOLzRTzVPGl%@^pJ{vYXkS}7Kq{B4Y-tJo;6%Y#Z5*l?jINBTmuY|VL_0i057uM> z(q_v|QLiZ%J<-=AlT1a(60T^UzsAMWB{~$48`5J?b>&1NtK~b_(vRWn(2kV@5^8aq zaE$xo1Zhg^tmf26)fW@2<4I@tL#tVT7n`ki42u3m8C2WW8s`L{{Kh(k9f67JZ*#t6 zzpDq6Qm6?_%L?F3{3bts%=N4>!TR}-ER*5Su(&T;ixo`uh|?$Axvq15DGfI$8S@%9 ze(g6eU{TWbKNc2at4pezw&~pb%{z{;zr8#eXz?Qmna9}YBwAldiM<{)=ZHVe#uEYj z$D;o0V_axA1urFI0#uPOC-<8d?*^U&fQT%@O^NRd>%f0ZO7r!T?dd!ILVafX!tym5 zacSfieBptTS>j#ZP$uYq*9D^uPxHj@Z?HTj9XIxpQth3cYmUtq7kd}_!sO@z56(Qs zr!#ev+KE-{aiJGQ)OhbcO7PnhHCp{tefJ78ic4t5#K)YB4YZJt>750#(%@?;2JbKt zC3rKT;vV}V*-v==*`NbJCce1khoKPZpXdY!`!e}ToZkme&MQvHgm6;4^Vn603H_$< zeL^Pv4tyrNM*Sr*m@n`^3206Np_BzE1q%$%$^YT~M@^vwhEt?Zdt1b4fi$iAwh;(v zR^Z2y^qG+Q=m=#*zEWLqZ~`oRASj0SZgr;n->c{b$G1DpJlsK7o0sJGa~o?R zz-IQ59g@h$%*7x1`K#aD|NVV_eV60X?V|eqysra07lN#FCsj6;Nti@-^6R~vQIpvXaK_-Jx zxM7XeV1)2tMO3L1S3LFSV)x{fDa@x0HBd^3x`Fm132+D#GfN`uN>~$&v@+M$EG7lL z)Cwg=WKdUxNoOl;voIy}fg)KrSsfzzfq2#+!6Y%RdU6atoj9V%#+FKENWq_&Ii~2* zzj@QRmx_0addYQz;(Zfzz{$T8vV3o7DC1b*F4hvOwLQ3mguJl>LsWchQPPp+c6jEg zim1zl5yqRGnH4naQvGmsZklC*U~Uc_Gl!kKZt7WAp!D+PSP8}L5EFz6F3E{Ng(h;gZxls+2s44mSgRj!7srKoGbU>CI;2Sh>K>xP07hGQyqAG5x&Srhe00;<)UxQI8bmT2N9_5nQ<+PQ*L^O zLX@I1aS9;k=A7dU)wlAsJiW?~bIMXk*In&_x$MN?|(K9@Ed5614 z#`n|BOZPjQ-DTL(Cq6L+faENHSbB_>Y4*OPPe*saOFpI_KNKuW(+i=rK5l1$j73JZ z4OBhW&qf*wIZHVP3ih;X!$(a*zW>WC!&_694;J0e57+*n}D|NaZmRL1*N+YN!{LpdQE zq0PNyI1?)s5=HbW?>tMcNeDY8+k?c1x<)n8*C)N%$YE22C zgm*=*vOtCcLSQh(<6zcV^X+fuEhF$K^6*crQAJMv`K7I;!S(h3{kt?iBfD;uf zRjF9tfadWPP?>p~_UfUk2q6FH8VNH<#V%CYEzPzSay4*0zsgPFjKT#( zdOyGiJN>{!}lujIsGM7%Yu2qmz5XQQ{8zE~=o&Tuf1TaiU+qd*Ae`CxJat zi3O?6QLPHZh3XZ_Nwl6y92$Vfg_qy;trgaEY* z>ttva0&(Ar%@#t%Kp$8UymHEg0xGh?-jvL&IEZ!L4}&gL9@12d12oJ7NL-aY;*z@r4I5{0%TwDEz zw>O&pA^1Wp2CGy%5e0NwjuX8BFxShqFMQ62TP1$a^Tw zH4Pi|_(~^GRD(}N*R54ZDPY9KREo-cd=0ZvvG3p%VNAH+|7)7=10dh23J?Fc_a`wW z?cI#L*e~Hkmk*DK0Gcs?r1ul)6*$3thEPC;0ns}muz`&oQKBq>f`RS-0PjE$zsZzR ziaZY1NFP1C`Rv{Q@he&QZhpGozAc^|E1yx(t8VCbE(7MU_@IyZFtPH7!NNWqH;5ox6cADnX_V70L} zTPzk?k*~K~h(T+eWhurm44}2n^K1mbPbSm4-X7XHZ9*6Y+6oc-zLx}fUW{PtQO2$m zH%+VcZ{XAriBW6KTI)O|1qc|EpfHW#qa-P$l!&y}7D4$GfKj0Z(J5&kP!oKdF(ja< zcr?r>M6E}+9)QV7K)!poA4L5mNTL{13^95_QcS1>KthN~L?u#$njys~35;R^N+}X^ z8e>fm5)uLU06qrB0N{cbiiTB2{BdhZaIkI(0gc-}A^;&Wx>xR|si0sgq74>2Y0K!h}t_lIQ~0232|Ax2F`YtPaT zZrHbd+dC7bYnxr&HyjkHZ9R0oFY?LB@$&feyeKBUOHGfYtJ(6rnl4CbBp@XOP~zX4x_gUk#Ojn5R*U*F%StWBJw_@5c=Sw0AdEl9E6g1P|(E@ zkP%~q6pb-?o(X_=A;gGGf@5>1Noit*hrJ=<7)?3Kl44>Wg_s0mKt)Q2*%2I6XCiV~ zRx{m=gzG@$EmoE=CxFda)YpnW@# zU~qNcZIzN3LtU?d@({UghY%7gJ=*OutItlCkmAkFU9)c_hOTLbzTfWG!XhF_$Vvet z5;740Xswh|(G7lZeb@R!V8Di7C(XBncCg zWzlu*NGb>+0-$9*3?5OKIM4InNJS_nRhC&lM25(ej3&jP7yt)=sF)Lh!xTqFS~4P{ z$RrRJ(V7_ulCVV0K^d=jU>%ZpKZNi9_y4)Q{PN$3{^4VQ0U|C9gjzbUJ7I+$Y_|K=rY6qw>c|DEn;>XN=Lwa73UM4t2mmQ`m8x}GH~WX}X6;?aC=g@tUPQDq zF(tzppax)@7m7{WhHk(h%BSR_2Zd}%WKbBYoI~FfM$IOR>#N%!`qAT;q{`mQ5JOB6 zP&BhOiWxy7B4|dCzyy8UFpH$rwGCim1Q3^^b3uY=C#LRU*T#_8nA|yU4O4QV+lb$5 zbQC++?Y$p#X00{*W>+`ObXLt4^BAM^PHXFZYHH`aFlUH5Ce&=S0`KZ9x5vvx)5~{ZMLD1$!5UHCTDM319*o#OAQDRJS%)q3>!Qmrx14qGn0wIi1 z#)u?sGOaZrXIWF{R^7BZXI1X^!MPO00lBP5^MyV; zot34z`f%NByw%gi^y1a)*LIo-!QK6xQmUv*VlJ!FW?Ar_03oLBc3Wn7Rg_w(Nl|{d zx>QBkH1%%3@4C)fi-3LKr(~IV7>2$d>ixbbY+2@Q+xPud(=;c?3+D!bIGru>EJwtq zX#gn31n8~R)9Lh}AOAJ`8W0Mr3ZoZAZY3CSsDOYZw)_3sb)7EC#d2z@V%N!fUw8c= zVoO^p;23&|u{5bFOrFPKXg2i~a%Xh0s0>1SXjkid-?`){X6EVibT+99t&j=2uD_|9 z`>StnuWy#iql=42A^O|Pw_5Y*$*Eu;_GW5Rh z9kI!a5?J@%?N%l$%6-$_uXajT%hM+|pBKuYl6I&O4ImRLBpg-5ise8JAv#}` zxi;YUCE z)2pjHp3C{!@#5(G^7`&!TLYQQVCO;tjL{)#V;RS=uQBkRVhjN(K}sLx3LiZWKq*8S z!AH!j0MH|%&5EKZl(EKIr8E*LJ<^sn9x`o|Wvvc)`Vb`-N~6rAefjsYAN|S|;gb^; zwxx2B`lf4A8c@NesRNcLPoGAwR`*>|Fp)|Tw6Y*+@R5|NN?jGYEQ`mFPcoaWZuYsI zPs_81^+pv++ud5b^&0{_g(v_NHLQEVBSHL^oz$dmjJ-5h_J_ZvR3x`fIERV+ao< z=-aMsw=nEDHMx$2eZ9YL+Wmx%OMP0Fv2UB^;cm6{%hOM$MWq?*eV4=)WpQ$x7bd)W zbNAt!KVcsHa;{vPQt|fn`qiuTrtXV*k!Akkq@>~)qVC#wd3E!XpZ@%pU;b>jThHh7 zhxNTRYJLAO$t|a@ZnpWPc>dxUD*ThLe(~m;FXvVE^4a-fnrm*|FsxSF_m_7McU$Ca zGCxwr4&FVwIDhiwiGn03;F zHu}r`HaHJR!w?0G4G zAI}Rjt(#5T?rc82dFX!f%lFq0eK|jy9bIHb8N-{07KUJs%Ee?h%@T#3LKJWh_t&pp zzj^ce{o?4vAD@16`ORj#{|Z8DGEeE8cD>X zF}nHv|M2KX|KqRPvH$P_qSMU5g~7!qPhb3Dak3rg)rXbMXI&#tp1ruedf07T+civ? z(rO4X#LzSz0FO`R%cFCIZ1XS-Zs=9pb$i!^YBupMXssC)FeqjKiP4Edgk%(CnT7<> zMXgkBYzjWFDn_;6)qUS9rSd#4tI}j9rEvb}G5ziWsgCAq%7>AEh) zG^wT|^l;46RO+wsnE!Pu0&3QI2;pwMUR}LO&0530G{f>p3pCCChG>8LE>7xuko>DZ z`=dxxYjSI{ax%|KP6;R*1iJhCZ|^RDq5Zl*;X2(n-L5rnKQv!|v)=dabuu znfz!uUo1GY_~zZ4pT7R`{rl}|<$9;OE}cET7>4%wYGtgN&nJtyc0Rape}A*#?alJh zOJ$b5ONiy9DC%8}5^}?v)x*uzx9hvFms9)n{J7umR+sOCmu)?K`|d7b#db1;l;xJu zCtqKj&OUo_@#0aY=q_~wi5~X%s|Pn*RI9s7jSiljguZ)FJ|w!jt>0YkzJ0%5?L#p+ ze);+LUp#-wx2uQSo7L@Gg0?E@;lBFgAN~0H`k~ne0{!Co)5nib%1Ui^?J#V*zP@|& z?T`NC+YdKg>rFY^{Lb%BtI2#A>b$Tr;PutR-McpioAVQWc9Qk|=9{m-{>9I~dG+ef zX0xw;e!1RnLuy&s#qrr>K6f!*-QFG_%WoZ5kDktV?bTO5e)Y{)Z!fRzh_x-UVp9Ht zfAA0g_TT>P-FEwnKmWhJeD$-s4k5*AvY3?fA?n^sW(%M;$&h5!USmorc<;Sul2N=E zLI^PuAT#H7G>UB2_VEM2&h;wrSJc} z`tSe8)&KcV|6lLz?t5phQp4?bzpo#*waR9ovbNi5Q$2q=eSf_g`XMi>`4NijoA%BH zueBxe(L3K`C%oT;w#ML?(2${RN+si9gU!O0PQqw#OOu-G?dV5n<)ncAc zt^4NPH*DtRbTL~_WAt(8oQHkeZSOyXes?^vmSbV{YTLg0#n(T7wcfijpUkJFeSCH_ zD|r2I`R@JhCqKXX`t|+W>xWJ4W~Y<+>G|U1d}1>62w~s1b#7_!;oY}i`({|qPJZw2 z{N7}uA3vUE`LNyJZkzSx?bTP`-WJv4$>RLzVqR9&e)kX)bbVWSEzv<7Qi%Kgu)h4T z-uGuuen@(*R7^1;h(^#ThN9*q;$sx6VR1UEblPm1ySq16mp7t(xv(BM5@-y*YXHi} z=Zje`o7GLf+jLRao6WxWN-c-3W*x0U7n<9fIz;^T^}|oUyu9BDn0e&98@x7oUQFuE z&F0}@I>C_PS6{vP$H zkWvT|gLnHKga@UHqoZX}8g205{(ie@w9zr%_R+bp{gXfasV*{`Wo_4WeGPato94@f zy?@wjHkWVTzq-9$qt>=8%eH#`;q}?$Gp!goHr;l+>t?ePW-``7%22a1*t@`gnF>on zpqR{Po*Ik77)+v=wNc7gn-?bZRipet9Qveeq zZtHzpcPaG%QER0YgGkqe?Yc`5Bub2aw_g)RqevkbM5V_JxtN9?qE`?hIS|oWtU*o~ zlI&NzzG=I*Wus$^V>TKb{5UD5U@R%6t30=vLW$OBtBbDdM|41lVdy;~^!?ymFj+PX zZohA|ZjsdK>G`j}B4ox0q$nxR^TqOHyFA~+Ksq%8gcOKONaEbk?6=Ie%s347!|l5l z-}`~p5C}Be`Al1sR;eN@G6}KYr;wr#+s$UXT~AI<9zT2XgYQ3kcJa7t+FySC(_emh z{rYXaZOLSl?|uG*XP=*6JULx1mpO6yGP`;I^?v_;KFy}Hyxy-ry!$rO_T}^ERiW}M z5vLfTD(AVK^xgHvcEhqeJeo7ZbbP)@ z3EH;v-p8SHgKzsr5b~;+9TmrC$H&vMUCzG#`dyHe5R0mM`Modl$x%^e6q@zjo2sJV z!O_q)yQcGfGR?Ci0%g|&qg zv*VNVXHRG41hzk3)pZk7JU%^n@#2dYpMEx*DZ$;osX_Klv-|Mjeb;uGSu9R29zS_e z6ca*YGeh9nYHf23E)GLEDUZ%hr&E1-d((zss%kMmFRI1)r09nGDCzq0Lsn!%w}UuT zxvDaX{eHLluz7gfH@65bxAXa|B&F|eZf~yczWDr$XBRL3y!hpI<+L)^YNQzB5P=bx zm7+t#_!v-?PXJk zqw}X(F<;CUt5wr=U67dNSqL#jp_D*IZFTC}?(X`wER2M}j6<_$QW%Dq5{98DGo=ZW zg8?k3`J^f*);pI7f*(>6Nz@K~IjLfd-iMJgHmb~74qEaUqqT;ZQcMU?6lIxD5J?BJ znFWy1{-kv~I46Qyn_+Oy4_()`UHcoT2${+<4Im-P?C9ig{mvh_=0)i5lYj8T{l4j) zYebauSMT0kZ5~!bvr2m2?(h5hK>)JM7_C#ETpxx$Nc0#}aDDH*GN!1C^GB!O|Ni%W z`-h(q$k$(g`O`o9$*XVI`$kU|&t81?{ZGFC$;snsUK)wPpgO%+W*F;@oE)j9dwBlr z?3=INUtPXg&Z;UuX`6O%>#lWHmD9=bq*^bgXP>?J;**!(j{r=Ll{dM-9Gx(58EVCPG+;CX*HjglRQKhFb=6Vxt=W-pM3f< zua*L0&@X0{g&v7x7>qJhnw*P={jh(3eWz9N^kO!tsv=j*r4liAa(!EC;&L*1_Vmfq zPk&HM&JcBsIGrx6ezsVeEDQ6albA3srq4ck@%i_@I6gg%eiuVhO1VK+tM%$(4M5AI z%0pMLt;Coew#A*r(I!q7O^MidhqB~OYCYsDH2kMbgc zNQxD+5=atLf&&u&JK{Wy3D=_qR4F7vR^!>1nTZf!UlFLp7yuw4 z;lZ?m9%;}#XzGn>)qnb*nSb{W(m(s(;?I7T?p6T6#}oYYM1K3C*F&KcMCh7+@cm}D zS#R2=7Z+7-rW>i7eVfEyU0%B&+x@=ph7mH%K!KA)K_W$*V%V-96wGq1juzAPZ4rFX z3cYt4{k$+)mODR$I4Hu2=0YnEsaVWrvjrqm@B5}}g^;zPgVSG}cR*+|li7@!hoM7A zENHC-1Y=B=Wg$cr=xDjHHXB>6zVDm1iz%g)thL^IYxQqr`{;dN6q#Y|yFsO5wm8!G zsH<Dp3L*E zsq4CpB1t66&6B5(7W4V#yKnAq?}nyNgU?j?`0UZA&tIIKo!b&gNdnZQt;tW%&S!;F zyx-ODCo{8HyScQ~gAOx$8F@}_miCvIPD@6U_ z!wq87cRoa5R#{dUn}-mc^HrJ8XHUA;+~40JFbE=QYfGz3Nrsptfl`bh03KOeTji5d z6b&(YA~ZI6#aT8vI-1NEZ2e@y2(ItF;mW&9;|=@fBD>ril{ykOY~OVpKvRG{*VSA=Da2z}aZzl+l}hc+inX zs3g%CU_1IF>7zYdz9U179=6f6f(KHH2zbGsu(Ld9ZZz#RHTH`oeeXX=;qPPY2nXNo zhpwg=v(=gf`lcrZC+EizNbtJ5-cIt#`P0wy$>z<6yRBRMw7GcpA}b6Mv5wna9fKqh zCQ?deMp?za@1wJ`s`%pNa~bwmSC`Ytq;2{w#?x6|7FE|^-MARN_TENqn9%BJS%jo^ zb-(XhZL^$7L{c27@`07sTHDMrVenx;bkVu_e13@PNJ7L)*`lb5qO9w^_r0~bHugIp zy$_)%i=xPW0~NvbB2k-yQ4KIe(o9;HCv0@nH4!VHY!p4MX4&#+Qs&0ycY9ROS`K+x z#U!iy`&VCod-eKVrMly4ZnJ8;+1E|yeDKi=CS!QF*=$x18nMbU1v_iZ`N_%hXl|Is z6j-G-1gPsKQ(&^ZYwnds=enX$OzH0Sdh_V)>}-a@(I-}x$yl~s(@PTP2AgLo1lFLK zf{XQTe|LA^w&C@M)z#%q+uNZFUFSrx^MREbb@WGoS6T~?Uc5oM(s zd@Cv=*4__&-{owz$&*t)#C^AKW4B&!hrt6u-#H(GG1jv9yxi}HuIpnO@v!7Wq6mt0 z?*fE@Q`+x4fo5=#*+#*bFvR41B%-3MCKJ$VI67KRr?cC;CU}v=-U$;DX{D6WI*5-x z3bHNAd@^NYdcW&KAfvk>CPJGPNIad*9zQ->uP!r_ot~Uci&0+@w&GKnh-YGjjIzHbwUg8HtkN`|+IxA^m+>jntYw!C*76zbV zZ8ay?^-X;?FP>eTs`%2?564H7#*hxfBI8M+2g+>f+tz20CQ3Pp`=;5U>LWj_H+}SF zKKCJ{t{t3{ln_ZNZFR=Tk|Kz7T?a8#WfhZn@16G|5JDUVZ%uM8v`uGiW--&nnT%6{J_N>G=TuA|El*!$))bX7Hk(#xb)aU%mR}FTT9GS?^kKeVEN2&1XxkZ9uIIqC!Z-W2_#4A}n%iEu~@Y+`tOw^KyW} z`)0qtpR&zN(f51wtuEZ{oU?<*KhY-Q5GRe6iULI-Dbb5@9wv&^>$ow z5^1e7r7ePTt@E*4lzMr5X6!tC2*&2U!z4JG9Ff3zfA_FYexGOMbh;oM6qzEMAZi39 zqCg}C@;=3oaBQX}4Z+t<+ceDxE~u)>Y%(+2EKg>~$MbK$`SR|5W6&;_bFIt1ivYr0 zoS$AyCsX9iWR_CI%0BPsE(Hn<;yLr1=hFaXfUtRE4GNhksf3UOiuNFkSvEO)^t5i%?R|51^Oj*Sh7+V_|Df_oW;3IVwK_!z z6vN;{2qQ!``k~%5Zk}f(&o541{X$PHs>IGhhQ0t_W~z{KPYDzjjE2p2w|9Nt4zk{E zgoLyj34DY10-%(#HZ$79kbLNa_c6rC}*n+qX`@>r_&sZ49lDt`un?g_cv$8Sd-1F zs#q>hn$6v8o=@kezFSY{$DB{z-0Y*ovMOTq6nci_)8K{%!H=ve0$*fh4}IV6AMPF? z!6)ZWjZw)*VjPC9C^85JKz6(B&CT`M*?cn5d0uo~Zw(twd1c(NFDuRq>H8=U+NOE? z_T5)sef9O%-`qdcIy*X=KUzL|dUkr2=fx12%s3=tW<^Xapin8y3{&DZH+EVUnNhxb zc&MAj(b?(gqaqWIGGETlPo{nQ@ZrPz>&xp`Z!f>SdT?Ms<)CZ;j)`4_57+nm_3Hj% zx7oK*$VCVVNof&CF%hZgr0acEsjA9+NJ?9d0zlq{t{b#+c1S7iAvDaY$V*5_#6?yR zGLx2s2pB>NF%c0YY})qjz9UwUTFYD&d7-DDzx?#^#YIfv{OpL(Z#M1gH&^rO=(m3G ze71N*EN%cMn$9Pa$K+f2tdaJ40ClB=Bq}l|G>G6K48(&r-r9f? zAO*&NHlOG+V{yq(@{IC) zv#-&bKE@z1%W`Ec5cwgDzF%h6N)b~Gp{bi;Xb}Yfhkj_=HYQ=EQV^|m({x$ZT5FB5 zJo=)HDvI1%)AjA>k^K#jR}nI6NRdbiY4oKrDi%sEaqrNOnM@}akIt(sB)5HZcCu~# zYWwc~_QTov6V9h)SzJ7M!s6xyu+IB-n-|lh1|LF9NgK_Iz{e2#y4iN^mMIlED~^QT zC~1do^>BTCa~+1jAu2qBxc1%sYPFhF8N!H2a81*A?~KXE?5Fcb$G`KtSza73Pl~c4 zpLV@lZ|~Q;huh6&OGwknG$vI{j?W%{Iy-r`Sj_XxrU95SfsfHBg%Sq>tx$`{1jSWOVKs^wyihQg6ESgB?t-k+xqTdUzD>vpJ;0)Q#w5@UDAuANtRmyiV+X%Gp3OZ z^fB4#J7+Wiq>rpi__#PA6iFZR9*BVGfXGZq0Mfw%b6|iUSgZmf96%DNm^d)@Oirty zj3?z8)0jDmLXt-Q9D=Y69>6HAY!<~i02&RJf-y;qq1Egz9!>w?_r7;>dJz(?YWMT6 zZyvU8v)c`W^liPEEfrO+PXA*MJC!*4*L6q7a9ClQHCYXKr;KpcD+hR}3wT|dkU*f%o?uHM{cdG^KU zFE_Q@b%V9qN9Ts1t$qITWub!aA9hU_T)k^s7h+MC0D=T{yWKbIuHOy55pa2~=JTQ` z7|DmwKCG_$es}f$`puVL$shjSXD^Pj+*+G&H~Y{l5sneP4|$eNCS~vItgL|fusnbEdAWElx-yyV{V+DML1|Vv^qoew zCIdh8`<7z6x?9~|UAwlGFkp;Bv!0cFdwm0;@5rvN-@JeO^M}>#{bt{Jnl4W-p1(Xg zdjcqBMty|a^)4ZU(x|Ny8De6S3v=6dN(`k?H?5LkRLK=oakz(?z z)#hk{(`D(pp=&!3AjDzlPI3!MNK@B!!H2fpDGKu$C~dMVE#~E-GGV))=GoQj`yc($ zzeLIx$46ylu5Ukl_;A~HX+AG}%3REuGY{3fn>Wqo_IR3~93PdF8ELw{yDGcJT4PPN zUhiBOP)!6~N&y5EXO=Ayj3~^HNH2i{&6Pyr$H}662eTU4t4gs5APO;#V*GH(osv{#>qax=nUSQDq?D5P0mR8LK$5b|jmC$&OH3Z4 zm*A_y7FmIjQ6w{}8>s8*xB}&R=Uf-#eqVd<6RO}tOym0;$DY5cCdSyN*#{r^0IeKj zUG&g*>&@n9vF!Uk#LzUgF*?h#gFhvzVeme905~M0{Q7$Y8COHVYQ&U=k%|i#m11JG z+10oAwA#$lM6}IJZcU;8)^GjrZsVG!UhTKN$1=~4XC)Bz&JSUP&n4Cdz}Icpv`yXB z$S|3gi{-TKcdP|53`6a=eci6xcDLQG@9%D#RrC7M;$(rx3uR0J2^$whSer})Z}0DP z=53Dcw*B(U*PCtF)zK$Lt@_ZEd6uy~nJu0@d2+m%PbSl&qmzeCHw;ZBPQ-=SJ2!wb zHXAo!l;_n{XE~$qn%n!kG~Bvw3sEqE_@IfpX8+BXKl}2RzX;v#`Jbkae z3L<^q2N%0`m`t4ae1HG2x_julUL;8hl00EZ35Kp4y1uR(2FNo_=u-4mnJ*Vd9P0J` z-SzwTAKu)FFBZ!uAKtwG=V_Q8O`K0IU{=hl=?U8j5!mu5n;h@9_4}*cb{~tXnI6sB z!ISQre#eLC4ZOU0d$VpomGbC(9+C)&vE&E&xM&v+#QEqpU zNFgO6(#jCBAH4TLu~Le)X03DxVYh1r7mHkXeH&s##9Y zx9vI)8)cSN-uBhqPh$<0(6S^$kYmR}Km-<$L@|XvqD0X$6^f#yP@-5**=L_!zxI~ZW*H+FbA9{Jxz+*p2EJXe%e&?pbBt#^Wf%sL zbZdk8H}1}k7SS-NWl$_^(MUj5W&GXK{pI=g)%(UcSGB&uWxFzz$3EPpuXuG*TcK~=1*m6*q_%Q0KB%XYC`EZ=m=u_F&Jm8rHBw! z2qmRB^y6XQJ^kRtA*}n$mj?2(af`~LBvkd*MU9HZVG`R#dwhIUHg?ys(%XYIQ_JbCu)@spRp)oQa=Mzmb});BfWP!i36F-T78eRKEz z$uzv|yUW$)s9E$`HO6R+S-8crU83UE)%9+-_gEY9%fP+aBGy_l_V3nU;$t3=MFN6S}@B8kAFO=f2-ZJi@QL+ z_LX5AIzde$A?0k1R&51&iQ2~;RhX%&yk9L(+GchC-kTVY?%zK>TN{<=>dlbdlb3sy zEIAlrLNQE7o7LNoPVb*@){W~9{fAF3K$Ew;sGT7h`a_D+7)O|68WAPLX&Of&Y^sVB zytQprdmlDO)oQt_JnVP!L`U|_LtB2djF0LlzVuVccH4YQeJ=St=Vz#N8+q)22fC;&nBCRa8(PK+bw z9&tpNG)I(Fkd>^Ea*&V;!ND?-na!gWK(d6f%V9)OM)uBH0*Dk58m86BCcepFRu|V} ze~@XM!nhO3Y>Y8RHKs`gzB1BMPH{MuZVj4Dq5dkPu|*5BsYtxV*Zl8zzHS7cW9TJbU)!owVDV5c70)_u&}Y!-0k=cH_8S ztnc1?_?f0plRFp-hJ_tpFDo~avL*{u~oY`yLbQ2{iFTiGDPv! zs%_!!{ZIe=&;LrhJRVa}iKuBj+=OA!+%xj$yG}`{mJu1m1zK(3%Htzfm2#5QjeQk54wM)mi1$Q1s5EuzmXBkE>?UeBl=# zJ$!KX=EJi`_mA)0BZ%GZicuDe#dbSwue))Y#+!@l>lb(5c%!Lv-)F;AQhSvYRe+Fg zfj%~9xFmJ}GZB}x_(DpUL%(v?66S0S#w1dR%D3quL?y@~Gb*Sus6+7}9wKQ}35)?D zGYA+&vVaD&Boxuf&Uic{5~Nu8Ksm`YB?;M)G1f78(!B6koz$vzyLhXqyQG!Mvx@1k zA2MTAwQakqYahCsZSJyaH%>v6t7a1QY=hzu(r|ObCIE5N*3D37$N=_~8$KbhcXj=%?>~_+t0rvu)3#dT&wk;J zH$TH-tol`3ot-TJ`Xuz?)y;eFKk4>k)3$HE{r0Cn{kip#8S}I{IzKyy-TrE`zI%S> zQ|rz77~?P;2&b@U>$c`f zMz_BfxxR@?z%81EtJhhos;WqwQl7$gnjnWrnsOX&ww-I*x^7|~1wwUywXE%{4_<9A zFE#X@q#_}m#=|vv>%G^62uUH7{Mcz44N+BDA}~bG+NNS-sBM?VSA==J-rRfm;OUF5 zZd~2k&GC9nOf;Py*Z1!q-(2jbu z)1Q9l&I47|Phyu^KJcL^EUKxbAgiIlT7DI1@tb)YA z$S^~Uv*dvY7>Ohkh-dIbj?ff8G(r_oi3oE56%_bE00E7&wwUdTO4gh-Cde7QZ%wr_ z3aBWV(wK8%XWg=K3S2uk1k{+8O_Px#)a(|Uqtm9T4?71kRy2-TGw{*L`SR#=wK|%T zN!PpGp&JidWNW-@*K6->a;{qQ7}9P#t(UCmw^uI@-3W|8WSs$KL{b0Ym^I!o;YSbbtNgM?d)S zPk;P_ap)0`kxbpJ`cZ`J)y*MHa=^8pV1Hl@BRAX%XW#bJ+11qDH$RoajG1dYJKAD`B^+UJ+;36>62Fs zA%}yvTsvbR-CR7QJXr{}h4bU(#b)nG3?**?JZnay;J~dL+cb9ns!J)>b?v-qYF|}m zvtF!L$LrN1j8P#d8DG~;+pr~tNE|&1FnsFmhl|!cd$NtO?+!Q9R2ydNtC&LizQgq&Ysn^WgqTTZ8D{y2>aQE|MtE5garV4H(HF5&^q-6UvE4L8yXFS(2wIj zM-8#Fgo}!uMOQ74^Vx2n#SN=b#i?4dw=wYhIN__F~^khcGq8C^sDvR{onb&iM;>yJ5gan|V5h;L9j9K%6}AE7>4P|lV{IgTzcOumaD3+ zh@qotdWb z#q*cfSJw!7a(r}l=Ojyd`r@LSWVt?ZzAhvvP}P*y%SCrMJo)g$?QSaoi}mKwo1c2) zolie_gq5AhzZD4O}ik*p+Dp}5F~HmU;e>& zAKX9h_B%p~F~yYk`|dCdS=D-bc6R)^&%FI}U-;~%S@gT@&2Bt&(=_I3?3PC-2nRlAp{Y4%^d%muLw!| zx@JR6BA%#mP3^KblEZYokn_7j3gxRBhuVO+kfJFlQ36MpdSiN5d48Ac5pSAcW+MVZb=X z6tYANlO{FQq7~(o!B~S@B;W~h0*wd>B~HWP!^@ZNzxQs}$JOfS=YPS0_Dxd{!^n&| zr;_Z2UXa6LfoI3Q|M22)6+PZtF7EBO-7^zXUN-d^HtXdXpFNbrFaam#-1XaU{PDLR zzxUo|y>7fqDMgWxGLT_5S(10IY3!o5ggK5uvP?tJ7>#Czyli~CXvmtyasdQ`q%5K9 zZza_SjTJsLokyEtbf=EHMV}UDY<$c@nc;t##W|P9`M`!MVyB zW9n)e`e`^!QwNYYo8#5yIEL{4yYIdK?&EKM{p(-+Tfh9J|L8wHKf6c=>wDBUpjPhY*fng00C-+$xbz0ZB>?Y2HPH9mdz z-s)&k)oi#9H+#)$tw)lWbIysKS+>pT@sdf!Q-5Hn%(m;>O+8M5sPa_{B{mO@amL!p z`wEeVVL|`|LHGn*)vQBg0ZEo=+0=_lSbB{eNvJ(E9tfuxI?1W>b<=L@J|}#!pY$-K zz7Nx39B%f>qVqncFzmO6wQcIAb*HDBx88ho@6JivRDbr@-~Wx@{H>dtEh0}-Ak0Wc zB=tjQoGFhvr8xHc9K+4k)o#0sQ53kUn$>!_T(rzM_EVUqqN-yeCKO3of~5*jvIsNP zzNsBs#vDSo>v#KZ+l?UzIcHtV#w%b}MM(^q83~BVGf)mmimJwNO7hY3r!T+$wQ9Zj zmB06;al({S9|n_>MVZ2ZOul#b*cyA-9-cni;_BFu5x>~(;`Q$NoxA7v9^QHLolU(t z+IM?k_g6pq;lKIgKQ+d#R?VXIIpyv4=CJRuh=)Y1bDPbosja4I?E9R8Vav$gy2^X! z?4qq#>y;8Y=f-Iqh9QKJ4IUk>SL-D+73(6&x%Q4kyhTgGOp?O(urtP{oJ*LPue__g z0(Si{O`)>JJ1Z$BkxkpC6!(Yi(05lim*dcpF~%?=hy*O8q68&<94Ke_<~P6j&wk^drkoAU zJ4gg2Qba*iKmioM*L{KBruWU=!CWHdd{HI^!K`yA`7NoEZj)_G?I;v$Kw`3NQph>O z42KpBlnGRG5&(7HN!B!V`+e7S{ps<>fQD&Q5JDwVV@WeiDIE@-G5N24@ZR@-@WJ2x zrN8~g-SfI_oipD1eHS1n0afFSGa54+tbMg!R*OaDjC#x7;j%zGk8 zIfN8qDsF$kRVEMI{J}T>P^kWepZ}#1Xi9QOF%J7h8;(wGT~(V6og8moy}ZeBIP5Nr zX$-rkuU;U=dSUCfIzKx(KR^D;*M9#S-}rXhu2+jzHQ!ubTwPvYU*D(_0#%i_u43a- zhV8DK#zT$+sxULX-hBV^oY8L!m4n5+kY-fk8B1`|8(z z`?tT0fQCT|G2zyo3FbsD(Azg25kcwyH!r*vPC-#s5}*K3i3o+cD5&7<=Te-Z0jY?y z7z@Et1#d%e1rQZgG^MDTD(3+S08`527>Ep8mtp_}@2t00Q&NRYC87;uNIC1*zxl0y z_cL#Q_N_-lx3kRqek78Vauy~uqKOEtWhP0nUoDoW0Hr`$zsKvd^Nq1=E7Of3WMP1>EE7`Y{n61H0s4MODUTt zVU4dE${1ow;}onVHYN;Xieno4sXwF;a!kV*70r6JX*b7ByC@$kA~7Lq%31oMmmD;W zX&OPm0%{ZiuG>{oH$?f}-~E~@|J>(43y{*3``wsx0Gx(;s{G>3H{QsJVnl@Ky|ha| z#YScL@Pi*K!RGkr`#<{W|Mk`18^@?gP|`RIyX|hA0x9{b0kVq57@v}E_x;fCr?FFs zs98jr3^9icko9Ii?1tF)eFzgFiKH+kXN@GBhS+z9X&giaAQu{Zm_m0r6tR7bk&xJ! zDFj4CgmLH(-Qlp`r<4(<7$Ybl5MRDB)>vZzp=s)>seRpKr729J*#kRYA=;8NK}Q{pm=FxPC_HfTR6Bx5YwDkhDRBuh&2y&wE|vtB*A zcN)iWv1~$4+kK}JgfzxcBs!`|I9oVcJCRV;ez~a5?|tF@51%}JaVZ*ej;cb%`@P|7S|bLjC1ajKo+&=SNman`Rt?je)5-BuRg2{c*p(Fhp4Vz?GF93YticTjW^nR z5AU7dfArwZ3!-MVIO4j#*zLC0FP}a6@kdX8wBJ9!><;@;MJNS+`s%0u_&0ttbr4a%QF(v_3I`qTTcSCnbag-Dhv_uKBwJAf) zN}80$B*58>LqGKU943jAqzDRReA6t~MiY8OJdvV4yrrF+^2ewM*wJww03YhLE#PF*8#Vnj++^pilsNR1jrm zBV++szzF1=#hZ$2=M7s^TV_KkXk;u2W$2uB&JkjaF{bFf%_#!_Rt}N8vxs2Wc;}6g zs;ZrJk~PLeOxD@Du7t#9qlh8KkYtKN>^&+oL789+4Vmz_|BwIei(mZw{d@NeO9}T@ zh^PTzP#gdzga8^}70t_Wd(=aAqAG%4%EbQuqU7Vl4@y6NRhoAb~czkldcJ1=$WD>aPhF9Ce ztDD2&FpN150j;f>>Tmqv*ROX61rW->gsLh%BYA6`HO?6CJrEh|$k-4<%2M#vlp&Q` zo$@%wDdafi6e1y%g>@cs5>X)IQOUCLmW}n*FpNnefI((!OkKC_YSS#1#(7|VeV=H_ zr3O?qQDB%7U5as>Us*XcU7}o zuX9f0IJt_QubM3D<6}VkPk-~vl7*1jku#>LYr9+#8zLK%OtAzbq85c=r=0c0|+a<%i;ST2J-ArKQ25b5uH^(+7FfAe1x zDuRGUfJvYS?LiNKBfx}^nKDX7U;?AasQi`x^UEq7%sJ7FU;qt(LExg2EQO$$vnkvf zGrkr_&J{z8_tJd()2yj1Kmq~~5-<=bB1p1N*NSH zvH%c}nTC*3@6657!mpOKie^=7taZ+L7eW?b5X~_|%n>x^oKpO=?|uIt{N2A}CDq;; z1_1E2&FWA?<_{C;*Bq?`e zS6v@9-I;BxwzlnJ;eB&+eR%KjM}($uOJf#IIYA_aXq_Q4#vpM@DW#mG?}up^rkI3) zfQXpurgGMbKuRJRiJUQvfC|bY21+`4fr!{z$87Tgto5YAh=#dt+PYmDS1B?gYRME8 z6$L~z*45223IMU@iBSlYMRV4e0NGT|df!-Az5Cuzc8B43*;-4LcVV#^`~B0GJAHY$ zcmH&?K5>qR?yy|1RKYmETA$o(`|JI9etuU)5!pFk*9{_tDGg&7#@LS`3X-YnW!o;6 zY^|-Trfm_S#EJ^cDXL7&Y*f`(2^2uZGBJR6mOyh1h(;wLifAN5NE}lV1#-FFX#fBq z07*naRPSwtjc6vMDFk9;tp~sm5;JU$j;pFB;wc1E8AQxkb52=g-}PPJ4bucbRnz*a zZrX+OzGxW{73cQ{2;sZm`F~#hC;#y7-4lffFo6yLy~06Zr`iLI2x5>xGXf)dRDSW| z`cJ<7r$|N>KuN&>S_HWr3JBoin;w8b8E!uf1O+TUOIntfulEkOHqKBoV~cq_AioA7 zb1J^4P{QsN@iwVe=NNHDMzYQVagr2M9_LYuvtkVSW_Mr^?_E_{CQuMV+*ICBPFW=h zp{OKl*jQ_<{pk6{)y>{w5)qXQh|U;;%tW7HDdV{M~gGATYyY6u4_6NhJY(|(- zl`w;-;B7NBO;bs8iZOlyI6{sk<G@q>yZa9x)$xPa}SZTig6UvH1>TM`ZVn;YrS=B zD2oo$6k{G^7DXg00_FXw>bkC5?;No)>{1g^!C9*+DWziBmsLZINMx;307YsSt3|sY z1V#i^HrBcthyhuoi0}}xBm@u{auu~mb=??Jgq%|lk(4zAL3YHh_yJhPcRzT1_Dg?9 zgR!=$no}^BSBJ;D{pIx0_O95~vhseJsmdaY_PAM{e(O8mY!~aM*(4DWNl6Yv7{{sa zhH~`^GO}x$cDY(tO#?*p`4@eC`e~lc3v3RhMFLgLNpnV~7{V0NFpT3kND2xWQHUU= zU@b3~EfH`r`4cr304)-SB*Pe;X9qkE(>RQU9xJN*{XWLH@A_e!*jQiHi^XcSIjWl_ zvsIP3yCxtkZ;>MCpa0o+e(l%3q#6Mx#0g;*d2gTjcK0j#D7WB{|O`P1+Gspb)Y zQOmwC&q>iV6BM*q72nSNfMv#?k;mD#4RBUT-Hr_^f<-~ad<#ARXkkRE5|UvQ1OiM_ zTwygS8x#fOfS8CNs|aK!cHW}Flu}NK39}M1k3ohp?hieirFDLqhLlF8 zWK>QelHsHC^Udid=h1Smya5pr{o3z-<$DTI_o zfE0;MWsFB;=jwK`Xqt))0ig4B_@ib}zuv*wr*6kI^j7|UdGP9VZeT)x^Z7~d>(_q&ThCrx0nj*2!!%7X6g(e*Bm*EI0w|<`Y2u!4LlW*Z$$Jg2nB9YZ5LNm^?c^F*r%i z8y%*YLq_z5owo+;FpN`}rkEv*^Ijx}tov^Cb>+RwA~8+?;G8qe&ROrBKt>`!AS7kD z*>;OBtoKQ)x>Xk!L--4#YZhZ0T^7?vTEjENM#bi}gr8qB6A*7Uwup7!K z^m?=M3E&7^*NkLS4ys_RN7STQiYk(Qv#?1hL`4Qf3;}BI08~U(l&wKTV6;>@a;Pch zNT|-4tLtm)s-k=+G7c;Cl{0SHF5);&!_aq!ETF*Fc~>>wH?C^DYn-o)wTO^%OeumE zFHQucEG0Dr%LM{RT%rO*0pWFHhQzar7g9L}0tE>p(Q;?ZM@;~T4SRq6cuy`DW%;M0x{Qh zwWyobdb3=vtaC&>3z`t9sAU^96{k~IWCO-~o9Ab)a*dO}Cei+AT)N#m! zzD%0LlqIK>!ZhV9&N*u>0*yYTlt9TE|2JO|M1rU?$gOQI6CfC#Zf>XbgV z64#4fBs>&yBTxB$d%abVH5!b0%O=2 z_O`03rfMr!d+V)n##m&^n)TK%q+EDqG5-3fYr)Pw{vQAvmV%5D8s}`~jbUS~VKzhv zAesnKHN`OH6vt_dF%;c^D#nC2M#)O( zfX&Cp7!~C8P5|-snR>m3{CKbUv90U8i$Fjuc#{Ga{xo87eFP*B00JS%q98!xD(kaO zAx&XGCN>TTvWWE_01x}lR4%IwAs)IBO3Vw8h{`mnhG|MENd^>!5Mzdp*oeY%xoO+g z)%7kbC{Rk!4KYsP&`n(*ZnlSh-=&;$#uPCn%o)6^nK(i&Eaq_>Q_3+URUl$!G{#x` zNo*f;Kvg6m1*F0+VV(yxz;eV&Eyw^0Odui%I-guD2AVS8$Vh-ph4@qin}s(@bF0V3 z7_mMWTdjTR#Z_H5h6xI0A8^|2B0hiXmxeuUDcl5dozsPFzgNS zdc8Wmb58^i$rwYGC2x$ej=g2e$mJwU8G&!Pz~!St{n>U{@s_G8v%PUaUD-NEmQYJ4 z%tQpGm@yH6F{GM9m?UQx1Ar1T0LGN3DWoLC?5uajkzz_IOA-(%CM0Z(b>3HoZE3}e zEeV#D00Chs3dKDsDikdXVBqE@ia}U`sU<6VOdO(`lmKxcisv{la1_d`s%v<4}qz8j`76>eqDYWR~; zLlb5qvA0BSqLS7FU^0)FzDaCr$%Q%a*jY-)e^ z!J`s-hD^ek%ao%8N@YaG`Co|&QbG!Dku{Ll{mko@Sj&r{APPie`d|I;e(%5k)$91< zFaFQ}(=YtRPDP|>lgpb^R0K%QZJz&E|HB{t`sdQ~fAh=#g_`=pQiw1fQ*%SNM|6JZXXx?jE&gq2I02Y$aK3bm)ehLsi%7)pED%QVMm`D1ZVXTR~2Wl9d@PlV+KwIP_!6 z3TTXVfS6(gfDlp$F~rypV@xR|i7CaLfj|JW0vqca4EsFAbbY;@GO)8b1SAb1h7g!} znnDOkB#MCdm1JQ`ImsumePppl4I>cA{QN-?P?14#9>cJ)pm=5!rCAv= z35fxU;{wii8Kp`cs}d{!_&FV9mgRq36y&zb%(z9N3IPH$06OQDI4P!xz(58o z?~U=+3P2d9$$PHqwsOWAw$_$SnSd(f;zCY9g@{vFHn+h?inAHv#|t-|$$Rr&WG;KR zO)}m8$$#-5UaT14-}!(4vtRte_r6{u(fk__Wro)=XITB>U;g?RdWZ1FzyJNe_rJgO z&psp~Mnaf3_5_G??7Irg@<2jGD5>NKhJdMb1Q`?ocoqpjR?PqjASnjLNpU0^5l4gp z(kK!@bLr7lG8+rVAX)}PM5?TmnQZY}Q&7_Xsa8Evd+T|G*18Z}; zhz3!GQf|rw4GO}qtuzY3oeHC+T)K2S1uH5jh+t_n=OR)x{Dmrw3iNT}7!Wa&p!bFt zQcgJw0FpJ<5RelABw=gF@O(|pTD!uB15kjBsJBc5EjD6hu+rDY0k`9?XxX~Y_2Fag zzKF0*?smp@HlqL#DyXO+-J1d&3`Ay8B? zh^s~8tb6+GW#5m+RFbkPl~+O(Ldr6Z#t=EHhzSU-w}xVfSuu$akhA{QR2IBkWz|rH;*q zL}!rs<7%q&vAU(IWPAFlU;Nu|Zo-rAeCw~Dg>rMw83F~-g4@U%@1Bks+^B&n*j@w40;5t&uh-GHnOD!4R@3yUBkpdbneC<4;r zj{7$AxI50S<2dTL&8N=jz#s~;DU0BU3xcSK0_wOR?kKW|KyOu*nGyG%bAEr^8 zexuJv`z!kq?8nN=jEXq-ocFv-Dhk$^3NkP{CDK%!^ZF1Ww`>L?rjpKWL_(B28krMe zM4{XxAo%Sby3eC`D(<=Erf>gheRFSQu?H|(Z$#`M$&T0vQ0(}SeGgt;Zus^0uDW?$ z0}3jjDhSHtR7GQ8_H%=3Vcw6I$9LVm!6c?SI;g5Nng+F4hXOnW0RUeP%K=Le(UF-o zO=LnQs_TiVjz&u%Hezv7kC!K-Is}7AjEzk0*)ST7HX+#ZXj2IW1q(nEo2G7Jj703c z_r6T}lzI|G1QEkV!o>~CYK)6)LQ4Ojrs9T|5r*VL4I6N%@J~D zv$fM7f~pb`aB|+Xyj^N#tVqc1FW1s)0Zc6g;i_s>l{7>c04(hO)Kg#n+^6imwMQ^p zyz%V6e)EMttyK*OwOxRywGTCBKC9+qI3WxGU`8u;J@PrHJom{D-P$35E&t@xZ+YuQ zKdsXUl5mjrpOi)iCQ4flMN;RH*cXK_N~a)oExusU=oET}5KuLX z3SdS?Erytfm5!;~2CDWIekpKy7EsDUz69Il6H?6-RaK|oj{qo=yCupGHv)iYA8a*B zrhsV}BS0`rD~4QM5_}Nzya0mP!bHG=K!Xs#B47X%NOE%m2TVw&sw&idC<9=&Xr>7< z1ppOMOJNR5Y7GDbBKU_N^Mif0(??>$nA6>? z3T9UAbNpLBcFaQ;5WwPHzr5;0pSj?|U#!=3^dyiP0oXAi0@$D`y?2vIG&Knk0F1zq zFOX6O&1hV!X;ltlG!0f=ZJ~_*n|I1sR)2f3FBo#pKxJNP9PW| zF#@3hM6igcjNpKrp)*Q3;6#ql6M95X;1cKnS(~0+xiPOS(l#TloC$yc34qNQkdX+e zJ>E0ut|kcp2QcGRk9hj)K61wU|KgZEw)Uxs#)Z93c;@2<3Mv+(nJQ>IqUSllz)VF{ z({XF2DuxS>IQGmI(QJBv2ujh5VQ48e(tzmdE<(?+^{h zI=&yI?Es}Ywg=58-Y%j7h@n`5Fk7~k8Y*z2dyA$-W&|V1{_9NGva2IN0F;C=f#oJo z71N~?6_H@tfTba#mN1F2K~rJ|cBw%Ec7P1TN=e{^YLKu$Fhz<;X(S2Nqn>`muEYF$ za@#!Q&^Ns0ZKt1l_@h^`wh(c;oATNrpJUw(N0jW73}EHsUiFlREVM7R?L(jZwl{y^ z)2AN2?@G3`#4&)N65C?x3cqsY!eCJNg3HQ@G+>Hq5=7Nvh)okjEWL9;WapbGA;u=e znB0z#igM_<1O-x>E2;sN1@O?7&YT7`OB#Z$LYxpsa*Z#7cd{@)m>*W40W8i9ib3TZ z0p|sdMmgj z*|mJlwLK#h5VU_fn5iUqEsy5dUG(YQkhI5%KnS^Q1nhO+rrFL2C2jiK)`kcf%z=@L zsVHNd3K3E-n+G_h9lQ!1saqR~cALpet()TdN(qF+ivx)DON_ui%qdmG1B~=kAKlw`#kA$=Y8;P zmwos56Vn(%P;fzfQ3By$I0#XZLJS(Cf`O?@jHnQ!0fO@`##m!xhB1W6coLe%Bs$K) zmuYpU5g4eV0!WB_QHY^l1Zzq+oF68W0PwyjN?%VbM)3^Z z5tsu&@A>|(2&sHBk#S3trCbiW>#Jt@wjm@!Z5IVoFPm1{j)H+z z2!Sb0Dcpvmr`tK1Yr`3@ z(J?vfZ|^n17pX@})hW3t_lbes`oF8GFAmh(ImK4b2Zfe#99!AA0Ny-gwwvJ2<4_gP-=I z_aA=5)gSq{cYoljo0r&?z7U!ORZv9(@I?U-op-7BQi_!lNwBj-QK=Cqh8UWlBB{DF zaZ+fgMAK+0mI(P^eV}~Uw@axzyOR@QFsKb$`X)8B*c)exT*jc zIq%CYkPU4e-`gyca&n*Ay9YIQT&XWhk3aPo<-IguK+FPH=urS{$}_vKA^=mJJ0T`T z8X{t~!+|G1`=uv5W_6Xny}9#y7k=zN&c5A z&wugpkKUooFBR_k@ug>e;+(5~vuwES9@2dfc4Wlez9c_yxgHu3Izmi~p9C*(x+S39 zS0MEJA=~Vqv;3O=1D~iJJw;!h>pKwLGOkXkQ1yC*mZ_=Jca4ULxZQ66k_Iu?pVU|Y zk+bRAC|5K!W19X#`TF6eQWM-O|N~!Tw zutY0PEG_E?z_l`*X6ZMVpZC5izqa2C)}HjNJ+>|phuiP-@>lJ3+>KxU$fv(>)$Nnk z|G=`XOY7QfK!`R)S|v8)TRwaKKYr<&L;mvQXFqR`ZA+y22Ojp8_a1oCS3mZq51jFp zI|Z7i5d~EUQL1VV(G`t`AYkb_qF9E6h6ar2ISDktJI6$-(u77-gGE6# zMsO%-0vc87y54TPRRsefEG{mqRY;{-?OX&zHE_-mvoCy#GD^&}Em08^J8lfl-i6qi z&9t{8U@Oq;o83+C;G|H?SF6{-%>ZQg)f-sLIVDP@opR^>pZbF59=XqUMSfHD@4kJ( zX&?F2H-09y-t zb+hbUpblq1OUEfOn1L}d&R%Vk%zMnAix9O1l)90wo%}KvJabZ7yumhSf401FXklnF zhg1?7Kvan#Mr1(JJl(e?#1KqXB@L!&HIuob3V9iox3$;@z6@;f_Uk|Rf$v|m_t9@S z`6-8NTObxYJ>r;m?0(R9ue#`ipZnHNmo&YPX*q>^9YFcE(M@+;``&-M;iA2cee=o3 zKVgRwaqy7CUVGs|Cw}Fe_x;0ZU-2yt@)=lzBwsOEk9)YQsaq1k39T8;tlxQLzXyo0@xilBqQ?)C6@AaDl}TgSn% z#5*LaR`36`Q%*c;udUlBxW4V$i~s$jpT6dnQGOSyv*>c#r=g||VP>=w04zNG@E5%D zxyL?YE7!i%?bls)+G&?wd)p)#XCN{nS;vSYa^4GqsS)MF*xJ-nqD0S60z63nGk4&S zF$c^7MQhtHn`PUzq{226**enK6grstiMG7G-rr$jOZ4ytChrMa_B9ilrbKo?KrDAT;?xfua`efk zf8d`#c*zg%X@WE{W}1>KlC!g_v`gg7>_{KdL`^bn&oSp70ntnVj66H?F@y$$R07Cy zJ>IZ!)7+qNK#ZQERjybb*L4#^j0VW9-akeaQF07~W+t))IEx8^PA79)_l#!C5A}x1 zbP#o+-q`(HA0hlhy}-RrNNdl%^u0K@%j1t*d*Txxnj4fU^8f%K07*naRG(n8(XH2A zaN1cHUU$bh#`Ne~ds5mAz1><4v?Wg>UbW_!7rpG%qaVI9pOQAdVNQwkxWU2Dtv?55N8xbdJY*wk_lvzJ5hBMb`YAibK z!e@@P+?sW5MCyFG|DGMO!?aUCup~}s)l$~)McDbOw8YsQwCMSXgaRzmGeU;cB;+tk|{`3Q($(8NaURN z%&xAR@uWtB7$YK!ZV84`d)6h-0Ru?*BH`4tM%#?J7DT`)GLAF0xV9Ph9Pc}hdiLQk z00f%f^`NIc`}l)*TfuEHxa}Jkp8JW*et733L?%=M#YD*O91dV+NN=Afzs;kc@uFA1 z;7Jc%$a@J}`ps46oN@XkKfFhCiWni95vCm@^!k}}$eXoguVuwz-iIctb>1K(niaKF zu8xmHT^HS5p!`T%`w&@A+id*{Wvvuss(affZFsOn}7*eG>fXiq#*-x`MeR(^o~VZ zODxE2IBOviY@5AIvFgxJ6Pu2R0#gxmy2yyo-1Fm4oc2#&xcabHpM30*I}ZtI)q@`Y z#y9PA{B@uE*9)(>c3lHzNl8J|V>S6VFoV;cw zqu=3xmwe>EpZ>!0-t#vfx%kI-8$^*DnQFPQP8n^o~Y-Eg~qNtB1|>yy#APKANJU0vI#-sk5}xN+u7BW#8Z zWJ1T(nVj##*L6t&o+wZ$ej!IFmTt40-xnZniEeROE4 zWrj!Bp7r)jnK%pzDk`<odzbr&Cc{OgW8X!m(S96s!^Cx7(OhkWJo^WOXA@BLocCK`*8rxBHdybew1qulp`K=M=KR;@Yg87Cimz|O;#X0YkzYc4+b(yM>5 z7{mz4kpVNPDs!^PjX~4>!ZQ{kTJG|=Q(p7RQx4v_+bnLl=}TvP_>-Ue@dnMD3Co?S zWz8Hj*$f2$k~&jcRzv30XI{4<8WB0jiw3|f%F|Q}C@Ybn-4^t`7-owCLJ~Zh-3QLl z$_g_3Ff|ojL~35n_Na)-8nHD~$h%iDR8`TLhT9UyFe)i96Em{MBr8+0WI0G(g)`u( zhIlGU?(?aU2-057qFNMfB#b01i;Tz#fg>b9A_X-D(-;D(=fv)in2bf+w#+h-xosNL zcp5_O%N`bz^%NPuNLx$;&6%i%y6O90{lux)f9=?(uYJ|QyKT)#)s9bo#%m8b`1>FK z^w}T%&TSLy9aHK0i>jGPh$0g+X2h!S2o%@d@aexg=8NZ^^6Gzh>ofOxfJ3*{qn`bb z7d`dl3;*@)@BH{Rw~rxB*lk{AVp}2+IUd(_Rh7hU(lkE!5aYs%6+7;*Qys(lr6sH< zqYx&OiHMI;C(Dy+#lq6Yjkn%<+e21Akf=a%j-8Arn>H;z8|_GTif{OHccc zGr#cjO`45+TOt)BBB^7Sp7)G}bt|cqx~pK6MF5zrvLP#v|9@d-@XSHlgm8)bnEK^g7u^|&iQxHPI6gSWSAc~<; z#o$oWNSORC1OSMW*fy;<*pk-;Au%gpXc_=CiM^9OFU0$UDz;t|ZJ~hWn=d}+-B*15 zz?YqT!ZRPX$|F|W?)}PF?s?R8XT0Xx&FsCl|cqq|aS^ z(wpD(hUY(Kdyl+ouan<#?vZQHe#7(s{MS5OAvlN5xw;9<<5A^l z^#gZy!}3?R+_HSzZDcqc%z5vLoGH|kCNwgsWy8`EG%-ZoI9_VZoO6g+*EPnNU?Czh zNR3{R`i1*n>9oAKY3r@GVWeQuu~QQ;aE=X=&}WJ&LrZ15j|QRlFF1Rj+I{sDyvtFq zc;TTB^q7c3Ke_Uv^Z)yX+b7l$RFXT35vn2*VoGFF7U39U4*LTDfO4jBiPMjq?%ps>SPGy7Q&^cm6^PpO zLz7G)+SB`T^RDl3{N?~om;ak3A9=_q*(xJelo_O+%UIVDusFB<6yr&tDN2Ae5&CkuVE0DcLB?V%dcARDkBCrLJ z#VE~&4eKB9fNc;BOaM3;!Xvs?0GZ}CYkjaco8ULUF=w#GUb4pQp+?*8`N-92yC}cC z{JrnFflUzzh{& zyV)|!eoToB(~}OhdpPWoW2PV8K&9P|>lAZEFf=u=5QH(~6xbD#ZanUafwjxUeh|sj zDhUt~2noqKW~MYIsDg+l3HIzJ8qGj^j|fbiR`6aj7V2!x%>be{Dk|(fGm$wLLNGN< z;YNm_*~3tCTpDWLJvjqI6fh=qM&ih!0;rK85IRO;O2DO@UU&XwuiMK5mU}$u ziM#y!O*b2`sUm`NERqlfq>@1)#z0ZLFTJno(Zkpc6#>bY zbIwP0(%FKyTuvWL<3`yYM8BOl&Ay!l%4r*FMIhrR6r*V3)&RaN6U5ggymP6RR63S*f*- z8#--yI<*lHAQ@7 &4w%U~068bu6xz!_!=6L#C(_GZru_UY7b$yMEPrlpB!3S#L{ z_Ss)IXIL|_5-{`4dazq7TY$VcwRX4=wGbpmWrnh3?_83qXTd}^l(V!;Nogwz4!{FA z0Ed|VFam?33M6YWhz3C*1ZerZU}{k;Mv$1W*%q;;yu4298e(<@0*ywK*u-SBx_SMx zb_bL=vH;Xd^$o-{n#N?E1OR@UgAY6I=p8ZzK1{}$;+91C$y+qV6sSZd@Sd17gwgWy z#>r&Kv>B9sSQU&=?Q+AbvEJ8}#N&bi^-a4OI-`CR~B;UWSQzLQKI!jubXQF}r?(=7U>ya-yWzQjDx%%-h z_?P{jeC@d({m|Lh+}3pJis@;YR`Ho514alqqb^Q!8YY7#10XX?>qr13;B4{LCXA+l z!FGyI=mVu(Nz4Y0sx1i8${Em76F!w(z|=O(I?EZ#WeikQM6C65(tZ=&y4iI=XS!%i ztyTG~nk2uiR_UI;T~$QXjF^C#RI{B;Z@?i_PykXe#UxiiFtZ58Xbi@dM3Mp$4J|4J zfQeyX?_GsdIIzMZm`1|ZLXHRlRTYrHR1^fjkt1?VQ*YX^NN6UC%r@Kc(Pk^GsmD@l z!>5LXR6S_#qu%_?ryjOlOI@G*>WnYk_VlM6I>@m<$$TMoimh8*@~{RC-T??0m@AxH zc=+RA{Ex4D$q^a2Hd*)0fBlayFDEq06GkNWgT_$&nbitshLi#izYC4@AJ}Uo^t9V zwr$boc<0Z*{O)rv_`>|!r**|2kwiKMOlSt zpmRuU=zJNQ7$i1PDTs)vYQdCX#k7JUazxfH0YOB>;-neh{}sV|_Jt!dA|u2Yqa{MQ z86vePRgUMi&N_JZsYjURasCNk@tzw$|L<@A_Fhju=~+kZvqOdGAMl8$zI@GNZ~DrG z=YRe?cTC#-x25x$jF`=NN5nz|-A)Rbn%`XgvA_NH=MQ@JYhLoq1GX;_%N_QA&f6aS z**?)cS?cvg=50XcO(R zb%SbcL8&D!wf$GyJzySNlFJktB!gtlW>AKzikp3c%s}Wog{H1{wwdHKJB#I7YmnBM zmf-6UBBCoxM(+}>5oeeaIS)k*sBJC)9iq>UJ8pnD#5f?X02(s^a|lB03~4f2CI*y> zsKLDN>pXc8Ih7RxAX8c%P1dj97#j7iNCb=NVQAfD%y=#JsV}NPuG;B{qo4i8BObB3 zW5KVx@vMtJ`Qht-v#82zrWmD}DjI|k(-6so0OlBnRY}g3)v$QrQ;&VcUmbto&aJv; z`PX0k(7*h{2fulHy>it`Ps9kNcV#&UE-4!@gy@N}Di)WPo2Dj$D3Qq_`4D7rc^oF8 znKUZsxKNWIu^d#c@N85K%CahAq^4=c?qZGyxEuV>1XL5W5(oK}Ip}cVuz0 zuwvjnMG3@QP%#>hiMgtVhKPNIEOs6V_v!*{N=Eooz7PQ7JwLwuV{iY~9#1;)_2%zf{`iw# z{pu4Rx4J|uw%hN-zy9bGkNNDGA3f(AH!t^i*wpU*u`@&L@TS&~4O`-XnW_+C2o}W1 zp^&L5BwL}xStKB$>^qddWvab0%(4yC4moJ~3YmGJFjX05c>*FtQ4xXG>%}^D?+lws zk(6L+Oq-;el-7zkJ2iApNu6fZEFo0@6r(!F?9e%97H6Ns#M(mBM3zogP7a{RC4=V7 zCRmIaqXv+u3XOpXAc}a#&`eCR@QFnYfNaR*3QaD*R1$koh*9f_jz__x^IVvMMeTdT znL%z2cyU{Wy&bAxhje%?7Bf;3HN z>WG>}oK?Y-rb&_WB0|WbC}MSt6A7^yV^h@7G%y(pf>TETsB?qD@vv!{<>loBU?sy< zPza46imEZ2B><@20^3IeEz8WiRuk_lBvLU|Yi-*5Xn-N~6lL&#g$n+Na?nvz*WdJ| z)BpLpuRrmGlaD!I^$^i*wfj?E{I>@j^3{vZzwFz$E*lc2SP08Qzhl?-2*{otOQz(@ z@4kKR-+uQi2d;g|tDbe>&I3fh&E6-y{=1G5 zgR2506Y^+vBNhxv&6GVCrRNNm1937y%~IpeE-?e))1rW#IYN3Dnz_T)72JdhOfkKd zg9x4FWB>AzB_G39wAiAa0BPCZ!$=?#?50}BJRv2(MO0Iqd17>`=*)`9&=gg(BTVbh z>vCtsa{x79AW~z+ph$q`3{{e6vXaBXy8&`ZT$llnQ}Tuk$VLTFfq;mDR00%4mTgd@ zVec1|p_q<&A;v@i3p*X~^0lWtXU#V4aXz{Ee?I$;3oiZ2-7z~qWdocku}wiuV~uUFssMkIJ6))U<+guE6@ushz@s5vu^6Et#0GosKdyb6e3hy0)i6bM=76Tfl znpb%iN!ADugQx%zm(@T38r29oky@Skp__zJ!8{z!4F`T$`O24#X9>-u4v6S|L5@R= zbzMghQ5_Dv=YmL?wg6|bC`#wNsuH;vqKZ^y6@rLr4$}VLp62`QD{lDd6=%Hj`maCX z8EcPy?9Ow9Zq=G2PW|is5Bb_f=U;ZsZ$~)^CJ+1Ovh@X`D~hs=UCfi2>be`wea|be z+UJCqoVxaqorj2S>%E@-x_2LX)D>r)e&H3rTudYcB-&hC+!--vl6{{MVg4U+*;ny%!Kc05vsLCUi+714;-;=BQN)0U%-&Z$ycc z0cxP;m|cRz3E6SQWjQFDdLn4fyRz_ARhHyJQv(`tmmHE!i-?IConz;n0{rpY$3LYa z_^R+#j9OK$aHMKT=)J$Mv>1ae|0NrLe&w0(yy5GI9>4au$31YK(5-yf;V*paV-EfL zCFgwh+Fvbct1Yo%)R&&{#0SkG@>Y8u`4|8C zxFfIl^y%kZ{fk9w<-W5e!MbI422{1hz*HoLP&c)h5EBtsr8l8AVX#FcXftXw*uCJz zexgjv;;>v4kT5j}((N>`dzJJW)SnudyrnLM0TI~) z60#@ukoK2`Na%~%hw z;`?_*FjO>^Xy%y7`4l(QpBko8G9+5@h=X4EwiA!pZ$&N!vh=ghT=;+9{e|z`Q41Kj zHUL7i(%wu(5UlVF#vw*gAvDKGX)C6nMIi`)=pCy_XhLj)#Hgx{U0D<&kpP(p&Faax zuFJyv$`|*nyIWOKvu37If<$4)(iesI&Qno(K&+}QuzieCt7>3|BI?-37-9@XS#&!{ z``-x3Ti{DK{qm|$zU%t0KmO?_KmCwh7YKR9L!S7&zuE7QuYLCXi@$O6Qr0JRhXyf` zSaN@%jtG!Y!Sz4-{0H7}?U#>!){EC3yxRgHuUK>Bi{ACP!>&B<>~pWYd6Rb1jZ_X= zBf_?yPUmz=n2{JIh8SX$m{JW2=ZMJzwRPWmTB+#;qgj)(&L|0bQUS{t!j!4dnHKbo zKCopgV6R{BjMh2ZwT=sEzMHD!5Q)(_P|cy8YNnEocj`=y)l4LZx2R%H;hnV_No6X# ziUJxj0hkq#x3LDqhy&yWqX}W75PgMa1X@O`K!*ku5hHsfhvYJoIP1p1`{CT&%6hb^ z8x4AtMKKLvh`7yePkjB_lTO;TD+Y@I~HGpJ|`phAG2n29w?Q#TA$l@&;6CX>l%Ob9;Zl*h&os^M?|fRlRC zG?3PizDV}p9*~OC-TxI~G8z}Y^hFVafH5K)h=>v~;?y(?d%9Qn^L**z&0jzJU%&f} z1E2P+XB@KI3PxJk^@-1U^J5Oa_LB22{^~Cmd(Q+C5vWqimTMVDmf<}^TfFJ=|9ZPx>meShBCz>L{!f9sje1zKNP>n$j=ZA;oC7$Nq>W{ALK zogln5yj285GVZM($zkCz9rCIcMKuRCq)jUl5`c;-DKjG_!MIrxdUTbmr7mZLg#iIs z!6z{a5+Rm=4M0Sy83T|g5-OoNFb7tVUr6-qMA%Y;Y}^V4VC;D~zjCy=4uDg~)4MAI z2rfMQloOu!`h#}cs@2D>yZKA+{nVM~{CZO&p!ZGn2>~^#LPX~fc?Lo=Ua{wMpZv-JSLLXfH~ymKO;YRt1vA7EP$MEFBxVfokJJonw-`^JIC ztv%rh4_)Pu<{$j{=e%j}L$AO3d$hC5PH#w#NZa33rUarU94xOzQ8)eSOaJ-KZ(Vut z+83Viqpv88-!F2c-9{Q6kBIpo2r1U zi{zSC1P14Gz++5YOti#h*BtN##D~B}qz{fuIf$j4!nKbNN0RZGuAbRfHwIfR8z7k9~{qpOl{rz{o zbntO6e$JEj+}a_{?RLo1cI$r7;-)5qmMp6VSxR64NYd1G-NX=Lj4`VEn4%K12MZB^ zV$MaG+8v(IP-hm;x}S?68!_0YE@i?w&Ly z_kx0^q?k6;#}5}))ywM@1i{A3%L+iitM-2B(d|2l>#w`|tbe-ri$7RD3TR-GqJ|Yx z0H{f_sKzv?W3ouM(ehGyMz%lnwa0WXb@#Pj`Okm2^opO3QcjundoJwcE-3*pL&@1k zDeY2KQ$!eaJT?JSqQqLIg1PiX<%=Z%X@V&f&a>GFP*e-&BTUe&DxJi*+>D3w)mGcA zEawM?Fli#7R+aZfX^1fj5vyv{7-UQ2HGuu_2R|r_Vt#%ekrL~+!=LJ^OFI zb>+b)J?{m_?6qytz0@r?eCN*2sY-Ktlc}fzl7YmSU?BuzO0z06XE73F^ZJesI0dh| zN-%@bV&8ZMaq4QH0Zwd-K_{a`>T;R;4|#SFY<~)N@im(%0-!baNRxtNQUj2*)3cVB z)x+Ja=X9QlY5Bg$VrT<1Lo-22iDLpJl(S;Nn3AR)D9O~K0jdz78D}RpYn2U(+Ws^% z1E6w#rN!E8Vy5@};MzOlzPog)#c8DejR7 zNj2Vj{a5cg`C;30_fogtbn!dSJNt9LU6j;XC0l@`!|yPrq=!$pM2xYlDqj|($*67` zWOR-bI;g6gTx3kAAm=TmRq6-^zM+xnob2n~s6djy=uUtmv|j(8uS zPv1N-ZRS$<=N+dR+YBiCM!##p?3*(fcIh&j+Y0Pbtqi*m>U%Tb zJM_A{S_tf1IWP^)B#12k_KRuCh?UPPN1C{rZ4iP1SHs;K6CL14sAR7}hf6FEsd zcXml$LXL>Is!G+cytp`-jFGS`D(?&LU4kUavJ?XL995cFV^LH^QI;ME#Y8l!#u%Fz zMa>Xh(=?c~xA6Y22rF03@3eaRt+rYy3akb`28nUfG!yTOvaGDVP=7u`!hIEm&B#75 zH4KLo7u!?IPn&S;b-$ehv8qOi5`!hmvE`&$RY`iXX(+p-n~b~DF{LCSaXBa#=7;5= zC_Fhp3E6g$@`R#!1c!ctV~-TxzQxWqZ5rR25}G0J;0>}gIRz$*nj$zRTff!qBiwP` zOy_R9z52hHU@zak^#;BD0R%Q#dB=L{w4fc>5u>&tarq4sA}XR|=$zE2-AHdiI`zWH zF~Ww{12|DzYiwu>OE3H4e>-fFLyfPzNsN;iYfVMbT3IG`*&)_aB@D@7f762*OKd+~ z_Q+@><~7yA)~ykZ5JcO=Da)?VMC=@qLn8o2jX`v>yzGJ(0Ag04*5r}^P{o`hUleNQ z9DDB#$$N(gsu9eXNmZIj-PB<+X(r9MD7`OSS(UyhnAv+O2SqU`%DI7>ZrHd{CrSim zRfMRakr-nV$un<}l()EU{qJu0&ON{V?XUOT^N~C5uv1meSq4r7k*%{6b%EozS$vWJe z7MDEQkg12-8XDz-L^Q)hoAz(oI%m_giXf^gduITmhCse#Ga8RVl+e^MNSrhcB~FSO zw?wZPA{aQtvSe~jV|0ago`YJHfM7-8%d#9dp=laJ*GQ~mSX^FSz`3HRd{q>cM+Q-C zn#MJgg{>ESQ7n&^V+?>;RwdM-X##skL=+imc#^X9R&2GExiVVc2BBqFp zW@0eoC-TR?ax#0_lHYe&Ipm+?r* z?0iv_Rb|Fe(K$!iatfVCcF1g=yZbF2Pn`H|z12xV3T=iJg&k0mPu~)CWCtiFl2jjNVKjrhnoQtInKu1rr75Bb)K+z zuY5XSBD4+^m==!|T!%S@CFNIBl6Ptj6PxM%uwB*~q9Ge7lJn&dB*aOSC;*hW7uuC^ z(Hzs#Hi=V7sS31w(w_M(64I1IZvAweYIO$1ON*Q3mZ3X z+#<+=S#Lkqi=QM+5plgE$E?NlTBuNSfV?S6N&;y;&(bNWZBRpo>yVI$dBuuV&UrH? zKxSuPk|KS`xim8Z#NOs_vyY#x*|PFNXR}<}F{j-@0z&piMzdK9WbCa2ZPqiSzaDHK zd&B7#EytwVG_uhWW{`I327sWd3aFi4o3N8nbY@hYJff3{*}}pC^inA@GZ?1^^OOx$ z(t~9S3-cQ{ZJJfkPj%?+-;x3_I`Wk-g2g6E)HL;5iq}p5-ZIDgC&4s$*ZLh%yMf8+ z-#zoo)WfOf#3)k(NmT|QikJa8cI04O8zMUwLlm_p3LCN`Q&KeoFd$J-Gy^2(0AX%! zP*qh~mLg$188x9U26N7PT^>adc23Qj&`fHsqw_A;u<>|&$M5c_s$p4{gW(XylMsUU z<$N_KniihAMG{<`M}sI5H*UP=r$77goxi_xyX{s#aF^Z6YLLwPFsGUP$yHcZ+-9;(~NxYz{VA69k%Y!t5wWfuXih=XaxgB@fnc1l^VX{I+ zCLkhe{bV+KZ#(X|c^rMYT43$)J;3WWGf9f1Fj18yMiut5;L&VQ<|GfK$gP1mU!W0R+RHcHD8} z#!Y}z?p9X`+Q97Wt!Kzcj(k~^LsAg~&;XE@|B%C-5IRv%>Zvk}*?o$sQD&DZmwzyE zcE`zKwFysBgOu$7pk{RwnqX=~=z>TPF{Jc^lSv905fg#~RZ$p?>m;{yo(y%Towfsn z7{a8UgeHiAs5PN!nmU9KMUdEh^4?-*LnP;1gg73Jn-CXpMO6-}sv?Tao*lpBry8QHS+nM*n{K+lVTCSX zWJVC24&6+o>jev7+HYYmfXJrbp$P(*CNZ^I8cI_SBa&n9ykquz?6HUQPK^TE`kXdNP=Xh0Kgx*c1g!!N|-|X+611g z0HH26(6VEdMNx^;L=iD$UpKL?H7Zo)962vR(4hemJ2nC!10wdw5bL@QVNy?+fE{uq z7kTH^J8#&y@$Pl&mX?+Q(K)YXO%ni+nd_!uE(XeT-87T-h+$O{Nx=!I_Qyg4 z`|i8%|1%xITI=ur*o^?Ft&%s1_PRpGBP0(Ip+!{hxw6Y zBtmk`&bfk}E6TDORAp8A!tMXq{h6^Ss3^HCs4RIY~jNI7Ua9BP6La4Tl`GoE6&X52%5diK?iHr9UcW0vR3e1-~cHB}|sOrk#HR z^$@p;=C2{38Iz$u^@u=C6*SE(op z?;IP5SWH(vnv6rUG@eYFxMt72?%A+u0FtX>ODh6Q^q><7O3a$t} zfER%%0OXu2(zc@-3>0wF(oz$H^PU~EWAEMlUl9skSl-wyZ5U5Rjf8+;gjNlTqVO>` zO%q~NiK$1!ncS5B?Q8q(w?E*31O8w70qpXI+itma5YFcq_QIy9%cssqZj$UOfBaym|*$pf9j2(HBq@=smLQ zo-kCK_VkFb!wx&_f4~79$YD6$x)Y{wJ?Q=r^{hNvW@x7`OKL^2d<9ZnNZCf2G@F)X zsc@(zYt|H*D#>(OlZqK;;u_OQsX6I(=E}E=0iq-nnPPr0Ejsy|_CMf&9k$;d^L`}t z1O2@af{}qYa0X713~BrAci8`c1FTmL{y*N{^~bX7Jo9@mYpuQaxl~nGU#fYLDcKU~ zTgDb0(O1&WID>IZv@JWB50+*S3=Aamc|HahWPl)lM7{t^+(Zs)T1UTeMYn-6R6Q>U6uiIm8cNTFF>U0vs#eb#<2&+~iUO_IlR zR~Q5Oawt$erD_7M5@ap(K_t_Xx(q6sRYqc4dAc@dFTrpu(g<)KvVjm8iuFrP3TpPJ70*Inwe zN?~<7=R@T$M4Y-n&k0)`Tk@7go( zdA(XA)>);ln-F~IkC`^XM#B&$=gi){&lckO=bwN1<(Gemjl*aP7}izeoNa5+Z9`(h zrt98Jl5oQxR8>_$1g3&c1R_E*RY77yaD%%M2X!D)X|KyCnd$St{aZdbK!-%70AWUQ z=b8fB*cRcuW`6#2pZn%FzM*z5bHLGMu`Nw_=xAi4*D3Q*-B4Z;H(|+}1c;*ZD=7bsxJZF+<8ADlv)~)O90beM+KIN>JtvOQy_as2mPujluv# z{x^T?cVy7RnUsA#4*dL4T&K)TL@A}N?*NsUti+5mvvXBdg{mqqTM2GRDT!#;b#428 zole{|&HMb)&-~0!#Ta*YX9a>`rjDIs55UYJgr*ELsCY;aM6zT5K2L<%Y__|*`|7K& z{@?>eJCC6~pUB~P`0QZB7*wl6p|F|87X`w2+rYAb1VAEYCU(vT=e={@`H}(Q*g5AN zJI}%UGC};p7yt3!`#cGP1{2jEyoH5IqQRkLo4Da8Vl#Q=fGsX`VLLsg1N7t3z7 zj(wD_%OU{CYDVl*lB|V{f`lw$ITvvwshX5sAYm3M>xtj}{BJ+~^ruDS?!CKr@7-H2 zmpQ8$5IaCxuiI7IG9xlpRX~R+M+HGbHSvwBC-r1HnNFvZ$wbx8&d!$0wTP-{Ou1{j z>2&&+fBCoX=gs&5PK0NE_NPs?X~MmGcTP@@`>vBLrzeZ!qf=0->xp+2lS4p}?3^P6 zq7UG7dg6&EoO7?e_Sz42C_E57c%iy1DXhcpXq@Y& zPJ|(!deAHuvgSGLcvFd-FKI5ADSqekzw=-I`mbMt2t##kt7#rT+`q$Gt&T6%a1-D~>NPX=4*dZb@h2W7vHM8fs4#-eXs;a4~P&G|cg(}8)c6zp2 zt|bW}sc6o5Z*T8g@9#wTAXGKy7H93+tWU zeFVo$1(a9N3ZsdqbS1?6g)jWxbI<+iCXaCdAB^PGqQFrsJbgrfY)0GJ4`2ZB*&8?J z)7h84^d;TotZqyBH$Sco>cEjljwMjN;8sb;Ts8wM54o5VHgB>acHK4x_RR>`M(Z99 zG1dUTf?+0Q-C zVC$}Z`}W&+@7_6GoOQ8JNps912I!E9ol7w~&s9^`lfa}^Q-`_+6z800F1VN2#lG#) zpzBy2p)!@JMmx#yny z@u!}8@sG|QK3;6)aj*{<*#i>3B7YuG&O;inYPk)T`Rb6HJLIO>I6JY?v~(_|eu#`= zY*h$>N8aoZGPz|z&~u3uAiy)vJo8(>`TW7bb%T*-P|9_@;EuDc4JbY!KH56>pMCb( zC!c!q#XoxSrEhFKIpsT=!WbwILxMD&YoIFf#6aAw7b(X9ykbh{+HozzBXpoj2nqvM z64eY%3t!e$B`Xjrl8K?AXV>+TVj>_WHdP`F!F%tR2@G>eg{@|QDM`+G&_n<}_0*HU z{rS&7_V}Z!8POKYvv=;?J~}yBuh+59A{uixq^il}$Ooq&q4M>#+1Z%^W@a)Zwd|a) zn}&$YY`tEuRx1$=A(ZUgfzI&0jYc1!Yk2x6pNxG+1R-$Kgirj~Cmwy|F+?(>D_0I4 zx&8=Q>32zT@>M{@3uvnM{V|)(o__l2XP$XxcXt;NQ%WhN?-f(EwPP51+_C-Mbfd#( zMh3a6jc&*xbhzZB$!KU8GC~o|j0l`_&J!~hzU|)b&X4`*Cw}=?e)%7N@r%zr_v~yw zqw}_Uvr;c&_)&q2hFbz5+|v4QLC*jI=F{2FJ^l1E&pflYw@ZXMrIeGwxM~|WdN@QF z+ORwaWi zMl1Gt90)}WKq8iNRH{-lihcRx1(H*yFq5W!?9uB#{|nFjlmGgk{MxVm z8Z)RRvwV7Tbo=o3+qZ5XpPa1Pb)~ z+1c3zV??qc5g1bHz2^tTH1GT4;NalKjT<*^-1z?WfnF4$8e9aFpVy^`pf-*e?R@G~ zgyK18Q3U|W+02N!G|JAox~^PsJVvvcZCIyhrZ{xvI@(SLuOxzQs3qggQ^80<5Sh<| zqc@7G;-)f0eB}DU=RSMmbDzDjCAS=pvGM)6?c*r2BRh9YQt{ysQGveMMyG66-pQMV zfsHzi2SO7sD7(xIt+eG>9G4=S0cUBh%G%bj{8PYXhUaLiVF!FZsMu->w%3^t6`X8$ zhzAD;H*S3Pvo}6FKD8SiHa<|_42}s9&*5A*O%K*jQzS@_WkPK zy<3PnbIp34UVrQFZr!?lvN#r%a!qaywz4$<&=`BsOwL?D?>(Y9=R&C3wu^n5PNziF zwjC1_v2#8rVRAzV)koodRLxc80YlR?lWFkYZHi;d$s8a){>dc6VAc~??uW8a6m>0=i{l~c-DLRGVKnvzLLOP5erj?iMSl8J~+ zRWdRU=N&OIOVK>@Z~^czJGIRbZT229f9FJ|Eq&#d6~*vDxBF(mQtp-|YVd(`tt|V> zW*EQ_1etwsT`xJV``mj*PX-b#_Lh4z@s8bKy~94`)b~V=oCk(18vCq3?CY$!T*p3X z6w7J?kX4Hq)dgSIRTm=y19HxKdbU`tS|UcGwp*W`9e4eboK5FV+oiVefuxzZ$t)Zl zpCTYr0JfaEoU?O`i0k#b>srwq0-IS?Rej&JZA(WAOJ~3K~%)F?o(|0wexN^pI22Fgmy&ZJWUJJ^g{%z zZAB7ne+ErK#B!F>HBl+{bhv#D6k!BaNHNEpRkZJO@zntUGXY{s5@R+~Qxg?Z10e4m z2NyyJp;XGYy`dkH-2ljRuqpzKUWctgKMa|w1px*KMYpf#)`asB+BVdBLvkpsa=ThG zSif2>PLHMQ92%&muFaC1C!(?;qn+KoD_5^WRcROdn2wK+*X!1KADow*V~U92*`=8J zzTdlaX*QoPmdm?GN0;~aOR-Qi@Qz(hX|-H}S_q-4>iNzNGseDem&@39X6hV;P$|N) z?OavwA6%d8>_(NCGWkHvW?GH|+S0?>L(YMBCr`eoIu+k_RhUT`Q`lx~iW>;Vz`Q2_ zL`E`l1}M{=X^W{_wteiQbeKEV6v!M14)=w~%rz22N>RJBzFn?%cJ{!q??utEZz>9? z)~(m8Rh!Bn!;zV};G_%du8+yOE{T8{X0endi}bNywTqb7JA1RH;$GH^<=OG+eM6hi zrjH!Zp&cC`pQV%mu>`%x*k?)Q-p|aXM6K&8gfN>mF|Trtec#u0J)O-`%IkF-W6UXs zP~$N1{|MaBS;aFaO;zQID@0`G{r#PTgR9M?R!{*g80zvuG4qE=Ry$8hcwnHg0VwMb z)?#L$fM}{jgj%3TfRd%_Q`dJnOO6A^69Jv~%$&2Nl#30%EUSnl1Yd=!sys11kX4CW zy2FjHj?mD6Hsw2R77pY1y{x+i%26qKx2E|6z|=OE@@D3Urd9C$a&dZeZ+ZV-ZdYl& zl)kGRJBRDk7wjuK*G=c?_}=dRm1a7tUC`yp@jHivG@VS$tn1pGG7)J~QE5;yuHSt9 zjl+BQx@!lE)pAnTJ_L!G5UNmlc1=~)s1+kDPEHqR%d^vNwG_#96+#G|T2x*2adK&Y zKA9%x%>^GSB+A7g3>U-)Lp8K{Xzx*v!bPb8JXjjw1!tRW0Twn6ZXAwhE3vNx4iS+{ z{tESEwLpJ!XPF|2?j|UdI#-ElF>fnI-^vxj1XvRoAY)cM1@ystOI` zG6PiJ2k#I}MbN;rV~4>96V)uf_LUFbIZ{bE5)GcD)Ea=Glfo{$MWF&B`HNRW4Vkn}0ipAEz!-cTWzFkMG~R+pd=;nM~)iSyk1mwiD)r6dZDX zgj7l+t!QHEfJ)VF-w&%bJ}34)>w^b>ZJWX4NXFCA`(9AIlOcKh(p!P zW;=U(mv*nloDSc)-$nId!rreIi#vCZR;$*9;3_r{bk?rdDR+17-6QW2vG3&Go#Vcx zwrxSJ@}XSVDMk}uFPY@5z9WO|)yfBvG<-)}Ec6dGEWfOEIY!Iq3SnswzZc z{s_pcz_5F1ciEjble%vFBac0D>CzPdH|#~tka!3sVN@_8`f&NH55+DN;%(ncirEaD zbB`tonVtM!e(Q!;s@@l=lrTW-o zj|JwqUf+w|Y(Dp>dy{5XUkcvOn+D?g-a98pcki5?9G{*X=hRoud&0I|=VRAQrZGz< zUaE#Vk)ccOOB@8zSysxxDHY(|J9cH`gD1biT8@ShO4*J66O(bThNU_xjLL ziyNEmxdh%uBw3jqjvQpnfJ_KfG89V8ND-d_dH`Yeh-i=t_()7eGJuf_A#h!XD)4|% zWh|R&!Uqln+&UCCcP-jd`XK0NMY4+$N*gm-E~xr#d-Pr|YaI*%N(Ppt+1dHjk9~4= zcO>*{B(|7LEm_-T1$5!;-aYN}+0oH_zBAw3om@NEJ-ELA=sK-a z&bnT%SMB=X;F=)pU%J%w-IdFi=d(#OpN4uueXpz4`s8eR|K9OCx4QMxX`DFP+o@*F z1ayW7H7O5bhs5a=o7H-n#wH@kxu|*KJ%bdt??{!NP!azB@sp zb=${Q*W4M>*~vQf>d~WG-}Oi|X=?Mnq{xF>7dvJO&M`YAa~zRo;Ce z1Xb(%sA@o1tPuQB(Af=Pe}BL2m-|4TSNvE+=qH5Y##&< z{El-3;1E%=91E?RwLN5tMk&YH4_DZ=nf5rK28CL+l|i6DgF93c}IMV<}H{TTml_;6p&c~;XHR|uPec}R-gPH!9bc7$j5?w%gqpN6KnelP*8$pR=y zim??{BbUUE7mL$H3*Ij6?n;*RYMFCBJzc_Ex6Hfw?(V_$M=oE!3h1(7->&Pu9WdK@ zoni0ai5dwny1gskdcdJW}g7lbLI=UnMx~_N;?|tVxuiZa7ah?G~^3e6|-M8<|_jWH|y%y@( zV%6Tdb8@!M8LQK?jzXU$$A~d?grdqsK@{6{N}4F(bZ1Ub<+K0`i_?}|I6hi}(m)uo z(P=X*I}l9zt_2lPEtfkn7b6Ck6nPy06ccWVv{$ua=M zog?qb3{ooFbWN!T^db1F3RUG)#W4bCGp(B1BNC0e{vn8g>0D>~eSdP>QvKO`9dPHq z=M5ueTTwA&6AYL$0y1(A0mUGhuGeiZamMIPKoWolM9_$1l9Q9OW;X9qN~fn? z%w5--!OqU^$)iU*yO)8TAyvWcgPxt8#+(pTG+RoGll#t0`hI%c zyB17Ul8E*(V^w7rBumOt`z9PbHVr`mVot#a!mS5p@cstg_Wn+Ua)u1HCD4(rKWvN@ z(Rh@Djo)=MyTuW>IRY|)(FLLkK^c;(d(dpTEj9wL-5SZM6vHpwP`9xj*(JIeb=R?F;g%^MCYAA$|;HDB3>BSimG74xILx5 z>pp^%x6ss=uU+HdFJHNggzRfon9ZB2ngUf~s3L#_jui%XpFX7Xw)cL?0e}YmEk1aC zjEuVrDFfvoEGC_-npG7E*)bEdFUkWn8ZU(bG2j?g1%W(Qb>*sx5vdA{XzZzwQgHxv zk8rQ|T%&&vFJ{?53^4@fQ_v!sluV2!x#%c!fpZmZ8V)kS^FG-Skri#afAvb+=RUr< zTpk_X>e*aQx$A=S-Ul&?B3YSTBcSW9Pi9D%a$c_1Ijdv8I62e!=JD(p2#cTHay&jh zx_9p$qLo2f>N+m}(eHd2!h?;O7J$}6wE_S)^+w-$>t9jr$e zO^pTxbPEVM5BPG^QYfOR7GVZ4mUuPEStM&27dbAr=92Ao(Lw<4k#RJD!{+n(qmMrN z)KgDA{q)lZ2M6!n=@cgDa17|c87(B@3_zMAdvD-!67&wsk`n;H?i}9v)+?{vym|B1 zt=o&mQdM(I-Z|~N)U8hr-#I?K4XFpoAnMs6QVB{G11-w-rrxZ+tbq%CMuaEMY73=NCc_?P%10aObARRJ_d>m7@bq+I+4lVrTy!FKHa%A zzqEh-vBy98si!{kna@1($n}i}^TK}c9BqweCX$H=9l?fbxNUK;q69eywH+QFzVgbq zZr*(D)~(x%#o|4DarS;{&&~C=Ib?Jo$DwH+qUluc9NvEGjlat|h2V-!I_IP+qvDi` zcWh^8&lHZ1juAPg-arhD*)g+ka^%^F&-#&U;@fyPx7Pe_R4=(pFM0LPBhlhXs$HnSn z+lese*{7Rgp(_ z)6?&K=R05d%2%Fw=9%Z8fBrqrg>&xz*3JP&8L}2fO#vEgM2dG05C8bZKl;W6qZghF z7T8sF(@drd?{kiY-atrT1<`_}W?14~OmyI-5&#hgUxA^B4d00{IL8Pk8BMwHRgt=! zRD?pw{+67xnsQM?n-x@G@%^B49D)!zqMf}aMbUyb~rq|^Wuwt{Qg{U_`Z6RF|GEZ!=gYe*ic0> z5%26>nx7uG>s7h95S75toaC&cfF@bNaJgKn7IaM(Q9~=tEi)+oxtP+)>FMcW@!dDx z_~a)(@v}eu6Z4(j<>HLV&!#(7sIov>tTc-cRaMpHM-??ds+%SRhX`Wo*%i#4a}7!}6t=!D;0<_ zs|gYyp>w`)T4Xi8m9xr@nU5Q~e756(I7 zyjRgN$`(pA9wNN))|_V?tXw1;RARd|BGMy#h>`8pIn@tNtUK*LI}*G zcMdG2lv6^4;GK7_Tt~cp0E__xUV7?1RMgaKQ*S_}UFMruS%>C7-Ot=u_Q?5KU5y?f>(#JmM?1Kv- zn3)g$(*7l87Rf$Tv-!-sP;fg$gv0>Ig#&=V&M`7^*=^wUY+?q9un?MHv?lZ50$5KTEt*>-s6oOcLlk`T}_qUpJw z@1mOE-S4-rfBoxU`N~%=+?&TQ8{gpe0DZGW7H`}JTR9sWvm+8BmlMG;69T9bFpnUm z^BJYR$6NpX3TM9Zm9NZZvx}9&x&42PHZU^*O*ysg^6cpT-B364T@BNnzxa>e_`|RM z+wbW#69en}czXYybZte}I6}=Ps$!BAkg`bIbwt=q8fHu>stPleDGZY{#hi<;)`+mK z8!*c$#u!sdDJJi|51x=jr1WF#N{X3wePklW0y6|6QiN16H7O@V3UxDAM?@Qv)%fIn z^{Zc<&1Tz`LUD_(*Q?lfRaG&OsMeE-4J*S3tAnq8^{XGUL++w87GTRqG7ctHC8czH zatvlwaERDUCJi*x>BM=@Ooc=sQWoDz#45U4wS{-eRC?#^$$9UD&`b*AQ6#A#BdOW{ zb@Oj#llkM1Ji1&(=c=kvFpDX*ZJ!mGC}z>Fo6e>+)6R4btg&Bb?VT?oWvJ^0fK=2u z@0^P%I}Wk$`aY&8#Ss1BcMVGZZ1>8wrfz5$Mj|4aDIsmH z#4mm6OHV!Z)WN~k%}h^HJUu=-K0cl{O;b0{`{{iC?iJ(V;o+CQ^aA|<@lil3s-?Rm zFFD27FBc0!>^n*+HFYJL+qU(=O=q*56CwwIZqj#M1SA9!RWq#X+5k#8MG2Gyz>EN- zhy+?fK%}IAy!=w|NV<* zjLo>j5EM;J;%af?oNJnDXFjVY&DZ|m-;|gI#P^hbi)198OeR;ZT#;!5sn@>M6v2#$ zy$eJJuGSA%0eev?bs^vDJo*iZ$>ppuM$^1nEhm$@ZCmH~^8Tf|sZ}M$t{6!b z)WoXFHIpXxxoMh|G7+WJ=bT~`#Db4N$K;q)fC)v1iP*PZ{q|>`{?FT#7VR21vsY&b z2qlSJ!A{Q3*4?U^)|Y60a(ZTv*>T^k(BR z)Y>|lMKj;^ZA`1vv%B~2zlBFw447}d_4e`6@xj6M>(};HXYF_Y_Vv$vdPZS7+zK5ZBR&VV(nHKM z8?5;cuCfPs>7|#>R}Z+QS{!aaVwzCZdlww3n51;;jo1IfU;G7Tbd4@XkB$OeT}M!uf0m(f<18U%mC_-^^yS!VYlGgURX1JFk56Xt`Wn zxqQ&Jr?Kms>D<-La=A=Nn%SJ#tD5s35Q-@0l~-Qbas%Kdw0+Q)5rLz^*B)RXgtmnd zC8CnVnNrRz2@u-?}&M78B9&wYTra7lkxr4S^8yF(4-MZY?By#(EyLD3!vw7k&qCYPN#<+)tKcv1@8!PF zG0vwu252Hg4gj-cGkfKm--3ssF@DJ7!0f^00t_vu0AjK57S3+YdH>SozUvWyiJQrU zBX@njTCM9kI3Ge)HQJa#>|=~^u{bMNW8ZhdSAEwZK^1&TeM&l?O$&ps@1o=aGQra7 zBH`<=zy8F>pP22;`ukmq(LjihIh09|bCnO1`*)A--MurJRsi<)+qW)V+NL z?jEzg^UfXbgQ~UbZaSM0^LpLqB(eVp5?oGCPt=4R^!>W)B?K2L7n8PaCWMr-h}HGv z`n48_qR3Gk3IgQm*nc)U7OA(s$j@j%KiQPiobdDCS3FkZsW0ZP!$Yt z@e8UFJVyx^%cmKuA`vhZU2deix~z6~C7m7?H@~?(Pn0X3g!{F`5MD zg7;>YvjCuD510^vksN!qEJ9_b&Ex>M;E@p#2#BeuHcEUzv4MtAA!3SgGMONviWXx# zv14|9>@{Tr^NyWw3_y{T$TiL0l`A`Yd(MY}$V&Jy8JgX^`PaX3;~yeXmgE>fMI}3; zY|L7e?N26CLR7$;H*ap;9zL{bfvRop5~W=oVVpEdUQDzET*2<{ZdHZl za&fjei?LfRm&6ofjInd<=JVNnK0~CFlT(r0buAH3ri~d$7GlgfWl2@=J3F)Kbiz!r zk6E$~FrQ(sMg({7-~IH@{cOIMn5n2#oMZ1@Arhq=EoadTAU<%}ml0C%;pphd4C}g? zOlCPt+qQk5nx<@&90gxh&4+&?c<1NSS@2=GI9)7G>&DOKle!MNGuxTX33b&jP14EH zo!ob+?_$4NoE=}q*q@|YVLIO2WNimvQnLLRImoXGOqM`9pMKB{qA3T65 z5hIjsrIEzCxdwn`{lewzW z5Zr9HZ{Nm|wg2I{=3sLi48pK6@rr1)qa!&iE*Y(=x_mTEy;z*ZzHgd}nbzy2qLivO z#y-W^G?OyqbI#|SGiGM)dIi*G(o7~(09dcuKK7Et6cA|4+cHF0EYF&zLQq$3W&n;+ za_UW+rk*y9nxxbLs%MvD0@Jh8Mdf|pC+2=Sod@swK6;lTON<$_nxS(ajT@Rd5V|T< zo$C-VrMy}!+cijvXlA0_dX0*=-hR7lzdM`lIAn(!CY7%pQ0}^(Tt%*8WZVSuA^^Z* zxj6UxY#9J;li)psyxSPlj#!v>BkKEn-B`jDR7DiT&XuzpMmr6X1Y#;OuTn$4XWse; zKOh#1#n3XC74a!C5GbKEp&_8-`^S%5+kf+o*B}3pPt109&yG*PSL2U?7jq2Ge-1*- zDKlt!rxLMoN%a%N5++t+qmjm>b}ALnAm6Z@H6{^J10W_qG*b~p05(GdQ6b{0cCOS{ z0OXhyb4n>jL_#$0Xggzu5Rr$dJ5U7_AUB4}Jfuh{PmT|6zO&OVPF?WURF-wVy8~+A zeYLw&*VQO;9=`s=9xDQFr3M#)KtWLqcamXSj0C8JMO;)>RiSeCedoQ4vCBEDNY}PG z=h*kLk0JQFuDiBNDXU6Kea=V(^Z9Hxn-WpqcQGZ&DmuXCv^007VA!WFR2(XvO)HTe zG$Mp@ZP#^R0zh^IzVcOY%k?6*{Ygy0ht+aT$nCl-yI=s6Y$xke7Xp)On#SxS*gm$a zoO7zGW^df(1>aM8L@Gj$GP^}WQ$;W)sB5=em}&N*s(c_~cHFgVVlve_ z)RQ{&eFw;DqGCjjh|M5pNl5?^iBoEmsCVAEkn=}CUIhz_vnBI-zB3`Lz_JMwgq-?S z*VR>xK>a$^ZaSas1y_mWg;y#Bw})A=v_(sMuc>Ca4?iGgb28>0@HNe`NfhP`(Y z)ew%M>V-~DhUWpPiaI6}l{_ZXjY7H{Dk3?HfLh5VFFqx9ZpeC7z)eV`ZPuY59@(Mn zMoa7mC?Qm{=_8LlX8qDcKmNog)~hySz)>vx5OEfqTP@TKX#i0WQQ>oIGD0nZ_D{ZZ z_%HAD(+@$pbK&9Fs`H$lT(`fJ@V~npA^@{EKwR|6s0-mEC~RdbDL0KFffx6_E1Ez zWy#INP2B)!2tIh%_3e7S>bi~)Rduymmvv80IaI-W2Viv_oO4-njD5n}Frz*&#YD7%LAvlpPWntnFs+f}M zkox`Mp9oc$=X`u}wCvVBLKf{*VqLr1I}9*s8UoS;-8$7(lSO^-v0vZ0bGz-|teVNe z<3CbO=Hv*`;YK2c_TVDW3^x-*RRIGewE-$_iswpW1Vke&kJg5@w~Z<2U_;tpmZ5Vt zEW&#=U`L}x;)2s@ycK;oSKc7|8!Br?Ks52rsc1&sy>|7@@4g<5$F1m)ad6S`asKYq zVoWaV`4UhI4p14*JA(Dme|z_bJ`TR;ZS^OPPCh@s`oGpZx_2x|j;hH3%(7%N#Q~PM z-4s5!=pEcAYM~12B>=+id`J7fkA2XR$~rVggQ8)$asOaLM0@C}0R|?CNzQ%jW8Wj1 z4~1Puj@`iBE3X2U07oKX6$_yvG6MyZK6Yh09wkW@Gc5&eDKHeld(Vz?PAN%BqN*yU zT9iwss*FyR%xg%d=&h5&`YZ=Q*doZ9O~B9t|D2Jcz6% zrHsf`RjFFel8bJQxC}UR{s?vr5z!k&jheS-IT^MFa)n5(C!mYJ(AwI`S!AiJT|F7 zxOGo0@#vzOC2Mg#7LM`A>Mg>ZB8p}p7)|M>Vmk@||}^Bwk00xHDAB-xON>7iq%ElBAmcpN8B|I`2Bpa1eDyYnai zY5Mr5fAN{8u7}f`fA*&@zt!5ijva$^~sD5gk!Q91$YU=QHnI-*r&J&UeCp|HjcTC;-^ytf&@aDswn;&M_mP z0Gi|is2!sc6iTZDn~rTHXqTNwN@;o4o*Z@SGuz5Sp5{Lj99*l&LU(tu-7&277ivClcD90AQcS4Mopx2~S} zmCt?t=MLb`&42%Ye&f46S4=>NhRP1fF_;#aW?k2P-^bXSVT`?VKBknjAW{9yzx-GK z^FR9$zVqTgzws~rk0TWY9ijukP*qLT%p5x=7eXMSB8XZpSEho9eeB4iX9qxST&oHa zWKAi>w(STh_A$jw4w$%L)F$-=iE`2qOt!7P6Y2f7)VN>Mr;I>C8s_wtTS=J zhuC!{>?o*csGJYZF{PZ@`)db}>|eR+L&ze;MogRhuZyp)o$CvSC_%jZ@gLbGM7aEk zCwAaFN9SL4aZsc~i9WhnON^uW>p%aG{+oaHkACH24FbUbN86i++g26l-c>c4Ip^y3 zJ}n#s1T_RZ6g3JWMlmX4RBY(PXw;Z%OuRQSea!vxrMWk`nm%fbeJ@~(5*1^jqF@&l zqgRs{8$fB!K4&+pnavoZs_q|Su6_0ajNknpc^>{a?8CFzYppqJ)~I^l-wRK8%)MX! zqCfgny={f0KI07GXid%08fP=P*CU^L$&=1FVMqu7k9g?G?vGx1-MZXyDX=}i>p2Z6 z0)TN=6cQpJ22mlb+q#QwSq_@mq!c&>vc7K*Q~)q{G`SthF*wYO2nfO)g`=osE1d#} zA};+wV%>KwAYn?$SSzg7l7LDNqRzT*C4-1$i6nsmB&5KSCoC-L$p9kvSv3AXESwPl z0IWb{Nh$_u$=XIjjLa!SNowNAHMURx${=3#mDfC*N-1x9ob_$jC1ga3A$DztWB|!K z&qhGOSm#}F7t9e{L5N9|EN0%0urg~?cO0Q8O6D}3&PJm$qy+$2OG&tycebcjS69cA zu`dcp!pm0h&e}j+>It%vl$nW-5LcE1rMVNQvf=H;85io{K5@um*oz1v0LJ$TOPBC%n zliEdc$CzY!e~{69;sOLBAj*eYz#Jv4&}XBPv(}3mgOy|!rSi= z`{+ww6nRWzkOWYbQ)1~M_He|Vfq+B`c~zvjj35Z0Bn}}gh{SupSWLBTR`%|5gG!H% zchMc6=MU0vsR~g)x}Ti(u=|dd2T8l~W9K~Yw;%G8pL*Y0-}mWnZKe=oOo>wpA+#Z8 z>$k}m64i`s1qGm$GamDh)#aKXuV8 z6xA5(3Kv2IRp)I{6y96woDC5?Bo=0gG0o=-5ir&o>&l{VML|T)75n$^zYBH^&v250Wickoh`PuM6|OORnvGfQUr~$ZJM=%w~i*e%E1IdSRzr*gfzFa zon&`GuH`J8IJ450t$^kzMNyz$in^=>`IwMWiZLd4;Ow7y!3&=DpksXQIoj`k>2tRo zch>0#EaGJM-m*AoZMNcXKX>k=BDmF49{se7p7_waGtHFZD*FxFb)D7He>I#gUXml4$7KIUw^F>j3#FUz_l$RQ7taDDZWR3vI8ngzI zNa8dY4OsQoTW{tseG#oc<;U-5T*Z>`c4jO*!duG&MHUv-JK+0svT>f^XU<|TUdXop zn9939`dKf0?i267*XCkS-}vdv|LzU%`{(r^|Hb=0@X31-$rq*f88?Qv^FnX)g6*zT z&w2Vq=RM@OsxJm>U;F60uDJU8!*{><4}bieJ&3pKaP-K84t6kL6phuKNvxothK#GK z^1yN9%6|X5-=59p;L5ITRWY)-qN;`?M5C&lqH*3BVqx1W8ZmoZg+*16NVy-s!O;pU z1{E-5i3JoXa*Roms4EI2E2@;E&{YAUESy2Z{ZdRQ1K6ws&=@)u#$F~40H7(hEd=HK zumZw-O(>#l&kdI&pd6CHqM~9f0f$aZF zXWMFA1z0o-mQ>dZ;cdc&X16;TYn`>m=CYpmDP~Ev$^V%G#299?S>8U>b^W8S2uNg| zB|`!rDJ2m!)>~H<178+s3>lLX)}1qCBu6b9L!daHPs8_aJm$FLjyvvz)jcIxgCGcm z+qdA3CQ(&$IUqvpF(>_O52%kl>w~)hM1_;2m=eqQUXQ-y1(!Vj)YXh|(!~v*e8+2E z|ADWp3mIROcKh4$)@CWfodk=5-E;59JpH2c9^4-`G#vWcN3XczBVRcf0CuM59sT&a z{i~qnCoGx%fKQ?dQP?1mF~dFkPE@_^*4vDAhKz8k7d0&E7~*KWVlsz|6A%e=FIZ5` z8SRPF5(cqUM(WNUK}CU86(Ge(#*sypq>5lX84DtY$XbJqKt(@|NU;FDvJn0|a@~3b6*f$P_)OL{!dF!(BCs&j#z+8?ym@pms z(wqO}#UH!(c`tn7C67CKM8&aZUGzIYan4t+c>Swh^RaJkW%*lC6yx#OSerivYs|13 zOt(v^aEd7}QL}i4hz7%fu~tFm^}Ovm0rl2dXS{cHE$i#+iDTDw#vA7>GsmcTY-5e- zLy}ZMl?(wuj4_0e6I_bIld&0sgM>EN5Zb%o)PSHMUDwr3%iLuNigUiKs-h@4abk{< zQ*2`bV>L-z4c*pk>U?2*p^y$8y6yY7+~BKfI9vq~>~R2kCu2fU1TfYjIJceAPDn(O z_co}2lq1?i1XoTu@6u;qa?U*_CJPzn-}(4EU;W0v|JN-QAwsm)6lQruAXt`zY^>UT zw!6Led(1N~e8TC+ZWn{Ee)NhfuKvow0C=YnB=CbqivR$Sghl&wDT}DaD2EV(2O&`F z3RcjVvfQZjema}ii-sfb-M`;hn}5YTjq4o;WCFLD1q>+(Gl*oW(Gg9Wf~ZCo1@uK_ zePKm|EQB?&f+BFa~4nEkjFMo~kAhXHAxQ7(zp+lIH7&HV)p>%nq-N2Mpq^-MxE{F}7(tQB#!z z5QQ8vzM~u*&E!-)%2U~IX%eT<4^)&xTQ^qrm8=KtJb=}n7`^k9Xivj>RX<_>a8*Ue|i_UvMNGTCf zSyqGLP(&8>qG?-etuLG*W1TIk$}C(At@CCy8Iz&1^f4uDx)>ry0R)j0QYu6;xUDD) z08A+wW1MpekXTsQxx&!@T{!#y&Gs>c$f*r&h&3XQ28Fdo1iBbS^P~i9;n9e5P!vYN z17O`OJhS0M)*e1|@TMDY*tL6aSq%(%gq)d9chrvLiBzVQ@09bA$xT9*?~||yt=#8{ z7e4114?k&?MZP@y)-{*E@v^JGemJQqE1Rd7&KAot5AG-jN2qFU@BJV9j0?|w;4#IH zV(_l3zj84A5GBG7NE!m{6H%D5J(!H?)1!gVDA^lty5-;g_1}k+)y<8~(P%iVDrH$a zw7!05&3nJHYj?)+Icu|s1&Dx5N?A=Wl9&HW8IA1lg~Y^(&==)sWmN#X5W#fDqjBE( zvKmxnQ8;G{>s2@dWqeh2Z9A_Ql7a)DI2Gk!G8v`NZEeIO?~9BvB!--G0Gc?-@)QH1 zlNcc5Sdj!o6*3r8S&T6p;&k({rf}$%@9$liG!$>S`KE)15AQp0;=cXIj(6_`C;+WQ zK?3cQ8jsRm@95}o=UI)=2q-gmU5us8~q#R>xvFo~SRE@m%i>5Z# z3v`R@bqk#`7-L1HY1^ib z&I16itR6^e6ks}=37~OqKHX@WnWh%K0VL>kN=J3?*l)0RI1ZM7L4>+=1QEK``#tWW zXFl=FU^uSIvMP#s z-EOR}mu2P4QW4QuQE|>|iU^wV+uD22EFmh0NZP6Hh>6)dKNz6%u?>M0j2l%WR}|Ly zs;a6%WekP3+t}EOT^J3j(Qs4_hPEgUZyc_M0~Q$!2gbOl-Oe2`B8iBAT5FgSGw0Zq z9DE`v0y7u`Dp_t$#vq^~D(m6f4u1Dr-z+_~Tl0MfR`(ruT)nmay_>#w_~6?5&9|0r zB|;nwC)5WtAs8jyj{G_55;+nUi9PWsPuc;{8QN}Wopmddm8z_eAjB?o-FH6vvfuuf zYkvCD=RfK60|gFG`pFmn!NZ<%-MjzhO;`Q%p@ePIgf4)BwyA%+#>J4DrZtwjwu>QJ zvYY?=vOj*_hpu|cOaAMBx#<3TtXaA56JPR{M?UETuYK7czx7i$ZfYS)F>^4^ZO zPg^l2FoH;BRSriZX5N}^ZEa1n&`U(sg0(iOh^lq2@YTNkd#AIljjhctbY)qpYT_6| zXnd=RF?N9By*sqtkTGRh<{dox40KafsD?vTFvb?eU9f!|j4GDIlEy2eMKg^YthIuQ z77JH!l)A3lwssCDtE+%vUQZWITUNe{-O9>j*PcDqU^pHRR>nhXNI4)G*3e7!`V&MJ z=aFv5CJ=6q5tJiyLLvb4`%inqMHig+pkw;}K5cyc!|!(j!Sz02Ks5QX?!estOo` zDg*@N&=vQ%*N+);)|HFJf&fbAjJ3uPr!<>RN8`z^q99`>C2K4wAenqz?7EIcm6auV zYtWD)?I^2A)+Yt)3IPCP6cXj2J7deL8m+EcXXmr6TMpi`e&{fVSQX`-UAuSh-d$AH zK6gyrEFgv$69N$0vMA}uh=N6o^ds1;n-WP$$q>2}LQ27UpVgpbU2gOZQe4!BZ#yU< zD%wdkz{oe&x}+nPj~)PF z0MIS@-)=BoT_xu%B8rMNo=O7VN#=KfUX*&;OlYc=}K5^E5u? z{Fl7ur=I!`ul%z=f8#YbE)Xcj_NdE+nGAXF3STg%t*zj0qezN#ut zt#CZNet2tZGsQrbkf10kPTVZIvM5uR&`=U#4c57;s+@BoQa5!MI_q2rF~k7vf{2`! zJs{^ty=w?7tE2gXlLV2JIEp0e$h(Tbu@M0Eg((VK4Vh@Bzj83(5700F;4s4FK!p0tXCVSj zi9-hwmyOAU*8AajG#*civWzL+cJR>J zp@WAGtu^!787nHdg=Ed{-MfmiK*FY}l^MYx^)T_}RMvRs5^9D!f@lcAJ7M zQG)=G5kv=w7F8g&?Z%-)z`8nFRSt&_tv8#zcJStdYqzc)T90kgC_JmJBTzNcD2EWc zVmQRY8A8DAl7@e>H2dJUe^s=_z&T#pRPrvhf5Z^-!Rs&oo3DTJw8uZ^l5-z? zY=Py0v!4BX4}R~3-hSOpSWc>Z#FS8PZA~$wNep>!dC8ScG3nOVulmzVKYGRE zpZDv(ed(EZD`<4`5tc3l>pWTG3L9eBIK198&FF;Dcsw@7EvN0-5JGtkpJG%5 zV=RIZ;k%+Dq`|1_(!8!0zI3DUkPr%AdOrvq$1WO6qRtq!9t@R5<@WB`V=XS4g{sUK zi{qX1&V@9|gvcH71Kjw$;S9yO5Ap@BPF}pY??M9eJ6rUj43jePr1g=zn@d*f~#>oqrZd zL8wox zO;gwPq8tvbw@HLR$ynuJtShTQ1dJgV;|yU@7G+h8=7$hC-wVDRl!)Y96ahkCmStHD zMx(MCi0W)UT|2zCIonKPUiXgw{>iHzc>eQ#@!~U%FR?uE(4YP94}AQW-u>rqynegK)}r*qU{I7^g^6%; zYfC}NnCxFQQKX=yg6;>xb`o(W}_|va>)9?M(d+d>4)(~YU zRfw@(EZVjc5uzM*iH0bHq{^}!4hLPk=(;+S^~k<1 z7Kmt!v&I1`7-deg=~j%<5FL9Qjz$JRh$y=kk+z?7NC-f*1fujmEbo2MZ(sV51GX0k zT>tm)eDixh|NT~y$dc9D$7Afws>j>qGNHZuPrvvH54@Yh?PJ2_KWt{8Kfp$_&Gyf! zB*~CfO_Eq8c8je;-}~--?UrV?xwWyOBD?qOJ@$l?cJ060aQ87J^queAu(2^!pt@;0 z6#^L!2Hs;fz@)?}GAFhk`haDDm>7_(^RaD3fQ&85qA0!bj<&yXw5BL3>x;6CiL+69 zI2k+Vx~|>a+FV;ZcxdxbOra<|d7DDgB%qN0wkV3#UAxMv5)ng&jB(x{(VB~dm^w}% zoVUUv*K^dff4M-@orz ziM+XX_~6YqcJ;x{`9`_2GOwp#QDSEb2WT?R;ArT{@_SvT!1gY#?S8W7Vq~+W=~)^G z3Ys`|Z4*Mrw|?fGzyJAb&wBO?fBxbJ9aEq`@Zd}S$FZmWOMY=P+l~nz~(xim?U}jiHpHX3q%WWHRxE&q4zc?z%3eWUb5B ztI7HZ?_r6z`O#MdU)c4{#uc{If;r6Vc~w-xb=xKt91KR2(b#)iH}kD&9a2P#^Tnb_ zRoiw&>8h%jZf!D$YA~#Z)!u!_05XE~5L7%G+krs+R)6~eMf>h^pMgaH;9IVF<;&iF z?e`ZcG4%HN9N*M`?%N5GcOp*4V^4cvpVx5kv#$f$BZjG}o-r5K;Z8me{6xz5NrI@4}Z@4K$o-gXAZV5H(+eA172`tVR z0MK;-tuw|VA;*-Mk;qz4#*ww8##kqcT}T}tIW-_z>pU52fXb@M>+!{6zIJGBV`C$6 z+O;}aSs4$9RczzN;f-cdb7E$l&89>IgyZpeIGNgv)&Yb5xYHlpUvuST*Y4E>LWslBKt%*ND+)qNM1+84SA-Bj!N@INc+0Om@1u`; z@t^(WQ|@8V-Tg5?b>xb+&TOj&I58mhPFy4e3?Yd?mO>APLj-0Cv-y^ygcQi2b*?O{ zt_vx|kb(jXMnhi|ZQJD!C%d)#*r+^Mv4*ToIj!KXa6^l72+d?=IJ7z42t_Nb zF|c!0!KL>0Vn$SQrYO8ck3d~Wfa)Br9h}YQ<=*}KLf0UuHJAy9NLdyqqJTU|k z(K|qf^oQ*kbZNL2P|ew^fPx?p+E{OCGk2je+zBLy37Yw0?KWd7S51oH-p!3I^j^V` zaUc=Vh)8y}vnUy(3T@Md#Dn3`I%kb>&a+FX>WiW*2dH8U^)~w>2W=u_^IE|bR8&>h zwi}!4Yiny8n;S&9d-tw=`*)8gLu+j}uO)QIscS>f6q9UjZAMOe)Bat%b`?b-%w9@E zJNG@NSBr82MQe;D14yD^a`S7P^+i<;%CaId^Z9&pYYK?g`T2ZK#(?pIl|38v?BKz5 zbp>1R2g5M!lo>g;n}^UOn?@;_ZZYlJ+Lg{AprQU~aQiIzB}W^V0IlT(3m~WnAV(YO z6jXB#a9I>cB#DvS z=hP=Z;(){QxQAW%tM`BS=RSD(dq4TjY5HN}BRu-w^>+Ud0Z7XIPHY$LY*RyHVk7ko z+qn^C4FOCX&yd*}VwTi~m0hkV%g}I4DFg!;6DyL*TfLN0Q`aG;qAXWdCe}Icec(ja zS?_^4M^wmB{go*O!{K;rj6uS>t`8qRbolV0*=&jgtE; z1YB9djRMQ?b$D>#dUYAJI*WcRLJRZ(nBr!lZ~)>;CPltLcySZh_at{W0B9P_o* zv<(p{aEu`_H%%R5=X}y7G)r&K-O)aob@>C?`264g*4Mvr>2ohR=bjUT!;>HRy#M(V zkNxz!U;m~LUVkVc^cZ6JA&7OIe(jwv``7P0^^&JP;^Z;W;Dj?T{M83M{Bs|?>^-0S z_bJ~w`{d{sq5hUzl5Wo;4S{ntL z$U?U1;^Fnfi}}JJCY7eE4WXpiF6NV!T@pjPSj5TL6pnh_`?kn+o9wzQ%17;{bQwIa zOVk1#H3sJBtYsM8^O4Vf*7=V*Vc08Lw*KS8Z~fa>eWZT!UtW|K-c1+snO}Jka{Fz> zC1zs`VqTM}*>}dpzwkTHdF(0UUM08wwfDa4kN@-?w?5&Wzq0(~Vv1eYrNjVa4CM!3 z?;p)E<%n7InNmvJHBB8;+l5Y8eBrIJnHEk&XmL0irpQg(SYxcS6%?5hm(_dBA}Tp- zCdQzOcge1yATw~K28kSYuk5N;s(RLj)SyKWMbaEbYz@TNHH!svyKAzWHO1Is6Pj)@ znGDC{$uS3xx%=Hu+`DgYHK@EVkPH!uWcBTGO0-=P^eBmvF8<>mUiH%Ju71?T&%fkx zr>+{TPCWZ({@vzVrttiu!yJ- zSZlo7p0^an*!g@u+nTO#96o&bkRfu;sxpc+i^VjC`E(0F%Can+kAY)iV=Tw0Jy?z; zrTKIk+LmL~RBpQ_&{obDod}Q>6#)gprPs|{UpiL|hNGey8s`$HE@O&VoOOx0hhd7& zrqkF44<~QBTTo012Q8#3aTK%Wr?x%m4b_U%G__j@{mqsl>=JBm^p)Lqg4~ zWRYy_LkqqrLg)aIRl6?C=JTeW&E`{3K|oU(YfVZqXh<=3AxM%Kl6SuJJ}cQ31PQ&j zBAO(La!P>=f)evxFh?L(2ZqR^pmb0Ts=`!_1P;=1SC(j;8h95ko4nFMWu>BH}M`$xZam|=S?fPi#|X~1%8D2p4eedo)szxK>0 zUG&sP-g9DbaKf1v{OSW9{<$kJd+*1;xy5*7kaa{MymQKcnng;Yntx{o0{|MjrkT$r zMola+DIhDhiLEn&J|tj<%2`Oksu}=J36VrGCNKaw2v0>hv7|&QF$PnW&3ra9WUR47 zzN&l(L4Yx!h%Kz&UN5O^uCL#4c&%A1LJVEo6op4H$^sI(X5an@^ zpc3v_D&5X2xx}pZ`F)_Gs4;djJmt|Bz2Jhg@6mS#Y3-|5{^hIQcJ;Srl9)xDr~ERrH5PGr!dWkP(Jwyl;m23~68qNAy!%!E>(y6YKVyi@&U)N2zsPZU#(3u( zpsHx%h=AxY#mJnhYLGa_6hjDI2yNRf7BxpEfKYcvDUoT~)_J#R>e*~zttGP7+r&{t zQwmK}t7?o607b-F5`ghwAPoO$Hqig?il7jhb}$;Q3|Ay-SI5#<2IteQsj)^y91$n4 z);Q;#b@RoX5UfROF;q;hL>J@^}{cG{_~#tp#2_;V;_9}ubg)F*FXB+E3W$Dt<4h9nhE?rSbDg);kwIS zcKx+y{Paan`^kH)S{xjI#>KyS+9N)9)!X0uiGSNlcN`_&vA9T{EP@JIt8KTK&FcAF z5~mnbN{U9wwUMQ6QA=)P-Lxz+8jrRXE%o*-Q6yGS76KC0#0()=Ym_B+9jBB+m~L%( zUsQvEac(?WA>$T{g>Wj0Jju@T&Dr;F{O&E&skMdx5Gf^Yo7P%l1OTnd!FV!3qWNrA zHywx~8Ds5WIE*PVGq9*Cf@-FWYd23vzJkGc+<|r}5^A1i`NA7xo%3ZiD16BZl2S}@ zI-SK3LdXZYENEh2UCb9T1W+|f4lRe+)XikFVyq=+eNhTTG9(PnIqw{7lg^GTca~+n zH^D61gPlUAOxlLtL7cC&B*POP_59~vaL!4?{;W0Z_h=+IagZKbs?pr zoi~)a5m=mK&tIkXbe#S zt+jnjGYNnO2?Pj$OHeAYNYk{7MJb(w91e%Ya9C+# zWhu+D>%x3Kuj{!2dhd&}bk_L7and8#$B(iiWbihtF=jTO6QT3YS%(0YD21@Tad=~M z-Fxr74I#`Ib7O|axxug!O$=dWW#!mok6m3|b=F#IVYxX}>0P4Bo`1Pp%KM@tA1kM9 zsLCKu#MIpI$v3?8pFei?g+KrNr#$4?0^OebKJn-N`@76&Jsalvn%_VCYMb=ei4`1eiTL5ST^YNdZ5ZI>}& zLW*tI*0rX@G1g5R+rW|QkmgMYDg!@ph!M0)ys~@Gts7fP2!*%|UzSx_4MK>s zt&JSDFrUwaQ`faQRR@t0GqNleix}f_fC6pXEoL*=e+;N{jKWOHh4aD*L_xJ{TTao4 z#f(3|Tn@0GZEnvIwqyU6PvvZ@&ZK`)7~b>o7e4EmXP-FgkrxL)f931{?9CthMu%1r znAxKzV=_c`rxTZ%V~ot=ixLN?Jo1^p@uCaQ+~3RF7B_tIwXb-^o3HuKEGNeSqNrxC z!VZ&##Fzv!HB)o=nz4W>Ap&5^y8trA83zg}CQv8}�lTo4O7iI_r$JRaxfWuqX>c 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 uwDpj6u$J!k%Yiu?EAN+eb`k>%pkSsP1`PZA~Fl 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 + + + 4.0.0 + + + org.openhab.addons.bundles + org.openhab.addons.reactor.bundles + 3.3.0 + + + org.openhab.binding.clementineremote + + openHAB Add-ons :: Bundles :: ClementineRemote Binding + + + + com.google.protobuf + protobuf-java + 3.15.8 + + + diff --git a/bundles/org.openhab.binding.clementineremote/proto/remotecontrolmessages.proto b/bundles/org.openhab.binding.clementineremote/proto/remotecontrolmessages.proto new file mode 100644 index 0000000000000..5490e3383fc31 --- /dev/null +++ b/bundles/org.openhab.binding.clementineremote/proto/remotecontrolmessages.proto @@ -0,0 +1,404 @@ +/* This file is part of Clementine. + Copyright 2017, David Sansome + Copyright 2017, Andreas Muttscheller + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +// Note: this file is licensed under the Apache License instead of GPL, so +// 3rd party applications or libraries can use another license besides GPL. +syntax = "proto2"; + +package pb.remote; + +option java_package = "de.qspool.clementineremote.backend.pb"; +option java_outer_classname = "ClementineRemote"; + +// The supported message types +enum MsgType { + UNKNOWN = 0; + // Messages generally send from client to server + CONNECT = 1; + REQUEST_PLAYLISTS = 3; + REQUEST_PLAYLIST_SONGS = 4; + CHANGE_SONG = 5; + SET_VOLUME = 6; + SET_TRACK_POSITION = 7; + INSERT_URLS = 8; + REMOVE_SONGS = 9; + OPEN_PLAYLIST = 10; + CLOSE_PLAYLIST = 11; + GET_LYRICS = 14; + DOWNLOAD_SONGS = 15; + SONG_OFFER_RESPONSE = 16; + // Lastfm + LOVE = 12; + BAN = 13; + STOP_AFTER = 17; + GET_LIBRARY = 18; + RATE_SONG = 19; + GLOBAL_SEARCH = 100; + + // Messages send by both + DISCONNECT = 2; + PLAY = 20; + PLAYPAUSE = 21; + PAUSE = 22; + STOP = 23; + NEXT = 24; + PREVIOUS = 25; + SHUFFLE_PLAYLIST = 26; + // Messages that contain the repeat or random mode + // Either set by client or clementine + REPEAT = 27; + SHUFFLE = 28; + + // Messages send from server to client + INFO = 40; + CURRENT_METAINFO = 41; + PLAYLISTS = 42; + PLAYLIST_SONGS = 43; + ENGINE_STATE_CHANGED = 44; + KEEP_ALIVE = 45; + UPDATE_TRACK_POSITION = 46; + ACTIVE_PLAYLIST_CHANGED = 47; + FIRST_DATA_SENT_COMPLETE = 48; + LYRICS = 49; + SONG_FILE_CHUNK = 50; + DOWNLOAD_QUEUE_EMPTY = 51; + LIBRARY_CHUNK = 52; + DOWNLOAD_TOTAL_SIZE = 53; + GLOBAL_SEARCH_RESULT = 54; + TRANSCODING_FILES = 55; + GLOBAL_SEARCH_STATUS = 56; +} + +// Valid Engine states +enum EngineState { + Empty = 0; + Idle = 1; + Playing = 2; + Paused = 3; +} + +// Song Metadata +message SongMetadata { + enum Type { + UNKNOWN = 0; + ASF = 1; + FLAC = 2; + MP4 = 3; + MPC = 4; + MPEG = 5; + OGGFLAC = 6; + OGGSPEEX = 7; + OGGVORBIS = 8; + AIFF = 9; + WAV = 10; + TRUEAUDIO = 11; + CDDA = 12; + OGGOPUS = 13; + STREAM = 99; + } + + optional int32 id = 1; // unique id of the song + optional int32 index = 2; // Index of the current row of the active playlist + optional string title = 3; + optional string album = 4; + optional string artist = 5; + optional string albumartist = 6; + optional int32 track = 7; + optional int32 disc = 8; + optional string pretty_year = 9; + optional string genre = 10; + optional int32 playcount = 11; + optional string pretty_length = 12; + optional bytes art = 13; + optional int32 length = 14; + optional bool is_local = 15; + optional string filename = 16; + optional int32 file_size = 17; + optional float rating = 18; // 0 (0 stars) to 1 (5 stars) + optional string url = 19; + optional string art_automatic = 20; + optional string art_manual = 21; + optional Type type = 22; +} + +// Playlist informations +message Playlist { + optional int32 id = 1; + optional string name = 2; + optional int32 item_count = 3; + optional bool active = 4; + optional bool closed = 5; +} + +// Valid Repeatmodes +enum RepeatMode { + Repeat_Off = 0; + Repeat_Track = 1; + Repeat_Album = 2; + Repeat_Playlist = 3; +} + +// Valid Shuffle modes +enum ShuffleMode { + Shuffle_Off = 0; + Shuffle_All = 1; + Shuffle_InsideAlbum = 2; + Shuffle_Albums = 3; +} + +message RequestPlaylists { + optional bool include_closed = 1; +} + +// A Client requests songs from a specific playlist +message RequestPlaylistSongs { + optional int32 id = 1; +} + +// Client want to change track +message RequestChangeSong { + // In which playlist is the song? + optional int32 playlist_id = 1; + // And on which position? + optional int32 song_index = 2; +} + +// Set the volume +message RequestSetVolume { + optional int32 volume = 1; +} + +// Repeat and Random messages +message Repeat { + optional RepeatMode repeat_mode = 1; +} + +message Shuffle { + optional ShuffleMode shuffle_mode = 1; +} + +// Response from server +// General info +message ResponseClementineInfo { + optional string version = 1; + optional EngineState state = 2; +} + +// The current song played +message ResponseCurrentMetadata { + optional SongMetadata song_metadata = 1; +} + +// The playlists in clementine +message ResponsePlaylists { + repeated Playlist playlist = 1; +} + +// A list of songs in a playlist +message ResponsePlaylistSongs { + optional Playlist requested_playlist = 1; + + // The songs that are in the playlist + repeated SongMetadata songs = 2; +} + +// The current state of the play engine +message ResponseEngineStateChanged { + optional EngineState state = 1; +} + +// Sends the current position of the track +message ResponseUpdateTrackPosition { + optional int32 position = 1; +} + +// The connect message containing the authentication code +message RequestConnect { + optional int32 auth_code = 1; + optional bool send_playlist_songs = 2; + optional bool downloader = 3; +} + +// Respone, why the connection was closed +enum ReasonDisconnect { + Server_Shutdown = 1; + Wrong_Auth_Code = 2; + Not_Authenticated = 3; + Download_Forbidden = 4; +} +message ResponseDisconnect { + optional ReasonDisconnect reason_disconnect = 1; +} + +message ResponseActiveChanged { + optional int32 id = 1; +} + +// A client requests a new track position +// position in seconds! +message RequestSetTrackPosition { + optional int32 position = 1; +} + +message RequestInsertUrls { + // In which playlist should the urls be inserted? + optional int32 playlist_id = 1; + repeated string urls = 2; + optional int32 position = 3 [default=-1]; + optional bool play_now = 4 [default=false]; + optional bool enqueue = 5 [default=false]; + repeated SongMetadata songs = 6; +} + +// Client want to change track +message RequestRemoveSongs { + // In which playlist is the songs? + optional int32 playlist_id = 1; + // And on which position? + repeated int32 songs = 2; +} + +// Messages for opening / closing playlists +message RequestOpenPlaylist { + optional int32 playlist_id = 1; +} +message RequestClosePlaylist { + optional int32 playlist_id = 1; +} + +// Message containing lyrics +message ResponseLyrics { + repeated Lyric lyrics = 1; +} +message Lyric { + optional string id = 1; + optional string title = 2; + optional string content = 3; +} + +// Message request for downloading songs +enum DownloadItem { + CurrentItem = 1; + ItemAlbum = 2; + APlaylist = 3; + Urls = 4; +} +message RequestDownloadSongs { + optional DownloadItem download_item = 1; + optional int32 playlist_id = 2; + repeated string urls = 3; +} + +message ResponseSongFileChunk { + optional int32 chunk_number = 1; + optional int32 chunk_count = 2; + optional int32 file_number = 3; + optional int32 file_count = 4; + optional SongMetadata song_metadata = 6; // only sent with first chunk! + optional bytes data = 7; + optional int32 size = 8; + optional bytes file_hash = 9; +} + +message ResponseLibraryChunk { + optional int32 chunk_number = 1; + optional int32 chunk_count = 2; + optional bytes data = 3; + optional int32 size = 4; + optional bytes file_hash = 5; +} + +message ResponseSongOffer { + optional bool accepted = 1; // true = client wants to download item +} + +message RequestRateSong { + optional float rating = 1; // 0 to 1 +} + +message ResponseDownloadTotalSize { + optional int32 total_size = 1; + optional int32 file_count = 2; +} + +message RequestGlobalSearch { + optional string query = 1; +} + +message ResponseGlobalSearch { + optional int32 id = 1; + optional string query = 2; + optional string search_provider = 3; + repeated SongMetadata song_metadata = 4; + optional bytes search_provider_icon = 5; +} + +message ResponseTranscoderStatus { + optional int32 processed = 1; + optional int32 total = 2; +} + +enum GlobalSearchStatus { + GlobalSearchStarted = 1; + GlobalSearchFinished = 2; +} + +message ResponseGlobalSearchStatus { + optional int32 id = 1; + optional string query = 2; + optional GlobalSearchStatus status = 3; +} + +// The message itself +message Message { + optional int32 version = 1 [default=21]; + optional MsgType type = 2 [default=UNKNOWN]; // What data is in the message? + + optional RequestConnect request_connect = 21; + optional RequestPlaylists request_playlists = 27; + optional RequestPlaylistSongs request_playlist_songs = 10; + optional RequestChangeSong request_change_song = 11; + optional RequestSetVolume request_set_volume = 12; + optional RequestSetTrackPosition request_set_track_position = 23; + optional RequestInsertUrls request_insert_urls = 25; + optional RequestRemoveSongs request_remove_songs = 26; + optional RequestOpenPlaylist request_open_playlist = 28; + optional RequestClosePlaylist request_close_playlist = 29; + optional RequestDownloadSongs request_download_songs = 31; + optional RequestRateSong request_rate_song = 35; + optional RequestGlobalSearch request_global_search = 37; + + optional Repeat repeat = 13; + optional Shuffle shuffle = 14; + + optional ResponseClementineInfo response_clementine_info = 15; + optional ResponseCurrentMetadata response_current_metadata = 16; + optional ResponsePlaylists response_playlists = 17; + optional ResponsePlaylistSongs response_playlist_songs = 18; + optional ResponseEngineStateChanged response_engine_state_changed = 19; + optional ResponseUpdateTrackPosition response_update_track_position = 20; + optional ResponseDisconnect response_disconnect = 22; + optional ResponseActiveChanged response_active_changed = 24; + optional ResponseLyrics response_lyrics = 30; + optional ResponseSongFileChunk response_song_file_chunk = 32; + optional ResponseSongOffer response_song_offer = 33; + optional ResponseLibraryChunk response_library_chunk = 34; + optional ResponseDownloadTotalSize response_download_total_size = 36; + optional ResponseGlobalSearch response_global_search = 38; + optional ResponseTranscoderStatus response_transcoder_status = 39; + optional ResponseGlobalSearchStatus response_global_search_status = 40; +} diff --git a/bundles/org.openhab.binding.clementineremote/src/main/feature/feature.xml b/bundles/org.openhab.binding.clementineremote/src/main/feature/feature.xml new file mode 100644 index 0000000000000..e746caa558590 --- /dev/null +++ b/bundles/org.openhab.binding.clementineremote/src/main/feature/feature.xml @@ -0,0 +1,9 @@ + + + mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/features + + + openhab-runtime-base + mvn:org.openhab.addons.bundles/org.openhab.binding.clementineremote/${project.version} + + diff --git a/bundles/org.openhab.binding.clementineremote/src/main/java/de/qspool/clementineremote/backend/pb/ClementineRemote.java b/bundles/org.openhab.binding.clementineremote/src/main/java/de/qspool/clementineremote/backend/pb/ClementineRemote.java new file mode 100644 index 0000000000000..99cf5161c490f --- /dev/null +++ b/bundles/org.openhab.binding.clementineremote/src/main/java/de/qspool/clementineremote/backend/pb/ClementineRemote.java @@ -0,0 +1,36434 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: proto/remotecontrolmessages.proto + +package de.qspool.clementineremote.backend.pb; + +/** + * @author generated by protoc + */ +public final class ClementineRemote { + private ClementineRemote() { + } + + public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry); + } + + /** + *
+     * The supported message types
+     * 
+ * + * Protobuf enum {@code pb.remote.MsgType} + */ + public enum MsgType implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNKNOWN = 0; + */ + UNKNOWN(0), + /** + *
+         * Messages generally send from client to server
+         * 
+ * + * CONNECT = 1; + */ + CONNECT(1), + /** + * REQUEST_PLAYLISTS = 3; + */ + REQUEST_PLAYLISTS(3), + /** + * REQUEST_PLAYLIST_SONGS = 4; + */ + REQUEST_PLAYLIST_SONGS(4), + /** + * CHANGE_SONG = 5; + */ + CHANGE_SONG(5), + /** + * SET_VOLUME = 6; + */ + SET_VOLUME(6), + /** + * SET_TRACK_POSITION = 7; + */ + SET_TRACK_POSITION(7), + /** + * INSERT_URLS = 8; + */ + INSERT_URLS(8), + /** + * REMOVE_SONGS = 9; + */ + REMOVE_SONGS(9), + /** + * OPEN_PLAYLIST = 10; + */ + OPEN_PLAYLIST(10), + /** + * CLOSE_PLAYLIST = 11; + */ + CLOSE_PLAYLIST(11), + /** + * GET_LYRICS = 14; + */ + GET_LYRICS(14), + /** + * DOWNLOAD_SONGS = 15; + */ + DOWNLOAD_SONGS(15), + /** + * SONG_OFFER_RESPONSE = 16; + */ + SONG_OFFER_RESPONSE(16), + /** + *
+         * Lastfm
+         * 
+ * + * LOVE = 12; + */ + LOVE(12), + /** + * BAN = 13; + */ + BAN(13), + /** + * STOP_AFTER = 17; + */ + STOP_AFTER(17), + /** + * GET_LIBRARY = 18; + */ + GET_LIBRARY(18), + /** + * RATE_SONG = 19; + */ + RATE_SONG(19), + /** + * GLOBAL_SEARCH = 100; + */ + GLOBAL_SEARCH(100), + /** + *
+         * Messages send by both
+         * 
+ * + * DISCONNECT = 2; + */ + DISCONNECT(2), + /** + * PLAY = 20; + */ + PLAY(20), + /** + * PLAYPAUSE = 21; + */ + PLAYPAUSE(21), + /** + * PAUSE = 22; + */ + PAUSE(22), + /** + * STOP = 23; + */ + STOP(23), + /** + * NEXT = 24; + */ + NEXT(24), + /** + * PREVIOUS = 25; + */ + PREVIOUS(25), + /** + * SHUFFLE_PLAYLIST = 26; + */ + SHUFFLE_PLAYLIST(26), + /** + *
+         * Messages that contain the repeat or random mode
+         * Either set by client or clementine
+         * 
+ * + * REPEAT = 27; + */ + REPEAT(27), + /** + * SHUFFLE = 28; + */ + SHUFFLE(28), + /** + *
+         * Messages send from server to client
+         * 
+ * + * INFO = 40; + */ + INFO(40), + /** + * CURRENT_METAINFO = 41; + */ + CURRENT_METAINFO(41), + /** + * PLAYLISTS = 42; + */ + PLAYLISTS(42), + /** + * PLAYLIST_SONGS = 43; + */ + PLAYLIST_SONGS(43), + /** + * ENGINE_STATE_CHANGED = 44; + */ + ENGINE_STATE_CHANGED(44), + /** + * KEEP_ALIVE = 45; + */ + KEEP_ALIVE(45), + /** + * UPDATE_TRACK_POSITION = 46; + */ + UPDATE_TRACK_POSITION(46), + /** + * ACTIVE_PLAYLIST_CHANGED = 47; + */ + ACTIVE_PLAYLIST_CHANGED(47), + /** + * FIRST_DATA_SENT_COMPLETE = 48; + */ + FIRST_DATA_SENT_COMPLETE(48), + /** + * LYRICS = 49; + */ + LYRICS(49), + /** + * SONG_FILE_CHUNK = 50; + */ + SONG_FILE_CHUNK(50), + /** + * DOWNLOAD_QUEUE_EMPTY = 51; + */ + DOWNLOAD_QUEUE_EMPTY(51), + /** + * LIBRARY_CHUNK = 52; + */ + LIBRARY_CHUNK(52), + /** + * DOWNLOAD_TOTAL_SIZE = 53; + */ + DOWNLOAD_TOTAL_SIZE(53), + /** + * GLOBAL_SEARCH_RESULT = 54; + */ + GLOBAL_SEARCH_RESULT(54), + /** + * TRANSCODING_FILES = 55; + */ + TRANSCODING_FILES(55), + /** + * GLOBAL_SEARCH_STATUS = 56; + */ + GLOBAL_SEARCH_STATUS(56),; + + /** + * UNKNOWN = 0; + */ + public static final int UNKNOWN_VALUE = 0; + /** + *
+         * Messages generally send from client to server
+         * 
+ * + * CONNECT = 1; + */ + public static final int CONNECT_VALUE = 1; + /** + * REQUEST_PLAYLISTS = 3; + */ + public static final int REQUEST_PLAYLISTS_VALUE = 3; + /** + * REQUEST_PLAYLIST_SONGS = 4; + */ + public static final int REQUEST_PLAYLIST_SONGS_VALUE = 4; + /** + * CHANGE_SONG = 5; + */ + public static final int CHANGE_SONG_VALUE = 5; + /** + * SET_VOLUME = 6; + */ + public static final int SET_VOLUME_VALUE = 6; + /** + * SET_TRACK_POSITION = 7; + */ + public static final int SET_TRACK_POSITION_VALUE = 7; + /** + * INSERT_URLS = 8; + */ + public static final int INSERT_URLS_VALUE = 8; + /** + * REMOVE_SONGS = 9; + */ + public static final int REMOVE_SONGS_VALUE = 9; + /** + * OPEN_PLAYLIST = 10; + */ + public static final int OPEN_PLAYLIST_VALUE = 10; + /** + * CLOSE_PLAYLIST = 11; + */ + public static final int CLOSE_PLAYLIST_VALUE = 11; + /** + * GET_LYRICS = 14; + */ + public static final int GET_LYRICS_VALUE = 14; + /** + * DOWNLOAD_SONGS = 15; + */ + public static final int DOWNLOAD_SONGS_VALUE = 15; + /** + * SONG_OFFER_RESPONSE = 16; + */ + public static final int SONG_OFFER_RESPONSE_VALUE = 16; + /** + *
+         * Lastfm
+         * 
+ * + * LOVE = 12; + */ + public static final int LOVE_VALUE = 12; + /** + * BAN = 13; + */ + public static final int BAN_VALUE = 13; + /** + * STOP_AFTER = 17; + */ + public static final int STOP_AFTER_VALUE = 17; + /** + * GET_LIBRARY = 18; + */ + public static final int GET_LIBRARY_VALUE = 18; + /** + * RATE_SONG = 19; + */ + public static final int RATE_SONG_VALUE = 19; + /** + * GLOBAL_SEARCH = 100; + */ + public static final int GLOBAL_SEARCH_VALUE = 100; + /** + *
+         * Messages send by both
+         * 
+ * + * DISCONNECT = 2; + */ + public static final int DISCONNECT_VALUE = 2; + /** + * PLAY = 20; + */ + public static final int PLAY_VALUE = 20; + /** + * PLAYPAUSE = 21; + */ + public static final int PLAYPAUSE_VALUE = 21; + /** + * PAUSE = 22; + */ + public static final int PAUSE_VALUE = 22; + /** + * STOP = 23; + */ + public static final int STOP_VALUE = 23; + /** + * NEXT = 24; + */ + public static final int NEXT_VALUE = 24; + /** + * PREVIOUS = 25; + */ + public static final int PREVIOUS_VALUE = 25; + /** + * SHUFFLE_PLAYLIST = 26; + */ + public static final int SHUFFLE_PLAYLIST_VALUE = 26; + /** + *
+         * Messages that contain the repeat or random mode
+         * Either set by client or clementine
+         * 
+ * + * REPEAT = 27; + */ + public static final int REPEAT_VALUE = 27; + /** + * SHUFFLE = 28; + */ + public static final int SHUFFLE_VALUE = 28; + /** + *
+         * Messages send from server to client
+         * 
+ * + * INFO = 40; + */ + public static final int INFO_VALUE = 40; + /** + * CURRENT_METAINFO = 41; + */ + public static final int CURRENT_METAINFO_VALUE = 41; + /** + * PLAYLISTS = 42; + */ + public static final int PLAYLISTS_VALUE = 42; + /** + * PLAYLIST_SONGS = 43; + */ + public static final int PLAYLIST_SONGS_VALUE = 43; + /** + * ENGINE_STATE_CHANGED = 44; + */ + public static final int ENGINE_STATE_CHANGED_VALUE = 44; + /** + * KEEP_ALIVE = 45; + */ + public static final int KEEP_ALIVE_VALUE = 45; + /** + * UPDATE_TRACK_POSITION = 46; + */ + public static final int UPDATE_TRACK_POSITION_VALUE = 46; + /** + * ACTIVE_PLAYLIST_CHANGED = 47; + */ + public static final int ACTIVE_PLAYLIST_CHANGED_VALUE = 47; + /** + * FIRST_DATA_SENT_COMPLETE = 48; + */ + public static final int FIRST_DATA_SENT_COMPLETE_VALUE = 48; + /** + * LYRICS = 49; + */ + public static final int LYRICS_VALUE = 49; + /** + * SONG_FILE_CHUNK = 50; + */ + public static final int SONG_FILE_CHUNK_VALUE = 50; + /** + * DOWNLOAD_QUEUE_EMPTY = 51; + */ + public static final int DOWNLOAD_QUEUE_EMPTY_VALUE = 51; + /** + * LIBRARY_CHUNK = 52; + */ + public static final int LIBRARY_CHUNK_VALUE = 52; + /** + * DOWNLOAD_TOTAL_SIZE = 53; + */ + public static final int DOWNLOAD_TOTAL_SIZE_VALUE = 53; + /** + * GLOBAL_SEARCH_RESULT = 54; + */ + public static final int GLOBAL_SEARCH_RESULT_VALUE = 54; + /** + * TRANSCODING_FILES = 55; + */ + public static final int TRANSCODING_FILES_VALUE = 55; + /** + * GLOBAL_SEARCH_STATUS = 56; + */ + public static final int GLOBAL_SEARCH_STATUS_VALUE = 56; + + public final int getNumber() { + return value; + } + + /** + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static MsgType valueOf(int value) { + return forNumber(value); + } + + public static MsgType forNumber(int value) { + switch (value) { + case 0: + return UNKNOWN; + case 1: + return CONNECT; + case 3: + return REQUEST_PLAYLISTS; + case 4: + return REQUEST_PLAYLIST_SONGS; + case 5: + return CHANGE_SONG; + case 6: + return SET_VOLUME; + case 7: + return SET_TRACK_POSITION; + case 8: + return INSERT_URLS; + case 9: + return REMOVE_SONGS; + case 10: + return OPEN_PLAYLIST; + case 11: + return CLOSE_PLAYLIST; + case 14: + return GET_LYRICS; + case 15: + return DOWNLOAD_SONGS; + case 16: + return SONG_OFFER_RESPONSE; + case 12: + return LOVE; + case 13: + return BAN; + case 17: + return STOP_AFTER; + case 18: + return GET_LIBRARY; + case 19: + return RATE_SONG; + case 100: + return GLOBAL_SEARCH; + case 2: + return DISCONNECT; + case 20: + return PLAY; + case 21: + return PLAYPAUSE; + case 22: + return PAUSE; + case 23: + return STOP; + case 24: + return NEXT; + case 25: + return PREVIOUS; + case 26: + return SHUFFLE_PLAYLIST; + case 27: + return REPEAT; + case 28: + return SHUFFLE; + case 40: + return INFO; + case 41: + return CURRENT_METAINFO; + case 42: + return PLAYLISTS; + case 43: + return PLAYLIST_SONGS; + case 44: + return ENGINE_STATE_CHANGED; + case 45: + return KEEP_ALIVE; + case 46: + return UPDATE_TRACK_POSITION; + case 47: + return ACTIVE_PLAYLIST_CHANGED; + case 48: + return FIRST_DATA_SENT_COMPLETE; + case 49: + return LYRICS; + case 50: + return SONG_FILE_CHUNK; + case 51: + return DOWNLOAD_QUEUE_EMPTY; + case 52: + return LIBRARY_CHUNK; + case 53: + return DOWNLOAD_TOTAL_SIZE; + case 54: + return GLOBAL_SEARCH_RESULT; + case 55: + return TRANSCODING_FILES; + case 56: + return GLOBAL_SEARCH_STATUS; + default: + return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } + + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { + public MsgType findValueByNumber(int number) { + return MsgType.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + return getDescriptor().getValues().get(ordinal()); + } + + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } + + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.getDescriptor().getEnumTypes().get(0); + } + + private static final MsgType[] VALUES = values(); + + public static MsgType valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private MsgType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:pb.remote.MsgType) + } + + /** + *
+     * Valid Engine states
+     * 
+ * + * Protobuf enum {@code pb.remote.EngineState} + */ + public enum EngineState implements com.google.protobuf.ProtocolMessageEnum { + /** + * Empty = 0; + */ + Empty(0), + /** + * Idle = 1; + */ + Idle(1), + /** + * Playing = 2; + */ + Playing(2), + /** + * Paused = 3; + */ + Paused(3),; + + /** + * Empty = 0; + */ + public static final int Empty_VALUE = 0; + /** + * Idle = 1; + */ + public static final int Idle_VALUE = 1; + /** + * Playing = 2; + */ + public static final int Playing_VALUE = 2; + /** + * Paused = 3; + */ + public static final int Paused_VALUE = 3; + + public final int getNumber() { + return value; + } + + /** + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static EngineState valueOf(int value) { + return forNumber(value); + } + + public static EngineState forNumber(int value) { + switch (value) { + case 0: + return Empty; + case 1: + return Idle; + case 2: + return Playing; + case 3: + return Paused; + default: + return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } + + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { + public EngineState findValueByNumber(int number) { + return EngineState.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + return getDescriptor().getValues().get(ordinal()); + } + + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } + + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.getDescriptor().getEnumTypes().get(1); + } + + private static final EngineState[] VALUES = values(); + + public static EngineState valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private EngineState(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:pb.remote.EngineState) + } + + /** + *
+     * Valid Repeatmodes
+     * 
+ * + * Protobuf enum {@code pb.remote.RepeatMode} + */ + public enum RepeatMode implements com.google.protobuf.ProtocolMessageEnum { + /** + * Repeat_Off = 0; + */ + Repeat_Off(0), + /** + * Repeat_Track = 1; + */ + Repeat_Track(1), + /** + * Repeat_Album = 2; + */ + Repeat_Album(2), + /** + * Repeat_Playlist = 3; + */ + Repeat_Playlist(3),; + + /** + * Repeat_Off = 0; + */ + public static final int Repeat_Off_VALUE = 0; + /** + * Repeat_Track = 1; + */ + public static final int Repeat_Track_VALUE = 1; + /** + * Repeat_Album = 2; + */ + public static final int Repeat_Album_VALUE = 2; + /** + * Repeat_Playlist = 3; + */ + public static final int Repeat_Playlist_VALUE = 3; + + public final int getNumber() { + return value; + } + + /** + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static RepeatMode valueOf(int value) { + return forNumber(value); + } + + public static RepeatMode forNumber(int value) { + switch (value) { + case 0: + return Repeat_Off; + case 1: + return Repeat_Track; + case 2: + return Repeat_Album; + case 3: + return Repeat_Playlist; + default: + return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } + + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { + public RepeatMode findValueByNumber(int number) { + return RepeatMode.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + return getDescriptor().getValues().get(ordinal()); + } + + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } + + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.getDescriptor().getEnumTypes().get(2); + } + + private static final RepeatMode[] VALUES = values(); + + public static RepeatMode valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private RepeatMode(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:pb.remote.RepeatMode) + } + + /** + *
+     * Valid Shuffle modes
+     * 
+ * + * Protobuf enum {@code pb.remote.ShuffleMode} + */ + public enum ShuffleMode implements com.google.protobuf.ProtocolMessageEnum { + /** + * Shuffle_Off = 0; + */ + Shuffle_Off(0), + /** + * Shuffle_All = 1; + */ + Shuffle_All(1), + /** + * Shuffle_InsideAlbum = 2; + */ + Shuffle_InsideAlbum(2), + /** + * Shuffle_Albums = 3; + */ + Shuffle_Albums(3),; + + /** + * Shuffle_Off = 0; + */ + public static final int Shuffle_Off_VALUE = 0; + /** + * Shuffle_All = 1; + */ + public static final int Shuffle_All_VALUE = 1; + /** + * Shuffle_InsideAlbum = 2; + */ + public static final int Shuffle_InsideAlbum_VALUE = 2; + /** + * Shuffle_Albums = 3; + */ + public static final int Shuffle_Albums_VALUE = 3; + + public final int getNumber() { + return value; + } + + /** + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ShuffleMode valueOf(int value) { + return forNumber(value); + } + + public static ShuffleMode forNumber(int value) { + switch (value) { + case 0: + return Shuffle_Off; + case 1: + return Shuffle_All; + case 2: + return Shuffle_InsideAlbum; + case 3: + return Shuffle_Albums; + default: + return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } + + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { + public ShuffleMode findValueByNumber(int number) { + return ShuffleMode.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + return getDescriptor().getValues().get(ordinal()); + } + + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } + + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.getDescriptor().getEnumTypes().get(3); + } + + private static final ShuffleMode[] VALUES = values(); + + public static ShuffleMode valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private ShuffleMode(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:pb.remote.ShuffleMode) + } + + /** + *
+     * Respone, why the connection was closed
+     * 
+ * + * Protobuf enum {@code pb.remote.ReasonDisconnect} + */ + public enum ReasonDisconnect implements com.google.protobuf.ProtocolMessageEnum { + /** + * Server_Shutdown = 1; + */ + Server_Shutdown(1), + /** + * Wrong_Auth_Code = 2; + */ + Wrong_Auth_Code(2), + /** + * Not_Authenticated = 3; + */ + Not_Authenticated(3), + /** + * Download_Forbidden = 4; + */ + Download_Forbidden(4),; + + /** + * Server_Shutdown = 1; + */ + public static final int Server_Shutdown_VALUE = 1; + /** + * Wrong_Auth_Code = 2; + */ + public static final int Wrong_Auth_Code_VALUE = 2; + /** + * Not_Authenticated = 3; + */ + public static final int Not_Authenticated_VALUE = 3; + /** + * Download_Forbidden = 4; + */ + public static final int Download_Forbidden_VALUE = 4; + + public final int getNumber() { + return value; + } + + /** + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ReasonDisconnect valueOf(int value) { + return forNumber(value); + } + + public static ReasonDisconnect forNumber(int value) { + switch (value) { + case 1: + return Server_Shutdown; + case 2: + return Wrong_Auth_Code; + case 3: + return Not_Authenticated; + case 4: + return Download_Forbidden; + default: + return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } + + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { + public ReasonDisconnect findValueByNumber(int number) { + return ReasonDisconnect.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + return getDescriptor().getValues().get(ordinal()); + } + + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } + + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.getDescriptor().getEnumTypes().get(4); + } + + private static final ReasonDisconnect[] VALUES = values(); + + public static ReasonDisconnect valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private ReasonDisconnect(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:pb.remote.ReasonDisconnect) + } + + /** + *
+     * Message request for downloading songs
+     * 
+ * + * Protobuf enum {@code pb.remote.DownloadItem} + */ + public enum DownloadItem implements com.google.protobuf.ProtocolMessageEnum { + /** + * CurrentItem = 1; + */ + CurrentItem(1), + /** + * ItemAlbum = 2; + */ + ItemAlbum(2), + /** + * APlaylist = 3; + */ + APlaylist(3), + /** + * Urls = 4; + */ + Urls(4),; + + /** + * CurrentItem = 1; + */ + public static final int CurrentItem_VALUE = 1; + /** + * ItemAlbum = 2; + */ + public static final int ItemAlbum_VALUE = 2; + /** + * APlaylist = 3; + */ + public static final int APlaylist_VALUE = 3; + /** + * Urls = 4; + */ + public static final int Urls_VALUE = 4; + + public final int getNumber() { + return value; + } + + /** + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static DownloadItem valueOf(int value) { + return forNumber(value); + } + + public static DownloadItem forNumber(int value) { + switch (value) { + case 1: + return CurrentItem; + case 2: + return ItemAlbum; + case 3: + return APlaylist; + case 4: + return Urls; + default: + return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } + + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { + public DownloadItem findValueByNumber(int number) { + return DownloadItem.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + return getDescriptor().getValues().get(ordinal()); + } + + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } + + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.getDescriptor().getEnumTypes().get(5); + } + + private static final DownloadItem[] VALUES = values(); + + public static DownloadItem valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private DownloadItem(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:pb.remote.DownloadItem) + } + + /** + * Protobuf enum {@code pb.remote.GlobalSearchStatus} + */ + public enum GlobalSearchStatus implements com.google.protobuf.ProtocolMessageEnum { + /** + * GlobalSearchStarted = 1; + */ + GlobalSearchStarted(1), + /** + * GlobalSearchFinished = 2; + */ + GlobalSearchFinished(2),; + + /** + * GlobalSearchStarted = 1; + */ + public static final int GlobalSearchStarted_VALUE = 1; + /** + * GlobalSearchFinished = 2; + */ + public static final int GlobalSearchFinished_VALUE = 2; + + public final int getNumber() { + return value; + } + + /** + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static GlobalSearchStatus valueOf(int value) { + return forNumber(value); + } + + public static GlobalSearchStatus forNumber(int value) { + switch (value) { + case 1: + return GlobalSearchStarted; + case 2: + return GlobalSearchFinished; + default: + return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } + + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { + public GlobalSearchStatus findValueByNumber(int number) { + return GlobalSearchStatus.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + return getDescriptor().getValues().get(ordinal()); + } + + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } + + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.getDescriptor().getEnumTypes().get(6); + } + + private static final GlobalSearchStatus[] VALUES = values(); + + public static GlobalSearchStatus valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private GlobalSearchStatus(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:pb.remote.GlobalSearchStatus) + } + + public interface SongMetadataOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.SongMetadata) + com.google.protobuf.MessageOrBuilder { + + /** + *
+         * unique id of the song
+         * 
+ * + * optional int32 id = 1; + */ + boolean hasId(); + + /** + *
+         * unique id of the song
+         * 
+ * + * optional int32 id = 1; + */ + int getId(); + + /** + *
+         * Index of the current row of the active playlist
+         * 
+ * + * optional int32 index = 2; + */ + boolean hasIndex(); + + /** + *
+         * Index of the current row of the active playlist
+         * 
+ * + * optional int32 index = 2; + */ + int getIndex(); + + /** + * optional string title = 3; + */ + boolean hasTitle(); + + /** + * optional string title = 3; + */ + java.lang.String getTitle(); + + /** + * optional string title = 3; + */ + com.google.protobuf.ByteString getTitleBytes(); + + /** + * optional string album = 4; + */ + boolean hasAlbum(); + + /** + * optional string album = 4; + */ + java.lang.String getAlbum(); + + /** + * optional string album = 4; + */ + com.google.protobuf.ByteString getAlbumBytes(); + + /** + * optional string artist = 5; + */ + boolean hasArtist(); + + /** + * optional string artist = 5; + */ + java.lang.String getArtist(); + + /** + * optional string artist = 5; + */ + com.google.protobuf.ByteString getArtistBytes(); + + /** + * optional string albumartist = 6; + */ + boolean hasAlbumartist(); + + /** + * optional string albumartist = 6; + */ + java.lang.String getAlbumartist(); + + /** + * optional string albumartist = 6; + */ + com.google.protobuf.ByteString getAlbumartistBytes(); + + /** + * optional int32 track = 7; + */ + boolean hasTrack(); + + /** + * optional int32 track = 7; + */ + int getTrack(); + + /** + * optional int32 disc = 8; + */ + boolean hasDisc(); + + /** + * optional int32 disc = 8; + */ + int getDisc(); + + /** + * optional string pretty_year = 9; + */ + boolean hasPrettyYear(); + + /** + * optional string pretty_year = 9; + */ + java.lang.String getPrettyYear(); + + /** + * optional string pretty_year = 9; + */ + com.google.protobuf.ByteString getPrettyYearBytes(); + + /** + * optional string genre = 10; + */ + boolean hasGenre(); + + /** + * optional string genre = 10; + */ + java.lang.String getGenre(); + + /** + * optional string genre = 10; + */ + com.google.protobuf.ByteString getGenreBytes(); + + /** + * optional int32 playcount = 11; + */ + boolean hasPlaycount(); + + /** + * optional int32 playcount = 11; + */ + int getPlaycount(); + + /** + * optional string pretty_length = 12; + */ + boolean hasPrettyLength(); + + /** + * optional string pretty_length = 12; + */ + java.lang.String getPrettyLength(); + + /** + * optional string pretty_length = 12; + */ + com.google.protobuf.ByteString getPrettyLengthBytes(); + + /** + * optional bytes art = 13; + */ + boolean hasArt(); + + /** + * optional bytes art = 13; + */ + com.google.protobuf.ByteString getArt(); + + /** + * optional int32 length = 14; + */ + boolean hasLength(); + + /** + * optional int32 length = 14; + */ + int getLength(); + + /** + * optional bool is_local = 15; + */ + boolean hasIsLocal(); + + /** + * optional bool is_local = 15; + */ + boolean getIsLocal(); + + /** + * optional string filename = 16; + */ + boolean hasFilename(); + + /** + * optional string filename = 16; + */ + java.lang.String getFilename(); + + /** + * optional string filename = 16; + */ + com.google.protobuf.ByteString getFilenameBytes(); + + /** + * optional int32 file_size = 17; + */ + boolean hasFileSize(); + + /** + * optional int32 file_size = 17; + */ + int getFileSize(); + + /** + *
+         * 0 (0 stars) to 1 (5 stars)
+         * 
+ * + * optional float rating = 18; + */ + boolean hasRating(); + + /** + *
+         * 0 (0 stars) to 1 (5 stars)
+         * 
+ * + * optional float rating = 18; + */ + float getRating(); + + /** + * optional string url = 19; + */ + boolean hasUrl(); + + /** + * optional string url = 19; + */ + java.lang.String getUrl(); + + /** + * optional string url = 19; + */ + com.google.protobuf.ByteString getUrlBytes(); + + /** + * optional string art_automatic = 20; + */ + boolean hasArtAutomatic(); + + /** + * optional string art_automatic = 20; + */ + java.lang.String getArtAutomatic(); + + /** + * optional string art_automatic = 20; + */ + com.google.protobuf.ByteString getArtAutomaticBytes(); + + /** + * optional string art_manual = 21; + */ + boolean hasArtManual(); + + /** + * optional string art_manual = 21; + */ + java.lang.String getArtManual(); + + /** + * optional string art_manual = 21; + */ + com.google.protobuf.ByteString getArtManualBytes(); + + /** + * optional .pb.remote.SongMetadata.Type type = 22; + */ + boolean hasType(); + + /** + * optional .pb.remote.SongMetadata.Type type = 22; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Type getType(); + } + + /** + *
+     * Song Metadata
+     * 
+ * + * Protobuf type {@code pb.remote.SongMetadata} + */ + public static final class SongMetadata extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.SongMetadata) + SongMetadataOrBuilder { + private static final long serialVersionUID = 0L; + + // Use SongMetadata.newBuilder() to construct. + private SongMetadata(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private SongMetadata() { + id_ = 0; + index_ = 0; + title_ = ""; + album_ = ""; + artist_ = ""; + albumartist_ = ""; + track_ = 0; + disc_ = 0; + prettyYear_ = ""; + genre_ = ""; + playcount_ = 0; + prettyLength_ = ""; + art_ = com.google.protobuf.ByteString.EMPTY; + length_ = 0; + isLocal_ = false; + filename_ = ""; + fileSize_ = 0; + rating_ = 0F; + url_ = ""; + artAutomatic_ = ""; + artManual_ = ""; + type_ = 0; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private SongMetadata(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + bitField0_ |= 0x00000001; + id_ = input.readInt32(); + break; + } + case 16: { + bitField0_ |= 0x00000002; + index_ = input.readInt32(); + break; + } + case 26: { + com.google.protobuf.ByteString bs = input.readBytes(); + bitField0_ |= 0x00000004; + title_ = bs; + break; + } + case 34: { + com.google.protobuf.ByteString bs = input.readBytes(); + bitField0_ |= 0x00000008; + album_ = bs; + break; + } + case 42: { + com.google.protobuf.ByteString bs = input.readBytes(); + bitField0_ |= 0x00000010; + artist_ = bs; + break; + } + case 50: { + com.google.protobuf.ByteString bs = input.readBytes(); + bitField0_ |= 0x00000020; + albumartist_ = bs; + break; + } + case 56: { + bitField0_ |= 0x00000040; + track_ = input.readInt32(); + break; + } + case 64: { + bitField0_ |= 0x00000080; + disc_ = input.readInt32(); + break; + } + case 74: { + com.google.protobuf.ByteString bs = input.readBytes(); + bitField0_ |= 0x00000100; + prettyYear_ = bs; + break; + } + case 82: { + com.google.protobuf.ByteString bs = input.readBytes(); + bitField0_ |= 0x00000200; + genre_ = bs; + break; + } + case 88: { + bitField0_ |= 0x00000400; + playcount_ = input.readInt32(); + break; + } + case 98: { + com.google.protobuf.ByteString bs = input.readBytes(); + bitField0_ |= 0x00000800; + prettyLength_ = bs; + break; + } + case 106: { + bitField0_ |= 0x00001000; + art_ = input.readBytes(); + break; + } + case 112: { + bitField0_ |= 0x00002000; + length_ = input.readInt32(); + break; + } + case 120: { + bitField0_ |= 0x00004000; + isLocal_ = input.readBool(); + break; + } + case 130: { + com.google.protobuf.ByteString bs = input.readBytes(); + bitField0_ |= 0x00008000; + filename_ = bs; + break; + } + case 136: { + bitField0_ |= 0x00010000; + fileSize_ = input.readInt32(); + break; + } + case 149: { + bitField0_ |= 0x00020000; + rating_ = input.readFloat(); + break; + } + case 154: { + com.google.protobuf.ByteString bs = input.readBytes(); + bitField0_ |= 0x00040000; + url_ = bs; + break; + } + case 162: { + com.google.protobuf.ByteString bs = input.readBytes(); + bitField0_ |= 0x00080000; + artAutomatic_ = bs; + break; + } + case 170: { + com.google.protobuf.ByteString bs = input.readBytes(); + bitField0_ |= 0x00100000; + artManual_ = bs; + break; + } + case 176: { + int rawValue = input.readEnum(); + @SuppressWarnings("deprecation") + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Type value = de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Type + .valueOf(rawValue); + if (value == null) { + unknownFields.mergeVarintField(22, rawValue); + } else { + bitField0_ |= 0x00200000; + type_ = rawValue; + } + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_SongMetadata_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_SongMetadata_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Builder.class); + } + + /** + * Protobuf enum {@code pb.remote.SongMetadata.Type} + */ + public enum Type implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNKNOWN = 0; + */ + UNKNOWN(0), + /** + * ASF = 1; + */ + ASF(1), + /** + * FLAC = 2; + */ + FLAC(2), + /** + * MP4 = 3; + */ + MP4(3), + /** + * MPC = 4; + */ + MPC(4), + /** + * MPEG = 5; + */ + MPEG(5), + /** + * OGGFLAC = 6; + */ + OGGFLAC(6), + /** + * OGGSPEEX = 7; + */ + OGGSPEEX(7), + /** + * OGGVORBIS = 8; + */ + OGGVORBIS(8), + /** + * AIFF = 9; + */ + AIFF(9), + /** + * WAV = 10; + */ + WAV(10), + /** + * TRUEAUDIO = 11; + */ + TRUEAUDIO(11), + /** + * CDDA = 12; + */ + CDDA(12), + /** + * OGGOPUS = 13; + */ + OGGOPUS(13), + /** + * STREAM = 99; + */ + STREAM(99),; + + /** + * UNKNOWN = 0; + */ + public static final int UNKNOWN_VALUE = 0; + /** + * ASF = 1; + */ + public static final int ASF_VALUE = 1; + /** + * FLAC = 2; + */ + public static final int FLAC_VALUE = 2; + /** + * MP4 = 3; + */ + public static final int MP4_VALUE = 3; + /** + * MPC = 4; + */ + public static final int MPC_VALUE = 4; + /** + * MPEG = 5; + */ + public static final int MPEG_VALUE = 5; + /** + * OGGFLAC = 6; + */ + public static final int OGGFLAC_VALUE = 6; + /** + * OGGSPEEX = 7; + */ + public static final int OGGSPEEX_VALUE = 7; + /** + * OGGVORBIS = 8; + */ + public static final int OGGVORBIS_VALUE = 8; + /** + * AIFF = 9; + */ + public static final int AIFF_VALUE = 9; + /** + * WAV = 10; + */ + public static final int WAV_VALUE = 10; + /** + * TRUEAUDIO = 11; + */ + public static final int TRUEAUDIO_VALUE = 11; + /** + * CDDA = 12; + */ + public static final int CDDA_VALUE = 12; + /** + * OGGOPUS = 13; + */ + public static final int OGGOPUS_VALUE = 13; + /** + * STREAM = 99; + */ + public static final int STREAM_VALUE = 99; + + public final int getNumber() { + return value; + } + + /** + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static Type valueOf(int value) { + return forNumber(value); + } + + public static Type forNumber(int value) { + switch (value) { + case 0: + return UNKNOWN; + case 1: + return ASF; + case 2: + return FLAC; + case 3: + return MP4; + case 4: + return MPC; + case 5: + return MPEG; + case 6: + return OGGFLAC; + case 7: + return OGGSPEEX; + case 8: + return OGGVORBIS; + case 9: + return AIFF; + case 10: + return WAV; + case 11: + return TRUEAUDIO; + case 12: + return CDDA; + case 13: + return OGGOPUS; + case 99: + return STREAM; + default: + return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } + + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { + public Type findValueByNumber(int number) { + return Type.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + return getDescriptor().getValues().get(ordinal()); + } + + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } + + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.getDescriptor() + .getEnumTypes().get(0); + } + + private static final Type[] VALUES = values(); + + public static Type valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private Type(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:pb.remote.SongMetadata.Type) + } + + private int bitField0_; + public static final int ID_FIELD_NUMBER = 1; + private int id_; + + /** + *
+         * unique id of the song
+         * 
+ * + * optional int32 id = 1; + */ + public boolean hasId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + *
+         * unique id of the song
+         * 
+ * + * optional int32 id = 1; + */ + public int getId() { + return id_; + } + + public static final int INDEX_FIELD_NUMBER = 2; + private int index_; + + /** + *
+         * Index of the current row of the active playlist
+         * 
+ * + * optional int32 index = 2; + */ + public boolean hasIndex() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + *
+         * Index of the current row of the active playlist
+         * 
+ * + * optional int32 index = 2; + */ + public int getIndex() { + return index_; + } + + public static final int TITLE_FIELD_NUMBER = 3; + private volatile java.lang.Object title_; + + /** + * optional string title = 3; + */ + public boolean hasTitle() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + + /** + * optional string title = 3; + */ + public java.lang.String getTitle() { + java.lang.Object ref = title_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + title_ = s; + } + return s; + } + } + + /** + * optional string title = 3; + */ + public com.google.protobuf.ByteString getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ALBUM_FIELD_NUMBER = 4; + private volatile java.lang.Object album_; + + /** + * optional string album = 4; + */ + public boolean hasAlbum() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + + /** + * optional string album = 4; + */ + public java.lang.String getAlbum() { + java.lang.Object ref = album_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + album_ = s; + } + return s; + } + } + + /** + * optional string album = 4; + */ + public com.google.protobuf.ByteString getAlbumBytes() { + java.lang.Object ref = album_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + album_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ARTIST_FIELD_NUMBER = 5; + private volatile java.lang.Object artist_; + + /** + * optional string artist = 5; + */ + public boolean hasArtist() { + return ((bitField0_ & 0x00000010) == 0x00000010); + } + + /** + * optional string artist = 5; + */ + public java.lang.String getArtist() { + java.lang.Object ref = artist_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + artist_ = s; + } + return s; + } + } + + /** + * optional string artist = 5; + */ + public com.google.protobuf.ByteString getArtistBytes() { + java.lang.Object ref = artist_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + artist_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ALBUMARTIST_FIELD_NUMBER = 6; + private volatile java.lang.Object albumartist_; + + /** + * optional string albumartist = 6; + */ + public boolean hasAlbumartist() { + return ((bitField0_ & 0x00000020) == 0x00000020); + } + + /** + * optional string albumartist = 6; + */ + public java.lang.String getAlbumartist() { + java.lang.Object ref = albumartist_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + albumartist_ = s; + } + return s; + } + } + + /** + * optional string albumartist = 6; + */ + public com.google.protobuf.ByteString getAlbumartistBytes() { + java.lang.Object ref = albumartist_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + albumartist_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TRACK_FIELD_NUMBER = 7; + private int track_; + + /** + * optional int32 track = 7; + */ + public boolean hasTrack() { + return ((bitField0_ & 0x00000040) == 0x00000040); + } + + /** + * optional int32 track = 7; + */ + public int getTrack() { + return track_; + } + + public static final int DISC_FIELD_NUMBER = 8; + private int disc_; + + /** + * optional int32 disc = 8; + */ + public boolean hasDisc() { + return ((bitField0_ & 0x00000080) == 0x00000080); + } + + /** + * optional int32 disc = 8; + */ + public int getDisc() { + return disc_; + } + + public static final int PRETTY_YEAR_FIELD_NUMBER = 9; + private volatile java.lang.Object prettyYear_; + + /** + * optional string pretty_year = 9; + */ + public boolean hasPrettyYear() { + return ((bitField0_ & 0x00000100) == 0x00000100); + } + + /** + * optional string pretty_year = 9; + */ + public java.lang.String getPrettyYear() { + java.lang.Object ref = prettyYear_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + prettyYear_ = s; + } + return s; + } + } + + /** + * optional string pretty_year = 9; + */ + public com.google.protobuf.ByteString getPrettyYearBytes() { + java.lang.Object ref = prettyYear_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + prettyYear_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int GENRE_FIELD_NUMBER = 10; + private volatile java.lang.Object genre_; + + /** + * optional string genre = 10; + */ + public boolean hasGenre() { + return ((bitField0_ & 0x00000200) == 0x00000200); + } + + /** + * optional string genre = 10; + */ + public java.lang.String getGenre() { + java.lang.Object ref = genre_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + genre_ = s; + } + return s; + } + } + + /** + * optional string genre = 10; + */ + public com.google.protobuf.ByteString getGenreBytes() { + java.lang.Object ref = genre_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + genre_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PLAYCOUNT_FIELD_NUMBER = 11; + private int playcount_; + + /** + * optional int32 playcount = 11; + */ + public boolean hasPlaycount() { + return ((bitField0_ & 0x00000400) == 0x00000400); + } + + /** + * optional int32 playcount = 11; + */ + public int getPlaycount() { + return playcount_; + } + + public static final int PRETTY_LENGTH_FIELD_NUMBER = 12; + private volatile java.lang.Object prettyLength_; + + /** + * optional string pretty_length = 12; + */ + public boolean hasPrettyLength() { + return ((bitField0_ & 0x00000800) == 0x00000800); + } + + /** + * optional string pretty_length = 12; + */ + public java.lang.String getPrettyLength() { + java.lang.Object ref = prettyLength_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + prettyLength_ = s; + } + return s; + } + } + + /** + * optional string pretty_length = 12; + */ + public com.google.protobuf.ByteString getPrettyLengthBytes() { + java.lang.Object ref = prettyLength_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + prettyLength_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ART_FIELD_NUMBER = 13; + private com.google.protobuf.ByteString art_; + + /** + * optional bytes art = 13; + */ + public boolean hasArt() { + return ((bitField0_ & 0x00001000) == 0x00001000); + } + + /** + * optional bytes art = 13; + */ + public com.google.protobuf.ByteString getArt() { + return art_; + } + + public static final int LENGTH_FIELD_NUMBER = 14; + private int length_; + + /** + * optional int32 length = 14; + */ + public boolean hasLength() { + return ((bitField0_ & 0x00002000) == 0x00002000); + } + + /** + * optional int32 length = 14; + */ + public int getLength() { + return length_; + } + + public static final int IS_LOCAL_FIELD_NUMBER = 15; + private boolean isLocal_; + + /** + * optional bool is_local = 15; + */ + public boolean hasIsLocal() { + return ((bitField0_ & 0x00004000) == 0x00004000); + } + + /** + * optional bool is_local = 15; + */ + public boolean getIsLocal() { + return isLocal_; + } + + public static final int FILENAME_FIELD_NUMBER = 16; + private volatile java.lang.Object filename_; + + /** + * optional string filename = 16; + */ + public boolean hasFilename() { + return ((bitField0_ & 0x00008000) == 0x00008000); + } + + /** + * optional string filename = 16; + */ + public java.lang.String getFilename() { + java.lang.Object ref = filename_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + filename_ = s; + } + return s; + } + } + + /** + * optional string filename = 16; + */ + public com.google.protobuf.ByteString getFilenameBytes() { + java.lang.Object ref = filename_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + filename_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int FILE_SIZE_FIELD_NUMBER = 17; + private int fileSize_; + + /** + * optional int32 file_size = 17; + */ + public boolean hasFileSize() { + return ((bitField0_ & 0x00010000) == 0x00010000); + } + + /** + * optional int32 file_size = 17; + */ + public int getFileSize() { + return fileSize_; + } + + public static final int RATING_FIELD_NUMBER = 18; + private float rating_; + + /** + *
+         * 0 (0 stars) to 1 (5 stars)
+         * 
+ * + * optional float rating = 18; + */ + public boolean hasRating() { + return ((bitField0_ & 0x00020000) == 0x00020000); + } + + /** + *
+         * 0 (0 stars) to 1 (5 stars)
+         * 
+ * + * optional float rating = 18; + */ + public float getRating() { + return rating_; + } + + public static final int URL_FIELD_NUMBER = 19; + private volatile java.lang.Object url_; + + /** + * optional string url = 19; + */ + public boolean hasUrl() { + return ((bitField0_ & 0x00040000) == 0x00040000); + } + + /** + * optional string url = 19; + */ + public java.lang.String getUrl() { + java.lang.Object ref = url_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + url_ = s; + } + return s; + } + } + + /** + * optional string url = 19; + */ + public com.google.protobuf.ByteString getUrlBytes() { + java.lang.Object ref = url_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + url_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ART_AUTOMATIC_FIELD_NUMBER = 20; + private volatile java.lang.Object artAutomatic_; + + /** + * optional string art_automatic = 20; + */ + public boolean hasArtAutomatic() { + return ((bitField0_ & 0x00080000) == 0x00080000); + } + + /** + * optional string art_automatic = 20; + */ + public java.lang.String getArtAutomatic() { + java.lang.Object ref = artAutomatic_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + artAutomatic_ = s; + } + return s; + } + } + + /** + * optional string art_automatic = 20; + */ + public com.google.protobuf.ByteString getArtAutomaticBytes() { + java.lang.Object ref = artAutomatic_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + artAutomatic_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ART_MANUAL_FIELD_NUMBER = 21; + private volatile java.lang.Object artManual_; + + /** + * optional string art_manual = 21; + */ + public boolean hasArtManual() { + return ((bitField0_ & 0x00100000) == 0x00100000); + } + + /** + * optional string art_manual = 21; + */ + public java.lang.String getArtManual() { + java.lang.Object ref = artManual_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + artManual_ = s; + } + return s; + } + } + + /** + * optional string art_manual = 21; + */ + public com.google.protobuf.ByteString getArtManualBytes() { + java.lang.Object ref = artManual_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + artManual_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TYPE_FIELD_NUMBER = 22; + private int type_; + + /** + * optional .pb.remote.SongMetadata.Type type = 22; + */ + public boolean hasType() { + return ((bitField0_ & 0x00200000) == 0x00200000); + } + + /** + * optional .pb.remote.SongMetadata.Type type = 22; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Type getType() { + @SuppressWarnings("deprecation") + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Type result = de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Type + .valueOf(type_); + return result == null ? de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Type.UNKNOWN + : result; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeInt32(1, id_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeInt32(2, index_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, title_); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, album_); + } + if (((bitField0_ & 0x00000010) == 0x00000010)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, artist_); + } + if (((bitField0_ & 0x00000020) == 0x00000020)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 6, albumartist_); + } + if (((bitField0_ & 0x00000040) == 0x00000040)) { + output.writeInt32(7, track_); + } + if (((bitField0_ & 0x00000080) == 0x00000080)) { + output.writeInt32(8, disc_); + } + if (((bitField0_ & 0x00000100) == 0x00000100)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 9, prettyYear_); + } + if (((bitField0_ & 0x00000200) == 0x00000200)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 10, genre_); + } + if (((bitField0_ & 0x00000400) == 0x00000400)) { + output.writeInt32(11, playcount_); + } + if (((bitField0_ & 0x00000800) == 0x00000800)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 12, prettyLength_); + } + if (((bitField0_ & 0x00001000) == 0x00001000)) { + output.writeBytes(13, art_); + } + if (((bitField0_ & 0x00002000) == 0x00002000)) { + output.writeInt32(14, length_); + } + if (((bitField0_ & 0x00004000) == 0x00004000)) { + output.writeBool(15, isLocal_); + } + if (((bitField0_ & 0x00008000) == 0x00008000)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 16, filename_); + } + if (((bitField0_ & 0x00010000) == 0x00010000)) { + output.writeInt32(17, fileSize_); + } + if (((bitField0_ & 0x00020000) == 0x00020000)) { + output.writeFloat(18, rating_); + } + if (((bitField0_ & 0x00040000) == 0x00040000)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 19, url_); + } + if (((bitField0_ & 0x00080000) == 0x00080000)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 20, artAutomatic_); + } + if (((bitField0_ & 0x00100000) == 0x00100000)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 21, artManual_); + } + if (((bitField0_ & 0x00200000) == 0x00200000)) { + output.writeEnum(22, type_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, id_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(2, index_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, title_); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, album_); + } + if (((bitField0_ & 0x00000010) == 0x00000010)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, artist_); + } + if (((bitField0_ & 0x00000020) == 0x00000020)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, albumartist_); + } + if (((bitField0_ & 0x00000040) == 0x00000040)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(7, track_); + } + if (((bitField0_ & 0x00000080) == 0x00000080)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(8, disc_); + } + if (((bitField0_ & 0x00000100) == 0x00000100)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, prettyYear_); + } + if (((bitField0_ & 0x00000200) == 0x00000200)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, genre_); + } + if (((bitField0_ & 0x00000400) == 0x00000400)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(11, playcount_); + } + if (((bitField0_ & 0x00000800) == 0x00000800)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, prettyLength_); + } + if (((bitField0_ & 0x00001000) == 0x00001000)) { + size += com.google.protobuf.CodedOutputStream.computeBytesSize(13, art_); + } + if (((bitField0_ & 0x00002000) == 0x00002000)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(14, length_); + } + if (((bitField0_ & 0x00004000) == 0x00004000)) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(15, isLocal_); + } + if (((bitField0_ & 0x00008000) == 0x00008000)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(16, filename_); + } + if (((bitField0_ & 0x00010000) == 0x00010000)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(17, fileSize_); + } + if (((bitField0_ & 0x00020000) == 0x00020000)) { + size += com.google.protobuf.CodedOutputStream.computeFloatSize(18, rating_); + } + if (((bitField0_ & 0x00040000) == 0x00040000)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(19, url_); + } + if (((bitField0_ & 0x00080000) == 0x00080000)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(20, artAutomatic_); + } + if (((bitField0_ & 0x00100000) == 0x00100000)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(21, artManual_); + } + if (((bitField0_ & 0x00200000) == 0x00200000)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(22, type_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata other = (de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata) obj; + + boolean result = true; + result = result && (hasId() == other.hasId()); + if (hasId()) { + result = result && (getId() == other.getId()); + } + result = result && (hasIndex() == other.hasIndex()); + if (hasIndex()) { + result = result && (getIndex() == other.getIndex()); + } + result = result && (hasTitle() == other.hasTitle()); + if (hasTitle()) { + result = result && getTitle().equals(other.getTitle()); + } + result = result && (hasAlbum() == other.hasAlbum()); + if (hasAlbum()) { + result = result && getAlbum().equals(other.getAlbum()); + } + result = result && (hasArtist() == other.hasArtist()); + if (hasArtist()) { + result = result && getArtist().equals(other.getArtist()); + } + result = result && (hasAlbumartist() == other.hasAlbumartist()); + if (hasAlbumartist()) { + result = result && getAlbumartist().equals(other.getAlbumartist()); + } + result = result && (hasTrack() == other.hasTrack()); + if (hasTrack()) { + result = result && (getTrack() == other.getTrack()); + } + result = result && (hasDisc() == other.hasDisc()); + if (hasDisc()) { + result = result && (getDisc() == other.getDisc()); + } + result = result && (hasPrettyYear() == other.hasPrettyYear()); + if (hasPrettyYear()) { + result = result && getPrettyYear().equals(other.getPrettyYear()); + } + result = result && (hasGenre() == other.hasGenre()); + if (hasGenre()) { + result = result && getGenre().equals(other.getGenre()); + } + result = result && (hasPlaycount() == other.hasPlaycount()); + if (hasPlaycount()) { + result = result && (getPlaycount() == other.getPlaycount()); + } + result = result && (hasPrettyLength() == other.hasPrettyLength()); + if (hasPrettyLength()) { + result = result && getPrettyLength().equals(other.getPrettyLength()); + } + result = result && (hasArt() == other.hasArt()); + if (hasArt()) { + result = result && getArt().equals(other.getArt()); + } + result = result && (hasLength() == other.hasLength()); + if (hasLength()) { + result = result && (getLength() == other.getLength()); + } + result = result && (hasIsLocal() == other.hasIsLocal()); + if (hasIsLocal()) { + result = result && (getIsLocal() == other.getIsLocal()); + } + result = result && (hasFilename() == other.hasFilename()); + if (hasFilename()) { + result = result && getFilename().equals(other.getFilename()); + } + result = result && (hasFileSize() == other.hasFileSize()); + if (hasFileSize()) { + result = result && (getFileSize() == other.getFileSize()); + } + result = result && (hasRating() == other.hasRating()); + if (hasRating()) { + result = result && (java.lang.Float.floatToIntBits(getRating()) == java.lang.Float + .floatToIntBits(other.getRating())); + } + result = result && (hasUrl() == other.hasUrl()); + if (hasUrl()) { + result = result && getUrl().equals(other.getUrl()); + } + result = result && (hasArtAutomatic() == other.hasArtAutomatic()); + if (hasArtAutomatic()) { + result = result && getArtAutomatic().equals(other.getArtAutomatic()); + } + result = result && (hasArtManual() == other.hasArtManual()); + if (hasArtManual()) { + result = result && getArtManual().equals(other.getArtManual()); + } + result = result && (hasType() == other.hasType()); + if (hasType()) { + result = result && type_ == other.type_; + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasId()) { + hash = (37 * hash) + ID_FIELD_NUMBER; + hash = (53 * hash) + getId(); + } + if (hasIndex()) { + hash = (37 * hash) + INDEX_FIELD_NUMBER; + hash = (53 * hash) + getIndex(); + } + if (hasTitle()) { + hash = (37 * hash) + TITLE_FIELD_NUMBER; + hash = (53 * hash) + getTitle().hashCode(); + } + if (hasAlbum()) { + hash = (37 * hash) + ALBUM_FIELD_NUMBER; + hash = (53 * hash) + getAlbum().hashCode(); + } + if (hasArtist()) { + hash = (37 * hash) + ARTIST_FIELD_NUMBER; + hash = (53 * hash) + getArtist().hashCode(); + } + if (hasAlbumartist()) { + hash = (37 * hash) + ALBUMARTIST_FIELD_NUMBER; + hash = (53 * hash) + getAlbumartist().hashCode(); + } + if (hasTrack()) { + hash = (37 * hash) + TRACK_FIELD_NUMBER; + hash = (53 * hash) + getTrack(); + } + if (hasDisc()) { + hash = (37 * hash) + DISC_FIELD_NUMBER; + hash = (53 * hash) + getDisc(); + } + if (hasPrettyYear()) { + hash = (37 * hash) + PRETTY_YEAR_FIELD_NUMBER; + hash = (53 * hash) + getPrettyYear().hashCode(); + } + if (hasGenre()) { + hash = (37 * hash) + GENRE_FIELD_NUMBER; + hash = (53 * hash) + getGenre().hashCode(); + } + if (hasPlaycount()) { + hash = (37 * hash) + PLAYCOUNT_FIELD_NUMBER; + hash = (53 * hash) + getPlaycount(); + } + if (hasPrettyLength()) { + hash = (37 * hash) + PRETTY_LENGTH_FIELD_NUMBER; + hash = (53 * hash) + getPrettyLength().hashCode(); + } + if (hasArt()) { + hash = (37 * hash) + ART_FIELD_NUMBER; + hash = (53 * hash) + getArt().hashCode(); + } + if (hasLength()) { + hash = (37 * hash) + LENGTH_FIELD_NUMBER; + hash = (53 * hash) + getLength(); + } + if (hasIsLocal()) { + hash = (37 * hash) + IS_LOCAL_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIsLocal()); + } + if (hasFilename()) { + hash = (37 * hash) + FILENAME_FIELD_NUMBER; + hash = (53 * hash) + getFilename().hashCode(); + } + if (hasFileSize()) { + hash = (37 * hash) + FILE_SIZE_FIELD_NUMBER; + hash = (53 * hash) + getFileSize(); + } + if (hasRating()) { + hash = (37 * hash) + RATING_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits(getRating()); + } + if (hasUrl()) { + hash = (37 * hash) + URL_FIELD_NUMBER; + hash = (53 * hash) + getUrl().hashCode(); + } + if (hasArtAutomatic()) { + hash = (37 * hash) + ART_AUTOMATIC_FIELD_NUMBER; + hash = (53 * hash) + getArtAutomatic().hashCode(); + } + if (hasArtManual()) { + hash = (37 * hash) + ART_MANUAL_FIELD_NUMBER; + hash = (53 * hash) + getArtManual().hashCode(); + } + if (hasType()) { + hash = (37 * hash) + TYPE_FIELD_NUMBER; + hash = (53 * hash) + type_; + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+         * Song Metadata
+         * 
+ * + * Protobuf type {@code pb.remote.SongMetadata} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.SongMetadata) + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadataOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_SongMetadata_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_SongMetadata_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Builder.class); + } + + // Construct using de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + id_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + index_ = 0; + bitField0_ = (bitField0_ & ~0x00000002); + title_ = ""; + bitField0_ = (bitField0_ & ~0x00000004); + album_ = ""; + bitField0_ = (bitField0_ & ~0x00000008); + artist_ = ""; + bitField0_ = (bitField0_ & ~0x00000010); + albumartist_ = ""; + bitField0_ = (bitField0_ & ~0x00000020); + track_ = 0; + bitField0_ = (bitField0_ & ~0x00000040); + disc_ = 0; + bitField0_ = (bitField0_ & ~0x00000080); + prettyYear_ = ""; + bitField0_ = (bitField0_ & ~0x00000100); + genre_ = ""; + bitField0_ = (bitField0_ & ~0x00000200); + playcount_ = 0; + bitField0_ = (bitField0_ & ~0x00000400); + prettyLength_ = ""; + bitField0_ = (bitField0_ & ~0x00000800); + art_ = com.google.protobuf.ByteString.EMPTY; + bitField0_ = (bitField0_ & ~0x00001000); + length_ = 0; + bitField0_ = (bitField0_ & ~0x00002000); + isLocal_ = false; + bitField0_ = (bitField0_ & ~0x00004000); + filename_ = ""; + bitField0_ = (bitField0_ & ~0x00008000); + fileSize_ = 0; + bitField0_ = (bitField0_ & ~0x00010000); + rating_ = 0F; + bitField0_ = (bitField0_ & ~0x00020000); + url_ = ""; + bitField0_ = (bitField0_ & ~0x00040000); + artAutomatic_ = ""; + bitField0_ = (bitField0_ & ~0x00080000); + artManual_ = ""; + bitField0_ = (bitField0_ & ~0x00100000); + type_ = 0; + bitField0_ = (bitField0_ & ~0x00200000); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_SongMetadata_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata result = new de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.id_ = id_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.index_ = index_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + result.title_ = title_; + if (((from_bitField0_ & 0x00000008) == 0x00000008)) { + to_bitField0_ |= 0x00000008; + } + result.album_ = album_; + if (((from_bitField0_ & 0x00000010) == 0x00000010)) { + to_bitField0_ |= 0x00000010; + } + result.artist_ = artist_; + if (((from_bitField0_ & 0x00000020) == 0x00000020)) { + to_bitField0_ |= 0x00000020; + } + result.albumartist_ = albumartist_; + if (((from_bitField0_ & 0x00000040) == 0x00000040)) { + to_bitField0_ |= 0x00000040; + } + result.track_ = track_; + if (((from_bitField0_ & 0x00000080) == 0x00000080)) { + to_bitField0_ |= 0x00000080; + } + result.disc_ = disc_; + if (((from_bitField0_ & 0x00000100) == 0x00000100)) { + to_bitField0_ |= 0x00000100; + } + result.prettyYear_ = prettyYear_; + if (((from_bitField0_ & 0x00000200) == 0x00000200)) { + to_bitField0_ |= 0x00000200; + } + result.genre_ = genre_; + if (((from_bitField0_ & 0x00000400) == 0x00000400)) { + to_bitField0_ |= 0x00000400; + } + result.playcount_ = playcount_; + if (((from_bitField0_ & 0x00000800) == 0x00000800)) { + to_bitField0_ |= 0x00000800; + } + result.prettyLength_ = prettyLength_; + if (((from_bitField0_ & 0x00001000) == 0x00001000)) { + to_bitField0_ |= 0x00001000; + } + result.art_ = art_; + if (((from_bitField0_ & 0x00002000) == 0x00002000)) { + to_bitField0_ |= 0x00002000; + } + result.length_ = length_; + if (((from_bitField0_ & 0x00004000) == 0x00004000)) { + to_bitField0_ |= 0x00004000; + } + result.isLocal_ = isLocal_; + if (((from_bitField0_ & 0x00008000) == 0x00008000)) { + to_bitField0_ |= 0x00008000; + } + result.filename_ = filename_; + if (((from_bitField0_ & 0x00010000) == 0x00010000)) { + to_bitField0_ |= 0x00010000; + } + result.fileSize_ = fileSize_; + if (((from_bitField0_ & 0x00020000) == 0x00020000)) { + to_bitField0_ |= 0x00020000; + } + result.rating_ = rating_; + if (((from_bitField0_ & 0x00040000) == 0x00040000)) { + to_bitField0_ |= 0x00040000; + } + result.url_ = url_; + if (((from_bitField0_ & 0x00080000) == 0x00080000)) { + to_bitField0_ |= 0x00080000; + } + result.artAutomatic_ = artAutomatic_; + if (((from_bitField0_ & 0x00100000) == 0x00100000)) { + to_bitField0_ |= 0x00100000; + } + result.artManual_ = artManual_; + if (((from_bitField0_ & 0x00200000) == 0x00200000)) { + to_bitField0_ |= 0x00200000; + } + result.type_ = type_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata) { + return mergeFrom((de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.getDefaultInstance()) + return this; + if (other.hasId()) { + setId(other.getId()); + } + if (other.hasIndex()) { + setIndex(other.getIndex()); + } + if (other.hasTitle()) { + bitField0_ |= 0x00000004; + title_ = other.title_; + onChanged(); + } + if (other.hasAlbum()) { + bitField0_ |= 0x00000008; + album_ = other.album_; + onChanged(); + } + if (other.hasArtist()) { + bitField0_ |= 0x00000010; + artist_ = other.artist_; + onChanged(); + } + if (other.hasAlbumartist()) { + bitField0_ |= 0x00000020; + albumartist_ = other.albumartist_; + onChanged(); + } + if (other.hasTrack()) { + setTrack(other.getTrack()); + } + if (other.hasDisc()) { + setDisc(other.getDisc()); + } + if (other.hasPrettyYear()) { + bitField0_ |= 0x00000100; + prettyYear_ = other.prettyYear_; + onChanged(); + } + if (other.hasGenre()) { + bitField0_ |= 0x00000200; + genre_ = other.genre_; + onChanged(); + } + if (other.hasPlaycount()) { + setPlaycount(other.getPlaycount()); + } + if (other.hasPrettyLength()) { + bitField0_ |= 0x00000800; + prettyLength_ = other.prettyLength_; + onChanged(); + } + if (other.hasArt()) { + setArt(other.getArt()); + } + if (other.hasLength()) { + setLength(other.getLength()); + } + if (other.hasIsLocal()) { + setIsLocal(other.getIsLocal()); + } + if (other.hasFilename()) { + bitField0_ |= 0x00008000; + filename_ = other.filename_; + onChanged(); + } + if (other.hasFileSize()) { + setFileSize(other.getFileSize()); + } + if (other.hasRating()) { + setRating(other.getRating()); + } + if (other.hasUrl()) { + bitField0_ |= 0x00040000; + url_ = other.url_; + onChanged(); + } + if (other.hasArtAutomatic()) { + bitField0_ |= 0x00080000; + artAutomatic_ = other.artAutomatic_; + onChanged(); + } + if (other.hasArtManual()) { + bitField0_ |= 0x00100000; + artManual_ = other.artManual_; + onChanged(); + } + if (other.hasType()) { + setType(other.getType()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private int id_; + + /** + *
+             * unique id of the song
+             * 
+ * + * optional int32 id = 1; + */ + public boolean hasId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + *
+             * unique id of the song
+             * 
+ * + * optional int32 id = 1; + */ + public int getId() { + return id_; + } + + /** + *
+             * unique id of the song
+             * 
+ * + * optional int32 id = 1; + */ + public Builder setId(int value) { + bitField0_ |= 0x00000001; + id_ = value; + onChanged(); + return this; + } + + /** + *
+             * unique id of the song
+             * 
+ * + * optional int32 id = 1; + */ + public Builder clearId() { + bitField0_ = (bitField0_ & ~0x00000001); + id_ = 0; + onChanged(); + return this; + } + + private int index_; + + /** + *
+             * Index of the current row of the active playlist
+             * 
+ * + * optional int32 index = 2; + */ + public boolean hasIndex() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + *
+             * Index of the current row of the active playlist
+             * 
+ * + * optional int32 index = 2; + */ + public int getIndex() { + return index_; + } + + /** + *
+             * Index of the current row of the active playlist
+             * 
+ * + * optional int32 index = 2; + */ + public Builder setIndex(int value) { + bitField0_ |= 0x00000002; + index_ = value; + onChanged(); + return this; + } + + /** + *
+             * Index of the current row of the active playlist
+             * 
+ * + * optional int32 index = 2; + */ + public Builder clearIndex() { + bitField0_ = (bitField0_ & ~0x00000002); + index_ = 0; + onChanged(); + return this; + } + + private java.lang.Object title_ = ""; + + /** + * optional string title = 3; + */ + public boolean hasTitle() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + + /** + * optional string title = 3; + */ + public java.lang.String getTitle() { + java.lang.Object ref = title_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + title_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * optional string title = 3; + */ + public com.google.protobuf.ByteString getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString + .copyFromUtf8((java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * optional string title = 3; + */ + public Builder setTitle(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + title_ = value; + onChanged(); + return this; + } + + /** + * optional string title = 3; + */ + public Builder clearTitle() { + bitField0_ = (bitField0_ & ~0x00000004); + title_ = getDefaultInstance().getTitle(); + onChanged(); + return this; + } + + /** + * optional string title = 3; + */ + public Builder setTitleBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + title_ = value; + onChanged(); + return this; + } + + private java.lang.Object album_ = ""; + + /** + * optional string album = 4; + */ + public boolean hasAlbum() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + + /** + * optional string album = 4; + */ + public java.lang.String getAlbum() { + java.lang.Object ref = album_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + album_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * optional string album = 4; + */ + public com.google.protobuf.ByteString getAlbumBytes() { + java.lang.Object ref = album_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString + .copyFromUtf8((java.lang.String) ref); + album_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * optional string album = 4; + */ + public Builder setAlbum(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000008; + album_ = value; + onChanged(); + return this; + } + + /** + * optional string album = 4; + */ + public Builder clearAlbum() { + bitField0_ = (bitField0_ & ~0x00000008); + album_ = getDefaultInstance().getAlbum(); + onChanged(); + return this; + } + + /** + * optional string album = 4; + */ + public Builder setAlbumBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000008; + album_ = value; + onChanged(); + return this; + } + + private java.lang.Object artist_ = ""; + + /** + * optional string artist = 5; + */ + public boolean hasArtist() { + return ((bitField0_ & 0x00000010) == 0x00000010); + } + + /** + * optional string artist = 5; + */ + public java.lang.String getArtist() { + java.lang.Object ref = artist_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + artist_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * optional string artist = 5; + */ + public com.google.protobuf.ByteString getArtistBytes() { + java.lang.Object ref = artist_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString + .copyFromUtf8((java.lang.String) ref); + artist_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * optional string artist = 5; + */ + public Builder setArtist(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000010; + artist_ = value; + onChanged(); + return this; + } + + /** + * optional string artist = 5; + */ + public Builder clearArtist() { + bitField0_ = (bitField0_ & ~0x00000010); + artist_ = getDefaultInstance().getArtist(); + onChanged(); + return this; + } + + /** + * optional string artist = 5; + */ + public Builder setArtistBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000010; + artist_ = value; + onChanged(); + return this; + } + + private java.lang.Object albumartist_ = ""; + + /** + * optional string albumartist = 6; + */ + public boolean hasAlbumartist() { + return ((bitField0_ & 0x00000020) == 0x00000020); + } + + /** + * optional string albumartist = 6; + */ + public java.lang.String getAlbumartist() { + java.lang.Object ref = albumartist_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + albumartist_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * optional string albumartist = 6; + */ + public com.google.protobuf.ByteString getAlbumartistBytes() { + java.lang.Object ref = albumartist_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString + .copyFromUtf8((java.lang.String) ref); + albumartist_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * optional string albumartist = 6; + */ + public Builder setAlbumartist(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000020; + albumartist_ = value; + onChanged(); + return this; + } + + /** + * optional string albumartist = 6; + */ + public Builder clearAlbumartist() { + bitField0_ = (bitField0_ & ~0x00000020); + albumartist_ = getDefaultInstance().getAlbumartist(); + onChanged(); + return this; + } + + /** + * optional string albumartist = 6; + */ + public Builder setAlbumartistBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000020; + albumartist_ = value; + onChanged(); + return this; + } + + private int track_; + + /** + * optional int32 track = 7; + */ + public boolean hasTrack() { + return ((bitField0_ & 0x00000040) == 0x00000040); + } + + /** + * optional int32 track = 7; + */ + public int getTrack() { + return track_; + } + + /** + * optional int32 track = 7; + */ + public Builder setTrack(int value) { + bitField0_ |= 0x00000040; + track_ = value; + onChanged(); + return this; + } + + /** + * optional int32 track = 7; + */ + public Builder clearTrack() { + bitField0_ = (bitField0_ & ~0x00000040); + track_ = 0; + onChanged(); + return this; + } + + private int disc_; + + /** + * optional int32 disc = 8; + */ + public boolean hasDisc() { + return ((bitField0_ & 0x00000080) == 0x00000080); + } + + /** + * optional int32 disc = 8; + */ + public int getDisc() { + return disc_; + } + + /** + * optional int32 disc = 8; + */ + public Builder setDisc(int value) { + bitField0_ |= 0x00000080; + disc_ = value; + onChanged(); + return this; + } + + /** + * optional int32 disc = 8; + */ + public Builder clearDisc() { + bitField0_ = (bitField0_ & ~0x00000080); + disc_ = 0; + onChanged(); + return this; + } + + private java.lang.Object prettyYear_ = ""; + + /** + * optional string pretty_year = 9; + */ + public boolean hasPrettyYear() { + return ((bitField0_ & 0x00000100) == 0x00000100); + } + + /** + * optional string pretty_year = 9; + */ + public java.lang.String getPrettyYear() { + java.lang.Object ref = prettyYear_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + prettyYear_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * optional string pretty_year = 9; + */ + public com.google.protobuf.ByteString getPrettyYearBytes() { + java.lang.Object ref = prettyYear_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString + .copyFromUtf8((java.lang.String) ref); + prettyYear_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * optional string pretty_year = 9; + */ + public Builder setPrettyYear(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000100; + prettyYear_ = value; + onChanged(); + return this; + } + + /** + * optional string pretty_year = 9; + */ + public Builder clearPrettyYear() { + bitField0_ = (bitField0_ & ~0x00000100); + prettyYear_ = getDefaultInstance().getPrettyYear(); + onChanged(); + return this; + } + + /** + * optional string pretty_year = 9; + */ + public Builder setPrettyYearBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000100; + prettyYear_ = value; + onChanged(); + return this; + } + + private java.lang.Object genre_ = ""; + + /** + * optional string genre = 10; + */ + public boolean hasGenre() { + return ((bitField0_ & 0x00000200) == 0x00000200); + } + + /** + * optional string genre = 10; + */ + public java.lang.String getGenre() { + java.lang.Object ref = genre_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + genre_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * optional string genre = 10; + */ + public com.google.protobuf.ByteString getGenreBytes() { + java.lang.Object ref = genre_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString + .copyFromUtf8((java.lang.String) ref); + genre_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * optional string genre = 10; + */ + public Builder setGenre(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000200; + genre_ = value; + onChanged(); + return this; + } + + /** + * optional string genre = 10; + */ + public Builder clearGenre() { + bitField0_ = (bitField0_ & ~0x00000200); + genre_ = getDefaultInstance().getGenre(); + onChanged(); + return this; + } + + /** + * optional string genre = 10; + */ + public Builder setGenreBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000200; + genre_ = value; + onChanged(); + return this; + } + + private int playcount_; + + /** + * optional int32 playcount = 11; + */ + public boolean hasPlaycount() { + return ((bitField0_ & 0x00000400) == 0x00000400); + } + + /** + * optional int32 playcount = 11; + */ + public int getPlaycount() { + return playcount_; + } + + /** + * optional int32 playcount = 11; + */ + public Builder setPlaycount(int value) { + bitField0_ |= 0x00000400; + playcount_ = value; + onChanged(); + return this; + } + + /** + * optional int32 playcount = 11; + */ + public Builder clearPlaycount() { + bitField0_ = (bitField0_ & ~0x00000400); + playcount_ = 0; + onChanged(); + return this; + } + + private java.lang.Object prettyLength_ = ""; + + /** + * optional string pretty_length = 12; + */ + public boolean hasPrettyLength() { + return ((bitField0_ & 0x00000800) == 0x00000800); + } + + /** + * optional string pretty_length = 12; + */ + public java.lang.String getPrettyLength() { + java.lang.Object ref = prettyLength_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + prettyLength_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * optional string pretty_length = 12; + */ + public com.google.protobuf.ByteString getPrettyLengthBytes() { + java.lang.Object ref = prettyLength_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString + .copyFromUtf8((java.lang.String) ref); + prettyLength_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * optional string pretty_length = 12; + */ + public Builder setPrettyLength(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000800; + prettyLength_ = value; + onChanged(); + return this; + } + + /** + * optional string pretty_length = 12; + */ + public Builder clearPrettyLength() { + bitField0_ = (bitField0_ & ~0x00000800); + prettyLength_ = getDefaultInstance().getPrettyLength(); + onChanged(); + return this; + } + + /** + * optional string pretty_length = 12; + */ + public Builder setPrettyLengthBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000800; + prettyLength_ = value; + onChanged(); + return this; + } + + private com.google.protobuf.ByteString art_ = com.google.protobuf.ByteString.EMPTY; + + /** + * optional bytes art = 13; + */ + public boolean hasArt() { + return ((bitField0_ & 0x00001000) == 0x00001000); + } + + /** + * optional bytes art = 13; + */ + public com.google.protobuf.ByteString getArt() { + return art_; + } + + /** + * optional bytes art = 13; + */ + public Builder setArt(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00001000; + art_ = value; + onChanged(); + return this; + } + + /** + * optional bytes art = 13; + */ + public Builder clearArt() { + bitField0_ = (bitField0_ & ~0x00001000); + art_ = getDefaultInstance().getArt(); + onChanged(); + return this; + } + + private int length_; + + /** + * optional int32 length = 14; + */ + public boolean hasLength() { + return ((bitField0_ & 0x00002000) == 0x00002000); + } + + /** + * optional int32 length = 14; + */ + public int getLength() { + return length_; + } + + /** + * optional int32 length = 14; + */ + public Builder setLength(int value) { + bitField0_ |= 0x00002000; + length_ = value; + onChanged(); + return this; + } + + /** + * optional int32 length = 14; + */ + public Builder clearLength() { + bitField0_ = (bitField0_ & ~0x00002000); + length_ = 0; + onChanged(); + return this; + } + + private boolean isLocal_; + + /** + * optional bool is_local = 15; + */ + public boolean hasIsLocal() { + return ((bitField0_ & 0x00004000) == 0x00004000); + } + + /** + * optional bool is_local = 15; + */ + public boolean getIsLocal() { + return isLocal_; + } + + /** + * optional bool is_local = 15; + */ + public Builder setIsLocal(boolean value) { + bitField0_ |= 0x00004000; + isLocal_ = value; + onChanged(); + return this; + } + + /** + * optional bool is_local = 15; + */ + public Builder clearIsLocal() { + bitField0_ = (bitField0_ & ~0x00004000); + isLocal_ = false; + onChanged(); + return this; + } + + private java.lang.Object filename_ = ""; + + /** + * optional string filename = 16; + */ + public boolean hasFilename() { + return ((bitField0_ & 0x00008000) == 0x00008000); + } + + /** + * optional string filename = 16; + */ + public java.lang.String getFilename() { + java.lang.Object ref = filename_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + filename_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * optional string filename = 16; + */ + public com.google.protobuf.ByteString getFilenameBytes() { + java.lang.Object ref = filename_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString + .copyFromUtf8((java.lang.String) ref); + filename_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * optional string filename = 16; + */ + public Builder setFilename(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00008000; + filename_ = value; + onChanged(); + return this; + } + + /** + * optional string filename = 16; + */ + public Builder clearFilename() { + bitField0_ = (bitField0_ & ~0x00008000); + filename_ = getDefaultInstance().getFilename(); + onChanged(); + return this; + } + + /** + * optional string filename = 16; + */ + public Builder setFilenameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00008000; + filename_ = value; + onChanged(); + return this; + } + + private int fileSize_; + + /** + * optional int32 file_size = 17; + */ + public boolean hasFileSize() { + return ((bitField0_ & 0x00010000) == 0x00010000); + } + + /** + * optional int32 file_size = 17; + */ + public int getFileSize() { + return fileSize_; + } + + /** + * optional int32 file_size = 17; + */ + public Builder setFileSize(int value) { + bitField0_ |= 0x00010000; + fileSize_ = value; + onChanged(); + return this; + } + + /** + * optional int32 file_size = 17; + */ + public Builder clearFileSize() { + bitField0_ = (bitField0_ & ~0x00010000); + fileSize_ = 0; + onChanged(); + return this; + } + + private float rating_; + + /** + *
+             * 0 (0 stars) to 1 (5 stars)
+             * 
+ * + * optional float rating = 18; + */ + public boolean hasRating() { + return ((bitField0_ & 0x00020000) == 0x00020000); + } + + /** + *
+             * 0 (0 stars) to 1 (5 stars)
+             * 
+ * + * optional float rating = 18; + */ + public float getRating() { + return rating_; + } + + /** + *
+             * 0 (0 stars) to 1 (5 stars)
+             * 
+ * + * optional float rating = 18; + */ + public Builder setRating(float value) { + bitField0_ |= 0x00020000; + rating_ = value; + onChanged(); + return this; + } + + /** + *
+             * 0 (0 stars) to 1 (5 stars)
+             * 
+ * + * optional float rating = 18; + */ + public Builder clearRating() { + bitField0_ = (bitField0_ & ~0x00020000); + rating_ = 0F; + onChanged(); + return this; + } + + private java.lang.Object url_ = ""; + + /** + * optional string url = 19; + */ + public boolean hasUrl() { + return ((bitField0_ & 0x00040000) == 0x00040000); + } + + /** + * optional string url = 19; + */ + public java.lang.String getUrl() { + java.lang.Object ref = url_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + url_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * optional string url = 19; + */ + public com.google.protobuf.ByteString getUrlBytes() { + java.lang.Object ref = url_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString + .copyFromUtf8((java.lang.String) ref); + url_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * optional string url = 19; + */ + public Builder setUrl(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00040000; + url_ = value; + onChanged(); + return this; + } + + /** + * optional string url = 19; + */ + public Builder clearUrl() { + bitField0_ = (bitField0_ & ~0x00040000); + url_ = getDefaultInstance().getUrl(); + onChanged(); + return this; + } + + /** + * optional string url = 19; + */ + public Builder setUrlBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00040000; + url_ = value; + onChanged(); + return this; + } + + private java.lang.Object artAutomatic_ = ""; + + /** + * optional string art_automatic = 20; + */ + public boolean hasArtAutomatic() { + return ((bitField0_ & 0x00080000) == 0x00080000); + } + + /** + * optional string art_automatic = 20; + */ + public java.lang.String getArtAutomatic() { + java.lang.Object ref = artAutomatic_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + artAutomatic_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * optional string art_automatic = 20; + */ + public com.google.protobuf.ByteString getArtAutomaticBytes() { + java.lang.Object ref = artAutomatic_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString + .copyFromUtf8((java.lang.String) ref); + artAutomatic_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * optional string art_automatic = 20; + */ + public Builder setArtAutomatic(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00080000; + artAutomatic_ = value; + onChanged(); + return this; + } + + /** + * optional string art_automatic = 20; + */ + public Builder clearArtAutomatic() { + bitField0_ = (bitField0_ & ~0x00080000); + artAutomatic_ = getDefaultInstance().getArtAutomatic(); + onChanged(); + return this; + } + + /** + * optional string art_automatic = 20; + */ + public Builder setArtAutomaticBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00080000; + artAutomatic_ = value; + onChanged(); + return this; + } + + private java.lang.Object artManual_ = ""; + + /** + * optional string art_manual = 21; + */ + public boolean hasArtManual() { + return ((bitField0_ & 0x00100000) == 0x00100000); + } + + /** + * optional string art_manual = 21; + */ + public java.lang.String getArtManual() { + java.lang.Object ref = artManual_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + artManual_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * optional string art_manual = 21; + */ + public com.google.protobuf.ByteString getArtManualBytes() { + java.lang.Object ref = artManual_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString + .copyFromUtf8((java.lang.String) ref); + artManual_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * optional string art_manual = 21; + */ + public Builder setArtManual(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00100000; + artManual_ = value; + onChanged(); + return this; + } + + /** + * optional string art_manual = 21; + */ + public Builder clearArtManual() { + bitField0_ = (bitField0_ & ~0x00100000); + artManual_ = getDefaultInstance().getArtManual(); + onChanged(); + return this; + } + + /** + * optional string art_manual = 21; + */ + public Builder setArtManualBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00100000; + artManual_ = value; + onChanged(); + return this; + } + + private int type_ = 0; + + /** + * optional .pb.remote.SongMetadata.Type type = 22; + */ + public boolean hasType() { + return ((bitField0_ & 0x00200000) == 0x00200000); + } + + /** + * optional .pb.remote.SongMetadata.Type type = 22; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Type getType() { + @SuppressWarnings("deprecation") + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Type result = de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Type + .valueOf(type_); + return result == null ? de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Type.UNKNOWN + : result; + } + + /** + * optional .pb.remote.SongMetadata.Type type = 22; + */ + public Builder setType(de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Type value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00200000; + type_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * optional .pb.remote.SongMetadata.Type type = 22; + */ + public Builder clearType() { + bitField0_ = (bitField0_ & ~0x00200000); + type_ = 0; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.SongMetadata) + } + + // @@protoc_insertion_point(class_scope:pb.remote.SongMetadata) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SongMetadata parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new SongMetadata(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface PlaylistOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.Playlist) + com.google.protobuf.MessageOrBuilder { + + /** + * optional int32 id = 1; + */ + boolean hasId(); + + /** + * optional int32 id = 1; + */ + int getId(); + + /** + * optional string name = 2; + */ + boolean hasName(); + + /** + * optional string name = 2; + */ + java.lang.String getName(); + + /** + * optional string name = 2; + */ + com.google.protobuf.ByteString getNameBytes(); + + /** + * optional int32 item_count = 3; + */ + boolean hasItemCount(); + + /** + * optional int32 item_count = 3; + */ + int getItemCount(); + + /** + * optional bool active = 4; + */ + boolean hasActive(); + + /** + * optional bool active = 4; + */ + boolean getActive(); + + /** + * optional bool closed = 5; + */ + boolean hasClosed(); + + /** + * optional bool closed = 5; + */ + boolean getClosed(); + } + + /** + *
+     * Playlist informations
+     * 
+ * + * Protobuf type {@code pb.remote.Playlist} + */ + public static final class Playlist extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.Playlist) + PlaylistOrBuilder { + private static final long serialVersionUID = 0L; + + // Use Playlist.newBuilder() to construct. + private Playlist(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private Playlist() { + id_ = 0; + name_ = ""; + itemCount_ = 0; + active_ = false; + closed_ = false; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private Playlist(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + bitField0_ |= 0x00000001; + id_ = input.readInt32(); + break; + } + case 18: { + com.google.protobuf.ByteString bs = input.readBytes(); + bitField0_ |= 0x00000002; + name_ = bs; + break; + } + case 24: { + bitField0_ |= 0x00000004; + itemCount_ = input.readInt32(); + break; + } + case 32: { + bitField0_ |= 0x00000008; + active_ = input.readBool(); + break; + } + case 40: { + bitField0_ |= 0x00000010; + closed_ = input.readBool(); + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_Playlist_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_Playlist_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist.Builder.class); + } + + private int bitField0_; + public static final int ID_FIELD_NUMBER = 1; + private int id_; + + /** + * optional int32 id = 1; + */ + public boolean hasId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 id = 1; + */ + public int getId() { + return id_; + } + + public static final int NAME_FIELD_NUMBER = 2; + private volatile java.lang.Object name_; + + /** + * optional string name = 2; + */ + public boolean hasName() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + * optional string name = 2; + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + name_ = s; + } + return s; + } + } + + /** + * optional string name = 2; + */ + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ITEM_COUNT_FIELD_NUMBER = 3; + private int itemCount_; + + /** + * optional int32 item_count = 3; + */ + public boolean hasItemCount() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + + /** + * optional int32 item_count = 3; + */ + public int getItemCount() { + return itemCount_; + } + + public static final int ACTIVE_FIELD_NUMBER = 4; + private boolean active_; + + /** + * optional bool active = 4; + */ + public boolean hasActive() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + + /** + * optional bool active = 4; + */ + public boolean getActive() { + return active_; + } + + public static final int CLOSED_FIELD_NUMBER = 5; + private boolean closed_; + + /** + * optional bool closed = 5; + */ + public boolean hasClosed() { + return ((bitField0_ & 0x00000010) == 0x00000010); + } + + /** + * optional bool closed = 5; + */ + public boolean getClosed() { + return closed_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeInt32(1, id_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeInt32(3, itemCount_); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + output.writeBool(4, active_); + } + if (((bitField0_ & 0x00000010) == 0x00000010)) { + output.writeBool(5, closed_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, id_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(3, itemCount_); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, active_); + } + if (((bitField0_ & 0x00000010) == 0x00000010)) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(5, closed_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist other = (de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist) obj; + + boolean result = true; + result = result && (hasId() == other.hasId()); + if (hasId()) { + result = result && (getId() == other.getId()); + } + result = result && (hasName() == other.hasName()); + if (hasName()) { + result = result && getName().equals(other.getName()); + } + result = result && (hasItemCount() == other.hasItemCount()); + if (hasItemCount()) { + result = result && (getItemCount() == other.getItemCount()); + } + result = result && (hasActive() == other.hasActive()); + if (hasActive()) { + result = result && (getActive() == other.getActive()); + } + result = result && (hasClosed() == other.hasClosed()); + if (hasClosed()) { + result = result && (getClosed() == other.getClosed()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasId()) { + hash = (37 * hash) + ID_FIELD_NUMBER; + hash = (53 * hash) + getId(); + } + if (hasName()) { + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + } + if (hasItemCount()) { + hash = (37 * hash) + ITEM_COUNT_FIELD_NUMBER; + hash = (53 * hash) + getItemCount(); + } + if (hasActive()) { + hash = (37 * hash) + ACTIVE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getActive()); + } + if (hasClosed()) { + hash = (37 * hash) + CLOSED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getClosed()); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+         * Playlist informations
+         * 
+ * + * Protobuf type {@code pb.remote.Playlist} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.Playlist) + de.qspool.clementineremote.backend.pb.ClementineRemote.PlaylistOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_Playlist_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_Playlist_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist.Builder.class); + } + + // Construct using de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + id_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + name_ = ""; + bitField0_ = (bitField0_ & ~0x00000002); + itemCount_ = 0; + bitField0_ = (bitField0_ & ~0x00000004); + active_ = false; + bitField0_ = (bitField0_ & ~0x00000008); + closed_ = false; + bitField0_ = (bitField0_ & ~0x00000010); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_Playlist_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist.getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist result = new de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.id_ = id_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.name_ = name_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + result.itemCount_ = itemCount_; + if (((from_bitField0_ & 0x00000008) == 0x00000008)) { + to_bitField0_ |= 0x00000008; + } + result.active_ = active_; + if (((from_bitField0_ & 0x00000010) == 0x00000010)) { + to_bitField0_ |= 0x00000010; + } + result.closed_ = closed_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist) { + return mergeFrom((de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist.getDefaultInstance()) + return this; + if (other.hasId()) { + setId(other.getId()); + } + if (other.hasName()) { + bitField0_ |= 0x00000002; + name_ = other.name_; + onChanged(); + } + if (other.hasItemCount()) { + setItemCount(other.getItemCount()); + } + if (other.hasActive()) { + setActive(other.getActive()); + } + if (other.hasClosed()) { + setClosed(other.getClosed()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private int id_; + + /** + * optional int32 id = 1; + */ + public boolean hasId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 id = 1; + */ + public int getId() { + return id_; + } + + /** + * optional int32 id = 1; + */ + public Builder setId(int value) { + bitField0_ |= 0x00000001; + id_ = value; + onChanged(); + return this; + } + + /** + * optional int32 id = 1; + */ + public Builder clearId() { + bitField0_ = (bitField0_ & ~0x00000001); + id_ = 0; + onChanged(); + return this; + } + + private java.lang.Object name_ = ""; + + /** + * optional string name = 2; + */ + public boolean hasName() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + * optional string name = 2; + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + name_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * optional string name = 2; + */ + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString + .copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * optional string name = 2; + */ + public Builder setName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + name_ = value; + onChanged(); + return this; + } + + /** + * optional string name = 2; + */ + public Builder clearName() { + bitField0_ = (bitField0_ & ~0x00000002); + name_ = getDefaultInstance().getName(); + onChanged(); + return this; + } + + /** + * optional string name = 2; + */ + public Builder setNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + name_ = value; + onChanged(); + return this; + } + + private int itemCount_; + + /** + * optional int32 item_count = 3; + */ + public boolean hasItemCount() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + + /** + * optional int32 item_count = 3; + */ + public int getItemCount() { + return itemCount_; + } + + /** + * optional int32 item_count = 3; + */ + public Builder setItemCount(int value) { + bitField0_ |= 0x00000004; + itemCount_ = value; + onChanged(); + return this; + } + + /** + * optional int32 item_count = 3; + */ + public Builder clearItemCount() { + bitField0_ = (bitField0_ & ~0x00000004); + itemCount_ = 0; + onChanged(); + return this; + } + + private boolean active_; + + /** + * optional bool active = 4; + */ + public boolean hasActive() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + + /** + * optional bool active = 4; + */ + public boolean getActive() { + return active_; + } + + /** + * optional bool active = 4; + */ + public Builder setActive(boolean value) { + bitField0_ |= 0x00000008; + active_ = value; + onChanged(); + return this; + } + + /** + * optional bool active = 4; + */ + public Builder clearActive() { + bitField0_ = (bitField0_ & ~0x00000008); + active_ = false; + onChanged(); + return this; + } + + private boolean closed_; + + /** + * optional bool closed = 5; + */ + public boolean hasClosed() { + return ((bitField0_ & 0x00000010) == 0x00000010); + } + + /** + * optional bool closed = 5; + */ + public boolean getClosed() { + return closed_; + } + + /** + * optional bool closed = 5; + */ + public Builder setClosed(boolean value) { + bitField0_ |= 0x00000010; + closed_ = value; + onChanged(); + return this; + } + + /** + * optional bool closed = 5; + */ + public Builder clearClosed() { + bitField0_ = (bitField0_ & ~0x00000010); + closed_ = false; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.Playlist) + } + + // @@protoc_insertion_point(class_scope:pb.remote.Playlist) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Playlist parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new Playlist(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface RequestPlaylistsOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.RequestPlaylists) + com.google.protobuf.MessageOrBuilder { + + /** + * optional bool include_closed = 1; + */ + boolean hasIncludeClosed(); + + /** + * optional bool include_closed = 1; + */ + boolean getIncludeClosed(); + } + + /** + * Protobuf type {@code pb.remote.RequestPlaylists} + */ + public static final class RequestPlaylists extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.RequestPlaylists) + RequestPlaylistsOrBuilder { + private static final long serialVersionUID = 0L; + + // Use RequestPlaylists.newBuilder() to construct. + private RequestPlaylists(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private RequestPlaylists() { + includeClosed_ = false; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private RequestPlaylists(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + bitField0_ |= 0x00000001; + includeClosed_ = input.readBool(); + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestPlaylists_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestPlaylists_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists.Builder.class); + } + + private int bitField0_; + public static final int INCLUDE_CLOSED_FIELD_NUMBER = 1; + private boolean includeClosed_; + + /** + * optional bool include_closed = 1; + */ + public boolean hasIncludeClosed() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional bool include_closed = 1; + */ + public boolean getIncludeClosed() { + return includeClosed_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeBool(1, includeClosed_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(1, includeClosed_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists other = (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists) obj; + + boolean result = true; + result = result && (hasIncludeClosed() == other.hasIncludeClosed()); + if (hasIncludeClosed()) { + result = result && (getIncludeClosed() == other.getIncludeClosed()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasIncludeClosed()) { + hash = (37 * hash) + INCLUDE_CLOSED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIncludeClosed()); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code pb.remote.RequestPlaylists} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.RequestPlaylists) + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestPlaylists_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestPlaylists_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists.Builder.class); + } + + // Construct using de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + includeClosed_ = false; + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestPlaylists_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists.getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists result = new de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.includeClosed_ = includeClosed_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists) { + return mergeFrom((de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists + .getDefaultInstance()) + return this; + if (other.hasIncludeClosed()) { + setIncludeClosed(other.getIncludeClosed()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private boolean includeClosed_; + + /** + * optional bool include_closed = 1; + */ + public boolean hasIncludeClosed() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional bool include_closed = 1; + */ + public boolean getIncludeClosed() { + return includeClosed_; + } + + /** + * optional bool include_closed = 1; + */ + public Builder setIncludeClosed(boolean value) { + bitField0_ |= 0x00000001; + includeClosed_ = value; + onChanged(); + return this; + } + + /** + * optional bool include_closed = 1; + */ + public Builder clearIncludeClosed() { + bitField0_ = (bitField0_ & ~0x00000001); + includeClosed_ = false; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.RequestPlaylists) + } + + // @@protoc_insertion_point(class_scope:pb.remote.RequestPlaylists) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public RequestPlaylists parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new RequestPlaylists(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface RequestPlaylistSongsOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.RequestPlaylistSongs) + com.google.protobuf.MessageOrBuilder { + + /** + * optional int32 id = 1; + */ + boolean hasId(); + + /** + * optional int32 id = 1; + */ + int getId(); + } + + /** + *
+     * A Client requests songs from a specific playlist
+     * 
+ * + * Protobuf type {@code pb.remote.RequestPlaylistSongs} + */ + public static final class RequestPlaylistSongs extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.RequestPlaylistSongs) + RequestPlaylistSongsOrBuilder { + private static final long serialVersionUID = 0L; + + // Use RequestPlaylistSongs.newBuilder() to construct. + private RequestPlaylistSongs(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private RequestPlaylistSongs() { + id_ = 0; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private RequestPlaylistSongs(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + bitField0_ |= 0x00000001; + id_ = input.readInt32(); + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestPlaylistSongs_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestPlaylistSongs_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs.Builder.class); + } + + private int bitField0_; + public static final int ID_FIELD_NUMBER = 1; + private int id_; + + /** + * optional int32 id = 1; + */ + public boolean hasId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 id = 1; + */ + public int getId() { + return id_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeInt32(1, id_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, id_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs other = (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs) obj; + + boolean result = true; + result = result && (hasId() == other.hasId()); + if (hasId()) { + result = result && (getId() == other.getId()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasId()) { + hash = (37 * hash) + ID_FIELD_NUMBER; + hash = (53 * hash) + getId(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+         * A Client requests songs from a specific playlist
+         * 
+ * + * Protobuf type {@code pb.remote.RequestPlaylistSongs} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.RequestPlaylistSongs) + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestPlaylistSongs_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestPlaylistSongs_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs.Builder.class); + } + + // Construct using de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + id_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestPlaylistSongs_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs.getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs result = new de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.id_ = id_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs) { + return mergeFrom( + (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs + .getDefaultInstance()) + return this; + if (other.hasId()) { + setId(other.getId()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private int id_; + + /** + * optional int32 id = 1; + */ + public boolean hasId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 id = 1; + */ + public int getId() { + return id_; + } + + /** + * optional int32 id = 1; + */ + public Builder setId(int value) { + bitField0_ |= 0x00000001; + id_ = value; + onChanged(); + return this; + } + + /** + * optional int32 id = 1; + */ + public Builder clearId() { + bitField0_ = (bitField0_ & ~0x00000001); + id_ = 0; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.RequestPlaylistSongs) + } + + // @@protoc_insertion_point(class_scope:pb.remote.RequestPlaylistSongs) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public RequestPlaylistSongs parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new RequestPlaylistSongs(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface RequestChangeSongOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.RequestChangeSong) + com.google.protobuf.MessageOrBuilder { + + /** + *
+         * In which playlist is the song?
+         * 
+ * + * optional int32 playlist_id = 1; + */ + boolean hasPlaylistId(); + + /** + *
+         * In which playlist is the song?
+         * 
+ * + * optional int32 playlist_id = 1; + */ + int getPlaylistId(); + + /** + *
+         * And on which position?
+         * 
+ * + * optional int32 song_index = 2; + */ + boolean hasSongIndex(); + + /** + *
+         * And on which position?
+         * 
+ * + * optional int32 song_index = 2; + */ + int getSongIndex(); + } + + /** + *
+     * Client want to change track
+     * 
+ * + * Protobuf type {@code pb.remote.RequestChangeSong} + */ + public static final class RequestChangeSong extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.RequestChangeSong) + RequestChangeSongOrBuilder { + private static final long serialVersionUID = 0L; + + // Use RequestChangeSong.newBuilder() to construct. + private RequestChangeSong(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private RequestChangeSong() { + playlistId_ = 0; + songIndex_ = 0; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private RequestChangeSong(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + bitField0_ |= 0x00000001; + playlistId_ = input.readInt32(); + break; + } + case 16: { + bitField0_ |= 0x00000002; + songIndex_ = input.readInt32(); + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestChangeSong_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestChangeSong_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong.Builder.class); + } + + private int bitField0_; + public static final int PLAYLIST_ID_FIELD_NUMBER = 1; + private int playlistId_; + + /** + *
+         * In which playlist is the song?
+         * 
+ * + * optional int32 playlist_id = 1; + */ + public boolean hasPlaylistId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + *
+         * In which playlist is the song?
+         * 
+ * + * optional int32 playlist_id = 1; + */ + public int getPlaylistId() { + return playlistId_; + } + + public static final int SONG_INDEX_FIELD_NUMBER = 2; + private int songIndex_; + + /** + *
+         * And on which position?
+         * 
+ * + * optional int32 song_index = 2; + */ + public boolean hasSongIndex() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + *
+         * And on which position?
+         * 
+ * + * optional int32 song_index = 2; + */ + public int getSongIndex() { + return songIndex_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeInt32(1, playlistId_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeInt32(2, songIndex_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, playlistId_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(2, songIndex_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong other = (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong) obj; + + boolean result = true; + result = result && (hasPlaylistId() == other.hasPlaylistId()); + if (hasPlaylistId()) { + result = result && (getPlaylistId() == other.getPlaylistId()); + } + result = result && (hasSongIndex() == other.hasSongIndex()); + if (hasSongIndex()) { + result = result && (getSongIndex() == other.getSongIndex()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasPlaylistId()) { + hash = (37 * hash) + PLAYLIST_ID_FIELD_NUMBER; + hash = (53 * hash) + getPlaylistId(); + } + if (hasSongIndex()) { + hash = (37 * hash) + SONG_INDEX_FIELD_NUMBER; + hash = (53 * hash) + getSongIndex(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+         * Client want to change track
+         * 
+ * + * Protobuf type {@code pb.remote.RequestChangeSong} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.RequestChangeSong) + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSongOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestChangeSong_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestChangeSong_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong.Builder.class); + } + + // Construct using de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + playlistId_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + songIndex_ = 0; + bitField0_ = (bitField0_ & ~0x00000002); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestChangeSong_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong.getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong result = new de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.playlistId_ = playlistId_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.songIndex_ = songIndex_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong) { + return mergeFrom((de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong + .getDefaultInstance()) + return this; + if (other.hasPlaylistId()) { + setPlaylistId(other.getPlaylistId()); + } + if (other.hasSongIndex()) { + setSongIndex(other.getSongIndex()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private int playlistId_; + + /** + *
+             * In which playlist is the song?
+             * 
+ * + * optional int32 playlist_id = 1; + */ + public boolean hasPlaylistId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + *
+             * In which playlist is the song?
+             * 
+ * + * optional int32 playlist_id = 1; + */ + public int getPlaylistId() { + return playlistId_; + } + + /** + *
+             * In which playlist is the song?
+             * 
+ * + * optional int32 playlist_id = 1; + */ + public Builder setPlaylistId(int value) { + bitField0_ |= 0x00000001; + playlistId_ = value; + onChanged(); + return this; + } + + /** + *
+             * In which playlist is the song?
+             * 
+ * + * optional int32 playlist_id = 1; + */ + public Builder clearPlaylistId() { + bitField0_ = (bitField0_ & ~0x00000001); + playlistId_ = 0; + onChanged(); + return this; + } + + private int songIndex_; + + /** + *
+             * And on which position?
+             * 
+ * + * optional int32 song_index = 2; + */ + public boolean hasSongIndex() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + *
+             * And on which position?
+             * 
+ * + * optional int32 song_index = 2; + */ + public int getSongIndex() { + return songIndex_; + } + + /** + *
+             * And on which position?
+             * 
+ * + * optional int32 song_index = 2; + */ + public Builder setSongIndex(int value) { + bitField0_ |= 0x00000002; + songIndex_ = value; + onChanged(); + return this; + } + + /** + *
+             * And on which position?
+             * 
+ * + * optional int32 song_index = 2; + */ + public Builder clearSongIndex() { + bitField0_ = (bitField0_ & ~0x00000002); + songIndex_ = 0; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.RequestChangeSong) + } + + // @@protoc_insertion_point(class_scope:pb.remote.RequestChangeSong) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public RequestChangeSong parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new RequestChangeSong(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface RequestSetVolumeOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.RequestSetVolume) + com.google.protobuf.MessageOrBuilder { + + /** + * optional int32 volume = 1; + */ + boolean hasVolume(); + + /** + * optional int32 volume = 1; + */ + int getVolume(); + } + + /** + *
+     * Set the volume
+     * 
+ * + * Protobuf type {@code pb.remote.RequestSetVolume} + */ + public static final class RequestSetVolume extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.RequestSetVolume) + RequestSetVolumeOrBuilder { + private static final long serialVersionUID = 0L; + + // Use RequestSetVolume.newBuilder() to construct. + private RequestSetVolume(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private RequestSetVolume() { + volume_ = 0; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private RequestSetVolume(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + bitField0_ |= 0x00000001; + volume_ = input.readInt32(); + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestSetVolume_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestSetVolume_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume.Builder.class); + } + + private int bitField0_; + public static final int VOLUME_FIELD_NUMBER = 1; + private int volume_; + + /** + * optional int32 volume = 1; + */ + public boolean hasVolume() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 volume = 1; + */ + public int getVolume() { + return volume_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeInt32(1, volume_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, volume_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume other = (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume) obj; + + boolean result = true; + result = result && (hasVolume() == other.hasVolume()); + if (hasVolume()) { + result = result && (getVolume() == other.getVolume()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasVolume()) { + hash = (37 * hash) + VOLUME_FIELD_NUMBER; + hash = (53 * hash) + getVolume(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+         * Set the volume
+         * 
+ * + * Protobuf type {@code pb.remote.RequestSetVolume} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.RequestSetVolume) + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolumeOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestSetVolume_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestSetVolume_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume.Builder.class); + } + + // Construct using de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + volume_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestSetVolume_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume.getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume result = new de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.volume_ = volume_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume) { + return mergeFrom((de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume + .getDefaultInstance()) + return this; + if (other.hasVolume()) { + setVolume(other.getVolume()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private int volume_; + + /** + * optional int32 volume = 1; + */ + public boolean hasVolume() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 volume = 1; + */ + public int getVolume() { + return volume_; + } + + /** + * optional int32 volume = 1; + */ + public Builder setVolume(int value) { + bitField0_ |= 0x00000001; + volume_ = value; + onChanged(); + return this; + } + + /** + * optional int32 volume = 1; + */ + public Builder clearVolume() { + bitField0_ = (bitField0_ & ~0x00000001); + volume_ = 0; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.RequestSetVolume) + } + + // @@protoc_insertion_point(class_scope:pb.remote.RequestSetVolume) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public RequestSetVolume parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new RequestSetVolume(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface RepeatOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.Repeat) + com.google.protobuf.MessageOrBuilder { + + /** + * optional .pb.remote.RepeatMode repeat_mode = 1; + */ + boolean hasRepeatMode(); + + /** + * optional .pb.remote.RepeatMode repeat_mode = 1; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RepeatMode getRepeatMode(); + } + + /** + *
+     * Repeat and Random messages
+     * 
+ * + * Protobuf type {@code pb.remote.Repeat} + */ + public static final class Repeat extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.Repeat) + RepeatOrBuilder { + private static final long serialVersionUID = 0L; + + // Use Repeat.newBuilder() to construct. + private Repeat(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private Repeat() { + repeatMode_ = 0; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private Repeat(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + int rawValue = input.readEnum(); + @SuppressWarnings("deprecation") + de.qspool.clementineremote.backend.pb.ClementineRemote.RepeatMode value = de.qspool.clementineremote.backend.pb.ClementineRemote.RepeatMode + .valueOf(rawValue); + if (value == null) { + unknownFields.mergeVarintField(1, rawValue); + } else { + bitField0_ |= 0x00000001; + repeatMode_ = rawValue; + } + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_Repeat_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_Repeat_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat.Builder.class); + } + + private int bitField0_; + public static final int REPEAT_MODE_FIELD_NUMBER = 1; + private int repeatMode_; + + /** + * optional .pb.remote.RepeatMode repeat_mode = 1; + */ + public boolean hasRepeatMode() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional .pb.remote.RepeatMode repeat_mode = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RepeatMode getRepeatMode() { + @SuppressWarnings("deprecation") + de.qspool.clementineremote.backend.pb.ClementineRemote.RepeatMode result = de.qspool.clementineremote.backend.pb.ClementineRemote.RepeatMode + .valueOf(repeatMode_); + return result == null ? de.qspool.clementineremote.backend.pb.ClementineRemote.RepeatMode.Repeat_Off + : result; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeEnum(1, repeatMode_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, repeatMode_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat other = (de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat) obj; + + boolean result = true; + result = result && (hasRepeatMode() == other.hasRepeatMode()); + if (hasRepeatMode()) { + result = result && repeatMode_ == other.repeatMode_; + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasRepeatMode()) { + hash = (37 * hash) + REPEAT_MODE_FIELD_NUMBER; + hash = (53 * hash) + repeatMode_; + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat parseFrom(java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat parseFrom(java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+         * Repeat and Random messages
+         * 
+ * + * Protobuf type {@code pb.remote.Repeat} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.Repeat) + de.qspool.clementineremote.backend.pb.ClementineRemote.RepeatOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_Repeat_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_Repeat_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat.Builder.class); + } + + // Construct using de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + repeatMode_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_Repeat_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat.getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat result = new de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.repeatMode_ = repeatMode_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat) { + return mergeFrom((de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat.getDefaultInstance()) + return this; + if (other.hasRepeatMode()) { + setRepeatMode(other.getRepeatMode()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private int repeatMode_ = 0; + + /** + * optional .pb.remote.RepeatMode repeat_mode = 1; + */ + public boolean hasRepeatMode() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional .pb.remote.RepeatMode repeat_mode = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RepeatMode getRepeatMode() { + @SuppressWarnings("deprecation") + de.qspool.clementineremote.backend.pb.ClementineRemote.RepeatMode result = de.qspool.clementineremote.backend.pb.ClementineRemote.RepeatMode + .valueOf(repeatMode_); + return result == null ? de.qspool.clementineremote.backend.pb.ClementineRemote.RepeatMode.Repeat_Off + : result; + } + + /** + * optional .pb.remote.RepeatMode repeat_mode = 1; + */ + public Builder setRepeatMode(de.qspool.clementineremote.backend.pb.ClementineRemote.RepeatMode value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + repeatMode_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * optional .pb.remote.RepeatMode repeat_mode = 1; + */ + public Builder clearRepeatMode() { + bitField0_ = (bitField0_ & ~0x00000001); + repeatMode_ = 0; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.Repeat) + } + + // @@protoc_insertion_point(class_scope:pb.remote.Repeat) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Repeat parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new Repeat(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ShuffleOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.Shuffle) + com.google.protobuf.MessageOrBuilder { + + /** + * optional .pb.remote.ShuffleMode shuffle_mode = 1; + */ + boolean hasShuffleMode(); + + /** + * optional .pb.remote.ShuffleMode shuffle_mode = 1; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ShuffleMode getShuffleMode(); + } + + /** + * Protobuf type {@code pb.remote.Shuffle} + */ + public static final class Shuffle extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.Shuffle) + ShuffleOrBuilder { + private static final long serialVersionUID = 0L; + + // Use Shuffle.newBuilder() to construct. + private Shuffle(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private Shuffle() { + shuffleMode_ = 0; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private Shuffle(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + int rawValue = input.readEnum(); + @SuppressWarnings("deprecation") + de.qspool.clementineremote.backend.pb.ClementineRemote.ShuffleMode value = de.qspool.clementineremote.backend.pb.ClementineRemote.ShuffleMode + .valueOf(rawValue); + if (value == null) { + unknownFields.mergeVarintField(1, rawValue); + } else { + bitField0_ |= 0x00000001; + shuffleMode_ = rawValue; + } + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_Shuffle_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_Shuffle_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle.Builder.class); + } + + private int bitField0_; + public static final int SHUFFLE_MODE_FIELD_NUMBER = 1; + private int shuffleMode_; + + /** + * optional .pb.remote.ShuffleMode shuffle_mode = 1; + */ + public boolean hasShuffleMode() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional .pb.remote.ShuffleMode shuffle_mode = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ShuffleMode getShuffleMode() { + @SuppressWarnings("deprecation") + de.qspool.clementineremote.backend.pb.ClementineRemote.ShuffleMode result = de.qspool.clementineremote.backend.pb.ClementineRemote.ShuffleMode + .valueOf(shuffleMode_); + return result == null ? de.qspool.clementineremote.backend.pb.ClementineRemote.ShuffleMode.Shuffle_Off + : result; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeEnum(1, shuffleMode_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, shuffleMode_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle other = (de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle) obj; + + boolean result = true; + result = result && (hasShuffleMode() == other.hasShuffleMode()); + if (hasShuffleMode()) { + result = result && shuffleMode_ == other.shuffleMode_; + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasShuffleMode()) { + hash = (37 * hash) + SHUFFLE_MODE_FIELD_NUMBER; + hash = (53 * hash) + shuffleMode_; + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle parseFrom(java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code pb.remote.Shuffle} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.Shuffle) + de.qspool.clementineremote.backend.pb.ClementineRemote.ShuffleOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_Shuffle_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_Shuffle_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle.Builder.class); + } + + // Construct using de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + shuffleMode_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_Shuffle_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle.getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle result = new de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.shuffleMode_ = shuffleMode_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle) { + return mergeFrom((de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle.getDefaultInstance()) + return this; + if (other.hasShuffleMode()) { + setShuffleMode(other.getShuffleMode()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private int shuffleMode_ = 0; + + /** + * optional .pb.remote.ShuffleMode shuffle_mode = 1; + */ + public boolean hasShuffleMode() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional .pb.remote.ShuffleMode shuffle_mode = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ShuffleMode getShuffleMode() { + @SuppressWarnings("deprecation") + de.qspool.clementineremote.backend.pb.ClementineRemote.ShuffleMode result = de.qspool.clementineremote.backend.pb.ClementineRemote.ShuffleMode + .valueOf(shuffleMode_); + return result == null ? de.qspool.clementineremote.backend.pb.ClementineRemote.ShuffleMode.Shuffle_Off + : result; + } + + /** + * optional .pb.remote.ShuffleMode shuffle_mode = 1; + */ + public Builder setShuffleMode(de.qspool.clementineremote.backend.pb.ClementineRemote.ShuffleMode value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + shuffleMode_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * optional .pb.remote.ShuffleMode shuffle_mode = 1; + */ + public Builder clearShuffleMode() { + bitField0_ = (bitField0_ & ~0x00000001); + shuffleMode_ = 0; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.Shuffle) + } + + // @@protoc_insertion_point(class_scope:pb.remote.Shuffle) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Shuffle parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new Shuffle(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ResponseClementineInfoOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.ResponseClementineInfo) + com.google.protobuf.MessageOrBuilder { + + /** + * optional string version = 1; + */ + boolean hasVersion(); + + /** + * optional string version = 1; + */ + java.lang.String getVersion(); + + /** + * optional string version = 1; + */ + com.google.protobuf.ByteString getVersionBytes(); + + /** + * optional .pb.remote.EngineState state = 2; + */ + boolean hasState(); + + /** + * optional .pb.remote.EngineState state = 2; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.EngineState getState(); + } + + /** + *
+     * Response from server
+     * General info
+     * 
+ * + * Protobuf type {@code pb.remote.ResponseClementineInfo} + */ + public static final class ResponseClementineInfo extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.ResponseClementineInfo) + ResponseClementineInfoOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ResponseClementineInfo.newBuilder() to construct. + private ResponseClementineInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ResponseClementineInfo() { + version_ = ""; + state_ = 0; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private ResponseClementineInfo(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.google.protobuf.ByteString bs = input.readBytes(); + bitField0_ |= 0x00000001; + version_ = bs; + break; + } + case 16: { + int rawValue = input.readEnum(); + @SuppressWarnings("deprecation") + de.qspool.clementineremote.backend.pb.ClementineRemote.EngineState value = de.qspool.clementineremote.backend.pb.ClementineRemote.EngineState + .valueOf(rawValue); + if (value == null) { + unknownFields.mergeVarintField(2, rawValue); + } else { + bitField0_ |= 0x00000002; + state_ = rawValue; + } + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseClementineInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseClementineInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo.Builder.class); + } + + private int bitField0_; + public static final int VERSION_FIELD_NUMBER = 1; + private volatile java.lang.Object version_; + + /** + * optional string version = 1; + */ + public boolean hasVersion() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional string version = 1; + */ + public java.lang.String getVersion() { + java.lang.Object ref = version_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + version_ = s; + } + return s; + } + } + + /** + * optional string version = 1; + */ + public com.google.protobuf.ByteString getVersionBytes() { + java.lang.Object ref = version_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + version_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int STATE_FIELD_NUMBER = 2; + private int state_; + + /** + * optional .pb.remote.EngineState state = 2; + */ + public boolean hasState() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + * optional .pb.remote.EngineState state = 2; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.EngineState getState() { + @SuppressWarnings("deprecation") + de.qspool.clementineremote.backend.pb.ClementineRemote.EngineState result = de.qspool.clementineremote.backend.pb.ClementineRemote.EngineState + .valueOf(state_); + return result == null ? de.qspool.clementineremote.backend.pb.ClementineRemote.EngineState.Empty : result; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, version_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeEnum(2, state_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, version_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, state_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo other = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo) obj; + + boolean result = true; + result = result && (hasVersion() == other.hasVersion()); + if (hasVersion()) { + result = result && getVersion().equals(other.getVersion()); + } + result = result && (hasState() == other.hasState()); + if (hasState()) { + result = result && state_ == other.state_; + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasVersion()) { + hash = (37 * hash) + VERSION_FIELD_NUMBER; + hash = (53 * hash) + getVersion().hashCode(); + } + if (hasState()) { + hash = (37 * hash) + STATE_FIELD_NUMBER; + hash = (53 * hash) + state_; + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+         * Response from server
+         * General info
+         * 
+ * + * Protobuf type {@code pb.remote.ResponseClementineInfo} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.ResponseClementineInfo) + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseClementineInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseClementineInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo.Builder.class); + } + + // Construct using + // de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + version_ = ""; + bitField0_ = (bitField0_ & ~0x00000001); + state_ = 0; + bitField0_ = (bitField0_ & ~0x00000002); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseClementineInfo_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo + .getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo result = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.version_ = version_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.state_ = state_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo) { + return mergeFrom( + (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo + .getDefaultInstance()) + return this; + if (other.hasVersion()) { + bitField0_ |= 0x00000001; + version_ = other.version_; + onChanged(); + } + if (other.hasState()) { + setState(other.getState()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private java.lang.Object version_ = ""; + + /** + * optional string version = 1; + */ + public boolean hasVersion() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional string version = 1; + */ + public java.lang.String getVersion() { + java.lang.Object ref = version_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + version_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * optional string version = 1; + */ + public com.google.protobuf.ByteString getVersionBytes() { + java.lang.Object ref = version_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString + .copyFromUtf8((java.lang.String) ref); + version_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * optional string version = 1; + */ + public Builder setVersion(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + version_ = value; + onChanged(); + return this; + } + + /** + * optional string version = 1; + */ + public Builder clearVersion() { + bitField0_ = (bitField0_ & ~0x00000001); + version_ = getDefaultInstance().getVersion(); + onChanged(); + return this; + } + + /** + * optional string version = 1; + */ + public Builder setVersionBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + version_ = value; + onChanged(); + return this; + } + + private int state_ = 0; + + /** + * optional .pb.remote.EngineState state = 2; + */ + public boolean hasState() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + * optional .pb.remote.EngineState state = 2; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.EngineState getState() { + @SuppressWarnings("deprecation") + de.qspool.clementineremote.backend.pb.ClementineRemote.EngineState result = de.qspool.clementineremote.backend.pb.ClementineRemote.EngineState + .valueOf(state_); + return result == null ? de.qspool.clementineremote.backend.pb.ClementineRemote.EngineState.Empty + : result; + } + + /** + * optional .pb.remote.EngineState state = 2; + */ + public Builder setState(de.qspool.clementineremote.backend.pb.ClementineRemote.EngineState value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + state_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * optional .pb.remote.EngineState state = 2; + */ + public Builder clearState() { + bitField0_ = (bitField0_ & ~0x00000002); + state_ = 0; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.ResponseClementineInfo) + } + + // @@protoc_insertion_point(class_scope:pb.remote.ResponseClementineInfo) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ResponseClementineInfo parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ResponseClementineInfo(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ResponseCurrentMetadataOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.ResponseCurrentMetadata) + com.google.protobuf.MessageOrBuilder { + + /** + * optional .pb.remote.SongMetadata song_metadata = 1; + */ + boolean hasSongMetadata(); + + /** + * optional .pb.remote.SongMetadata song_metadata = 1; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata getSongMetadata(); + + /** + * optional .pb.remote.SongMetadata song_metadata = 1; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadataOrBuilder getSongMetadataOrBuilder(); + } + + /** + *
+     * The current song played
+     * 
+ * + * Protobuf type {@code pb.remote.ResponseCurrentMetadata} + */ + public static final class ResponseCurrentMetadata extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.ResponseCurrentMetadata) + ResponseCurrentMetadataOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ResponseCurrentMetadata.newBuilder() to construct. + private ResponseCurrentMetadata(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ResponseCurrentMetadata() { + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private ResponseCurrentMetadata(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Builder subBuilder = null; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + subBuilder = songMetadata_.toBuilder(); + } + songMetadata_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(songMetadata_); + songMetadata_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000001; + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseCurrentMetadata_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseCurrentMetadata_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata.Builder.class); + } + + private int bitField0_; + public static final int SONG_METADATA_FIELD_NUMBER = 1; + private de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata songMetadata_; + + /** + * optional .pb.remote.SongMetadata song_metadata = 1; + */ + public boolean hasSongMetadata() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional .pb.remote.SongMetadata song_metadata = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata getSongMetadata() { + return songMetadata_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.getDefaultInstance() + : songMetadata_; + } + + /** + * optional .pb.remote.SongMetadata song_metadata = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadataOrBuilder getSongMetadataOrBuilder() { + return songMetadata_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.getDefaultInstance() + : songMetadata_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeMessage(1, getSongMetadata()); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getSongMetadata()); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata other = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata) obj; + + boolean result = true; + result = result && (hasSongMetadata() == other.hasSongMetadata()); + if (hasSongMetadata()) { + result = result && getSongMetadata().equals(other.getSongMetadata()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasSongMetadata()) { + hash = (37 * hash) + SONG_METADATA_FIELD_NUMBER; + hash = (53 * hash) + getSongMetadata().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+         * The current song played
+         * 
+ * + * Protobuf type {@code pb.remote.ResponseCurrentMetadata} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.ResponseCurrentMetadata) + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadataOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseCurrentMetadata_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseCurrentMetadata_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata.Builder.class); + } + + // Construct using + // de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getSongMetadataFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + if (songMetadataBuilder_ == null) { + songMetadata_ = null; + } else { + songMetadataBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseCurrentMetadata_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata + .getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata result = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + if (songMetadataBuilder_ == null) { + result.songMetadata_ = songMetadata_; + } else { + result.songMetadata_ = songMetadataBuilder_.build(); + } + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata) { + return mergeFrom( + (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata + .getDefaultInstance()) + return this; + if (other.hasSongMetadata()) { + mergeSongMetadata(other.getSongMetadata()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata songMetadata_ = null; + private com.google.protobuf.SingleFieldBuilderV3 songMetadataBuilder_; + + /** + * optional .pb.remote.SongMetadata song_metadata = 1; + */ + public boolean hasSongMetadata() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional .pb.remote.SongMetadata song_metadata = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata getSongMetadata() { + if (songMetadataBuilder_ == null) { + return songMetadata_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.getDefaultInstance() + : songMetadata_; + } else { + return songMetadataBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.SongMetadata song_metadata = 1; + */ + public Builder setSongMetadata(de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata value) { + if (songMetadataBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + songMetadata_ = value; + onChanged(); + } else { + songMetadataBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + return this; + } + + /** + * optional .pb.remote.SongMetadata song_metadata = 1; + */ + public Builder setSongMetadata( + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Builder builderForValue) { + if (songMetadataBuilder_ == null) { + songMetadata_ = builderForValue.build(); + onChanged(); + } else { + songMetadataBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + return this; + } + + /** + * optional .pb.remote.SongMetadata song_metadata = 1; + */ + public Builder mergeSongMetadata( + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata value) { + if (songMetadataBuilder_ == null) { + if (((bitField0_ & 0x00000001) == 0x00000001) && songMetadata_ != null + && songMetadata_ != de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata + .getDefaultInstance()) { + songMetadata_ = de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata + .newBuilder(songMetadata_).mergeFrom(value).buildPartial(); + } else { + songMetadata_ = value; + } + onChanged(); + } else { + songMetadataBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + return this; + } + + /** + * optional .pb.remote.SongMetadata song_metadata = 1; + */ + public Builder clearSongMetadata() { + if (songMetadataBuilder_ == null) { + songMetadata_ = null; + onChanged(); + } else { + songMetadataBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + /** + * optional .pb.remote.SongMetadata song_metadata = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Builder getSongMetadataBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getSongMetadataFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.SongMetadata song_metadata = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadataOrBuilder getSongMetadataOrBuilder() { + if (songMetadataBuilder_ != null) { + return songMetadataBuilder_.getMessageOrBuilder(); + } else { + return songMetadata_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.getDefaultInstance() + : songMetadata_; + } + } + + /** + * optional .pb.remote.SongMetadata song_metadata = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getSongMetadataFieldBuilder() { + if (songMetadataBuilder_ == null) { + songMetadataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getSongMetadata(), getParentForChildren(), isClean()); + songMetadata_ = null; + } + return songMetadataBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.ResponseCurrentMetadata) + } + + // @@protoc_insertion_point(class_scope:pb.remote.ResponseCurrentMetadata) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ResponseCurrentMetadata parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ResponseCurrentMetadata(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ResponsePlaylistsOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.ResponsePlaylists) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + java.util.List getPlaylistList(); + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist getPlaylist(int index); + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + int getPlaylistCount(); + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + java.util.List getPlaylistOrBuilderList(); + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.PlaylistOrBuilder getPlaylistOrBuilder(int index); + } + + /** + *
+     * The playlists in clementine
+     * 
+ * + * Protobuf type {@code pb.remote.ResponsePlaylists} + */ + public static final class ResponsePlaylists extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.ResponsePlaylists) + ResponsePlaylistsOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ResponsePlaylists.newBuilder() to construct. + private ResponsePlaylists(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ResponsePlaylists() { + playlist_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private ResponsePlaylists(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) { + playlist_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000001; + } + playlist_.add(input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist.PARSER, + extensionRegistry)); + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) { + playlist_ = java.util.Collections.unmodifiableList(playlist_); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponsePlaylists_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponsePlaylists_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists.Builder.class); + } + + public static final int PLAYLIST_FIELD_NUMBER = 1; + private java.util.List playlist_; + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + public java.util.List getPlaylistList() { + return playlist_; + } + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + public java.util.List getPlaylistOrBuilderList() { + return playlist_; + } + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + public int getPlaylistCount() { + return playlist_.size(); + } + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist getPlaylist(int index) { + return playlist_.get(index); + } + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.PlaylistOrBuilder getPlaylistOrBuilder( + int index) { + return playlist_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + for (int i = 0; i < playlist_.size(); i++) { + output.writeMessage(1, playlist_.get(i)); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + for (int i = 0; i < playlist_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, playlist_.get(i)); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists other = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists) obj; + + boolean result = true; + result = result && getPlaylistList().equals(other.getPlaylistList()); + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getPlaylistCount() > 0) { + hash = (37 * hash) + PLAYLIST_FIELD_NUMBER; + hash = (53 * hash) + getPlaylistList().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+         * The playlists in clementine
+         * 
+ * + * Protobuf type {@code pb.remote.ResponsePlaylists} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.ResponsePlaylists) + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponsePlaylists_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponsePlaylists_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists.Builder.class); + } + + // Construct using de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getPlaylistFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + if (playlistBuilder_ == null) { + playlist_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + } else { + playlistBuilder_.clear(); + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponsePlaylists_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists.getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists result = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists( + this); + int from_bitField0_ = bitField0_; + if (playlistBuilder_ == null) { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + playlist_ = java.util.Collections.unmodifiableList(playlist_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.playlist_ = playlist_; + } else { + result.playlist_ = playlistBuilder_.build(); + } + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists) { + return mergeFrom((de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists + .getDefaultInstance()) + return this; + if (playlistBuilder_ == null) { + if (!other.playlist_.isEmpty()) { + if (playlist_.isEmpty()) { + playlist_ = other.playlist_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensurePlaylistIsMutable(); + playlist_.addAll(other.playlist_); + } + onChanged(); + } + } else { + if (!other.playlist_.isEmpty()) { + if (playlistBuilder_.isEmpty()) { + playlistBuilder_.dispose(); + playlistBuilder_ = null; + playlist_ = other.playlist_; + bitField0_ = (bitField0_ & ~0x00000001); + playlistBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders + ? getPlaylistFieldBuilder() + : null; + } else { + playlistBuilder_.addAllMessages(other.playlist_); + } + } + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private java.util.List playlist_ = java.util.Collections + .emptyList(); + + private void ensurePlaylistIsMutable() { + if (!((bitField0_ & 0x00000001) == 0x00000001)) { + playlist_ = new java.util.ArrayList( + playlist_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 playlistBuilder_; + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + public java.util.List getPlaylistList() { + if (playlistBuilder_ == null) { + return java.util.Collections.unmodifiableList(playlist_); + } else { + return playlistBuilder_.getMessageList(); + } + } + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + public int getPlaylistCount() { + if (playlistBuilder_ == null) { + return playlist_.size(); + } else { + return playlistBuilder_.getCount(); + } + } + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist getPlaylist(int index) { + if (playlistBuilder_ == null) { + return playlist_.get(index); + } else { + return playlistBuilder_.getMessage(index); + } + } + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + public Builder setPlaylist(int index, + de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist value) { + if (playlistBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensurePlaylistIsMutable(); + playlist_.set(index, value); + onChanged(); + } else { + playlistBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + public Builder setPlaylist(int index, + de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist.Builder builderForValue) { + if (playlistBuilder_ == null) { + ensurePlaylistIsMutable(); + playlist_.set(index, builderForValue.build()); + onChanged(); + } else { + playlistBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + public Builder addPlaylist(de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist value) { + if (playlistBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensurePlaylistIsMutable(); + playlist_.add(value); + onChanged(); + } else { + playlistBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + public Builder addPlaylist(int index, + de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist value) { + if (playlistBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensurePlaylistIsMutable(); + playlist_.add(index, value); + onChanged(); + } else { + playlistBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + public Builder addPlaylist( + de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist.Builder builderForValue) { + if (playlistBuilder_ == null) { + ensurePlaylistIsMutable(); + playlist_.add(builderForValue.build()); + onChanged(); + } else { + playlistBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + public Builder addPlaylist(int index, + de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist.Builder builderForValue) { + if (playlistBuilder_ == null) { + ensurePlaylistIsMutable(); + playlist_.add(index, builderForValue.build()); + onChanged(); + } else { + playlistBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + public Builder addAllPlaylist( + java.lang.Iterable values) { + if (playlistBuilder_ == null) { + ensurePlaylistIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, playlist_); + onChanged(); + } else { + playlistBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + public Builder clearPlaylist() { + if (playlistBuilder_ == null) { + playlist_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + playlistBuilder_.clear(); + } + return this; + } + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + public Builder removePlaylist(int index) { + if (playlistBuilder_ == null) { + ensurePlaylistIsMutable(); + playlist_.remove(index); + onChanged(); + } else { + playlistBuilder_.remove(index); + } + return this; + } + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist.Builder getPlaylistBuilder( + int index) { + return getPlaylistFieldBuilder().getBuilder(index); + } + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.PlaylistOrBuilder getPlaylistOrBuilder( + int index) { + if (playlistBuilder_ == null) { + return playlist_.get(index); + } else { + return playlistBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + public java.util.List getPlaylistOrBuilderList() { + if (playlistBuilder_ != null) { + return playlistBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(playlist_); + } + } + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist.Builder addPlaylistBuilder() { + return getPlaylistFieldBuilder().addBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist.getDefaultInstance()); + } + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist.Builder addPlaylistBuilder( + int index) { + return getPlaylistFieldBuilder().addBuilder(index, + de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist.getDefaultInstance()); + } + + /** + * repeated .pb.remote.Playlist playlist = 1; + */ + public java.util.List getPlaylistBuilderList() { + return getPlaylistFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getPlaylistFieldBuilder() { + if (playlistBuilder_ == null) { + playlistBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3( + playlist_, ((bitField0_ & 0x00000001) == 0x00000001), getParentForChildren(), isClean()); + playlist_ = null; + } + return playlistBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.ResponsePlaylists) + } + + // @@protoc_insertion_point(class_scope:pb.remote.ResponsePlaylists) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ResponsePlaylists parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ResponsePlaylists(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ResponsePlaylistSongsOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.ResponsePlaylistSongs) + com.google.protobuf.MessageOrBuilder { + + /** + * optional .pb.remote.Playlist requested_playlist = 1; + */ + boolean hasRequestedPlaylist(); + + /** + * optional .pb.remote.Playlist requested_playlist = 1; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist getRequestedPlaylist(); + + /** + * optional .pb.remote.Playlist requested_playlist = 1; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.PlaylistOrBuilder getRequestedPlaylistOrBuilder(); + + /** + *
+         * The songs that are in the playlist
+         * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + java.util.List getSongsList(); + + /** + *
+         * The songs that are in the playlist
+         * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata getSongs(int index); + + /** + *
+         * The songs that are in the playlist
+         * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + int getSongsCount(); + + /** + *
+         * The songs that are in the playlist
+         * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + java.util.List getSongsOrBuilderList(); + + /** + *
+         * The songs that are in the playlist
+         * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadataOrBuilder getSongsOrBuilder(int index); + } + + /** + *
+     * A list of songs in a playlist
+     * 
+ * + * Protobuf type {@code pb.remote.ResponsePlaylistSongs} + */ + public static final class ResponsePlaylistSongs extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.ResponsePlaylistSongs) + ResponsePlaylistSongsOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ResponsePlaylistSongs.newBuilder() to construct. + private ResponsePlaylistSongs(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ResponsePlaylistSongs() { + songs_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private ResponsePlaylistSongs(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist.Builder subBuilder = null; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + subBuilder = requestedPlaylist_.toBuilder(); + } + requestedPlaylist_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(requestedPlaylist_); + requestedPlaylist_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000001; + break; + } + case 18: { + if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) { + songs_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000002; + } + songs_.add(input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.PARSER, + extensionRegistry)); + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) { + songs_ = java.util.Collections.unmodifiableList(songs_); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponsePlaylistSongs_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponsePlaylistSongs_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs.Builder.class); + } + + private int bitField0_; + public static final int REQUESTED_PLAYLIST_FIELD_NUMBER = 1; + private de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist requestedPlaylist_; + + /** + * optional .pb.remote.Playlist requested_playlist = 1; + */ + public boolean hasRequestedPlaylist() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional .pb.remote.Playlist requested_playlist = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist getRequestedPlaylist() { + return requestedPlaylist_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist.getDefaultInstance() + : requestedPlaylist_; + } + + /** + * optional .pb.remote.Playlist requested_playlist = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.PlaylistOrBuilder getRequestedPlaylistOrBuilder() { + return requestedPlaylist_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist.getDefaultInstance() + : requestedPlaylist_; + } + + public static final int SONGS_FIELD_NUMBER = 2; + private java.util.List songs_; + + /** + *
+         * The songs that are in the playlist
+         * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + public java.util.List getSongsList() { + return songs_; + } + + /** + *
+         * The songs that are in the playlist
+         * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + public java.util.List getSongsOrBuilderList() { + return songs_; + } + + /** + *
+         * The songs that are in the playlist
+         * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + public int getSongsCount() { + return songs_.size(); + } + + /** + *
+         * The songs that are in the playlist
+         * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata getSongs(int index) { + return songs_.get(index); + } + + /** + *
+         * The songs that are in the playlist
+         * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadataOrBuilder getSongsOrBuilder( + int index) { + return songs_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeMessage(1, getRequestedPlaylist()); + } + for (int i = 0; i < songs_.size(); i++) { + output.writeMessage(2, songs_.get(i)); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getRequestedPlaylist()); + } + for (int i = 0; i < songs_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, songs_.get(i)); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs other = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs) obj; + + boolean result = true; + result = result && (hasRequestedPlaylist() == other.hasRequestedPlaylist()); + if (hasRequestedPlaylist()) { + result = result && getRequestedPlaylist().equals(other.getRequestedPlaylist()); + } + result = result && getSongsList().equals(other.getSongsList()); + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasRequestedPlaylist()) { + hash = (37 * hash) + REQUESTED_PLAYLIST_FIELD_NUMBER; + hash = (53 * hash) + getRequestedPlaylist().hashCode(); + } + if (getSongsCount() > 0) { + hash = (37 * hash) + SONGS_FIELD_NUMBER; + hash = (53 * hash) + getSongsList().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+         * A list of songs in a playlist
+         * 
+ * + * Protobuf type {@code pb.remote.ResponsePlaylistSongs} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.ResponsePlaylistSongs) + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponsePlaylistSongs_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponsePlaylistSongs_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs.Builder.class); + } + + // Construct using de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getRequestedPlaylistFieldBuilder(); + getSongsFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + if (requestedPlaylistBuilder_ == null) { + requestedPlaylist_ = null; + } else { + requestedPlaylistBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + if (songsBuilder_ == null) { + songs_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + } else { + songsBuilder_.clear(); + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponsePlaylistSongs_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs + .getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs result = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + if (requestedPlaylistBuilder_ == null) { + result.requestedPlaylist_ = requestedPlaylist_; + } else { + result.requestedPlaylist_ = requestedPlaylistBuilder_.build(); + } + if (songsBuilder_ == null) { + if (((bitField0_ & 0x00000002) == 0x00000002)) { + songs_ = java.util.Collections.unmodifiableList(songs_); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.songs_ = songs_; + } else { + result.songs_ = songsBuilder_.build(); + } + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs) { + return mergeFrom( + (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs + .getDefaultInstance()) + return this; + if (other.hasRequestedPlaylist()) { + mergeRequestedPlaylist(other.getRequestedPlaylist()); + } + if (songsBuilder_ == null) { + if (!other.songs_.isEmpty()) { + if (songs_.isEmpty()) { + songs_ = other.songs_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureSongsIsMutable(); + songs_.addAll(other.songs_); + } + onChanged(); + } + } else { + if (!other.songs_.isEmpty()) { + if (songsBuilder_.isEmpty()) { + songsBuilder_.dispose(); + songsBuilder_ = null; + songs_ = other.songs_; + bitField0_ = (bitField0_ & ~0x00000002); + songsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders + ? getSongsFieldBuilder() + : null; + } else { + songsBuilder_.addAllMessages(other.songs_); + } + } + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist requestedPlaylist_ = null; + private com.google.protobuf.SingleFieldBuilderV3 requestedPlaylistBuilder_; + + /** + * optional .pb.remote.Playlist requested_playlist = 1; + */ + public boolean hasRequestedPlaylist() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional .pb.remote.Playlist requested_playlist = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist getRequestedPlaylist() { + if (requestedPlaylistBuilder_ == null) { + return requestedPlaylist_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist.getDefaultInstance() + : requestedPlaylist_; + } else { + return requestedPlaylistBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.Playlist requested_playlist = 1; + */ + public Builder setRequestedPlaylist(de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist value) { + if (requestedPlaylistBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + requestedPlaylist_ = value; + onChanged(); + } else { + requestedPlaylistBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + return this; + } + + /** + * optional .pb.remote.Playlist requested_playlist = 1; + */ + public Builder setRequestedPlaylist( + de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist.Builder builderForValue) { + if (requestedPlaylistBuilder_ == null) { + requestedPlaylist_ = builderForValue.build(); + onChanged(); + } else { + requestedPlaylistBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + return this; + } + + /** + * optional .pb.remote.Playlist requested_playlist = 1; + */ + public Builder mergeRequestedPlaylist( + de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist value) { + if (requestedPlaylistBuilder_ == null) { + if (((bitField0_ & 0x00000001) == 0x00000001) && requestedPlaylist_ != null + && requestedPlaylist_ != de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist + .getDefaultInstance()) { + requestedPlaylist_ = de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist + .newBuilder(requestedPlaylist_).mergeFrom(value).buildPartial(); + } else { + requestedPlaylist_ = value; + } + onChanged(); + } else { + requestedPlaylistBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + return this; + } + + /** + * optional .pb.remote.Playlist requested_playlist = 1; + */ + public Builder clearRequestedPlaylist() { + if (requestedPlaylistBuilder_ == null) { + requestedPlaylist_ = null; + onChanged(); + } else { + requestedPlaylistBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + /** + * optional .pb.remote.Playlist requested_playlist = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist.Builder getRequestedPlaylistBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getRequestedPlaylistFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.Playlist requested_playlist = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.PlaylistOrBuilder getRequestedPlaylistOrBuilder() { + if (requestedPlaylistBuilder_ != null) { + return requestedPlaylistBuilder_.getMessageOrBuilder(); + } else { + return requestedPlaylist_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.Playlist.getDefaultInstance() + : requestedPlaylist_; + } + } + + /** + * optional .pb.remote.Playlist requested_playlist = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getRequestedPlaylistFieldBuilder() { + if (requestedPlaylistBuilder_ == null) { + requestedPlaylistBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getRequestedPlaylist(), getParentForChildren(), isClean()); + requestedPlaylist_ = null; + } + return requestedPlaylistBuilder_; + } + + private java.util.List songs_ = java.util.Collections + .emptyList(); + + private void ensureSongsIsMutable() { + if (!((bitField0_ & 0x00000002) == 0x00000002)) { + songs_ = new java.util.ArrayList( + songs_); + bitField0_ |= 0x00000002; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 songsBuilder_; + + /** + *
+             * The songs that are in the playlist
+             * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + public java.util.List getSongsList() { + if (songsBuilder_ == null) { + return java.util.Collections.unmodifiableList(songs_); + } else { + return songsBuilder_.getMessageList(); + } + } + + /** + *
+             * The songs that are in the playlist
+             * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + public int getSongsCount() { + if (songsBuilder_ == null) { + return songs_.size(); + } else { + return songsBuilder_.getCount(); + } + } + + /** + *
+             * The songs that are in the playlist
+             * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata getSongs(int index) { + if (songsBuilder_ == null) { + return songs_.get(index); + } else { + return songsBuilder_.getMessage(index); + } + } + + /** + *
+             * The songs that are in the playlist
+             * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + public Builder setSongs(int index, + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata value) { + if (songsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSongsIsMutable(); + songs_.set(index, value); + onChanged(); + } else { + songsBuilder_.setMessage(index, value); + } + return this; + } + + /** + *
+             * The songs that are in the playlist
+             * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + public Builder setSongs(int index, + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Builder builderForValue) { + if (songsBuilder_ == null) { + ensureSongsIsMutable(); + songs_.set(index, builderForValue.build()); + onChanged(); + } else { + songsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + *
+             * The songs that are in the playlist
+             * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + public Builder addSongs(de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata value) { + if (songsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSongsIsMutable(); + songs_.add(value); + onChanged(); + } else { + songsBuilder_.addMessage(value); + } + return this; + } + + /** + *
+             * The songs that are in the playlist
+             * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + public Builder addSongs(int index, + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata value) { + if (songsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSongsIsMutable(); + songs_.add(index, value); + onChanged(); + } else { + songsBuilder_.addMessage(index, value); + } + return this; + } + + /** + *
+             * The songs that are in the playlist
+             * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + public Builder addSongs( + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Builder builderForValue) { + if (songsBuilder_ == null) { + ensureSongsIsMutable(); + songs_.add(builderForValue.build()); + onChanged(); + } else { + songsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + *
+             * The songs that are in the playlist
+             * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + public Builder addSongs(int index, + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Builder builderForValue) { + if (songsBuilder_ == null) { + ensureSongsIsMutable(); + songs_.add(index, builderForValue.build()); + onChanged(); + } else { + songsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + *
+             * The songs that are in the playlist
+             * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + public Builder addAllSongs( + java.lang.Iterable values) { + if (songsBuilder_ == null) { + ensureSongsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, songs_); + onChanged(); + } else { + songsBuilder_.addAllMessages(values); + } + return this; + } + + /** + *
+             * The songs that are in the playlist
+             * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + public Builder clearSongs() { + if (songsBuilder_ == null) { + songs_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + } else { + songsBuilder_.clear(); + } + return this; + } + + /** + *
+             * The songs that are in the playlist
+             * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + public Builder removeSongs(int index) { + if (songsBuilder_ == null) { + ensureSongsIsMutable(); + songs_.remove(index); + onChanged(); + } else { + songsBuilder_.remove(index); + } + return this; + } + + /** + *
+             * The songs that are in the playlist
+             * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Builder getSongsBuilder( + int index) { + return getSongsFieldBuilder().getBuilder(index); + } + + /** + *
+             * The songs that are in the playlist
+             * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadataOrBuilder getSongsOrBuilder( + int index) { + if (songsBuilder_ == null) { + return songs_.get(index); + } else { + return songsBuilder_.getMessageOrBuilder(index); + } + } + + /** + *
+             * The songs that are in the playlist
+             * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + public java.util.List getSongsOrBuilderList() { + if (songsBuilder_ != null) { + return songsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(songs_); + } + } + + /** + *
+             * The songs that are in the playlist
+             * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Builder addSongsBuilder() { + return getSongsFieldBuilder().addBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.getDefaultInstance()); + } + + /** + *
+             * The songs that are in the playlist
+             * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Builder addSongsBuilder( + int index) { + return getSongsFieldBuilder().addBuilder(index, + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.getDefaultInstance()); + } + + /** + *
+             * The songs that are in the playlist
+             * 
+ * + * repeated .pb.remote.SongMetadata songs = 2; + */ + public java.util.List getSongsBuilderList() { + return getSongsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getSongsFieldBuilder() { + if (songsBuilder_ == null) { + songsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3( + songs_, ((bitField0_ & 0x00000002) == 0x00000002), getParentForChildren(), isClean()); + songs_ = null; + } + return songsBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.ResponsePlaylistSongs) + } + + // @@protoc_insertion_point(class_scope:pb.remote.ResponsePlaylistSongs) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ResponsePlaylistSongs parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ResponsePlaylistSongs(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ResponseEngineStateChangedOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.ResponseEngineStateChanged) + com.google.protobuf.MessageOrBuilder { + + /** + * optional .pb.remote.EngineState state = 1; + */ + boolean hasState(); + + /** + * optional .pb.remote.EngineState state = 1; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.EngineState getState(); + } + + /** + *
+     * The current state of the play engine
+     * 
+ * + * Protobuf type {@code pb.remote.ResponseEngineStateChanged} + */ + public static final class ResponseEngineStateChanged extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.ResponseEngineStateChanged) + ResponseEngineStateChangedOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ResponseEngineStateChanged.newBuilder() to construct. + private ResponseEngineStateChanged(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ResponseEngineStateChanged() { + state_ = 0; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private ResponseEngineStateChanged(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + int rawValue = input.readEnum(); + @SuppressWarnings("deprecation") + de.qspool.clementineremote.backend.pb.ClementineRemote.EngineState value = de.qspool.clementineremote.backend.pb.ClementineRemote.EngineState + .valueOf(rawValue); + if (value == null) { + unknownFields.mergeVarintField(1, rawValue); + } else { + bitField0_ |= 0x00000001; + state_ = rawValue; + } + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseEngineStateChanged_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseEngineStateChanged_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged.Builder.class); + } + + private int bitField0_; + public static final int STATE_FIELD_NUMBER = 1; + private int state_; + + /** + * optional .pb.remote.EngineState state = 1; + */ + public boolean hasState() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional .pb.remote.EngineState state = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.EngineState getState() { + @SuppressWarnings("deprecation") + de.qspool.clementineremote.backend.pb.ClementineRemote.EngineState result = de.qspool.clementineremote.backend.pb.ClementineRemote.EngineState + .valueOf(state_); + return result == null ? de.qspool.clementineremote.backend.pb.ClementineRemote.EngineState.Empty : result; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeEnum(1, state_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, state_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged other = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged) obj; + + boolean result = true; + result = result && (hasState() == other.hasState()); + if (hasState()) { + result = result && state_ == other.state_; + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasState()) { + hash = (37 * hash) + STATE_FIELD_NUMBER; + hash = (53 * hash) + state_; + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+         * The current state of the play engine
+         * 
+ * + * Protobuf type {@code pb.remote.ResponseEngineStateChanged} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.ResponseEngineStateChanged) + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChangedOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseEngineStateChanged_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseEngineStateChanged_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged.Builder.class); + } + + // Construct using + // de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + state_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseEngineStateChanged_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged + .getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged result = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.state_ = state_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged) { + return mergeFrom( + (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged + .getDefaultInstance()) + return this; + if (other.hasState()) { + setState(other.getState()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private int state_ = 0; + + /** + * optional .pb.remote.EngineState state = 1; + */ + public boolean hasState() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional .pb.remote.EngineState state = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.EngineState getState() { + @SuppressWarnings("deprecation") + de.qspool.clementineremote.backend.pb.ClementineRemote.EngineState result = de.qspool.clementineremote.backend.pb.ClementineRemote.EngineState + .valueOf(state_); + return result == null ? de.qspool.clementineremote.backend.pb.ClementineRemote.EngineState.Empty + : result; + } + + /** + * optional .pb.remote.EngineState state = 1; + */ + public Builder setState(de.qspool.clementineremote.backend.pb.ClementineRemote.EngineState value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + state_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * optional .pb.remote.EngineState state = 1; + */ + public Builder clearState() { + bitField0_ = (bitField0_ & ~0x00000001); + state_ = 0; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.ResponseEngineStateChanged) + } + + // @@protoc_insertion_point(class_scope:pb.remote.ResponseEngineStateChanged) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ResponseEngineStateChanged parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ResponseEngineStateChanged(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ResponseUpdateTrackPositionOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.ResponseUpdateTrackPosition) + com.google.protobuf.MessageOrBuilder { + + /** + * optional int32 position = 1; + */ + boolean hasPosition(); + + /** + * optional int32 position = 1; + */ + int getPosition(); + } + + /** + *
+     * Sends the current position of the track
+     * 
+ * + * Protobuf type {@code pb.remote.ResponseUpdateTrackPosition} + */ + public static final class ResponseUpdateTrackPosition extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.ResponseUpdateTrackPosition) + ResponseUpdateTrackPositionOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ResponseUpdateTrackPosition.newBuilder() to construct. + private ResponseUpdateTrackPosition(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ResponseUpdateTrackPosition() { + position_ = 0; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private ResponseUpdateTrackPosition(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + bitField0_ |= 0x00000001; + position_ = input.readInt32(); + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseUpdateTrackPosition_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseUpdateTrackPosition_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition.Builder.class); + } + + private int bitField0_; + public static final int POSITION_FIELD_NUMBER = 1; + private int position_; + + /** + * optional int32 position = 1; + */ + public boolean hasPosition() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 position = 1; + */ + public int getPosition() { + return position_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeInt32(1, position_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, position_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition other = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition) obj; + + boolean result = true; + result = result && (hasPosition() == other.hasPosition()); + if (hasPosition()) { + result = result && (getPosition() == other.getPosition()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasPosition()) { + hash = (37 * hash) + POSITION_FIELD_NUMBER; + hash = (53 * hash) + getPosition(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+         * Sends the current position of the track
+         * 
+ * + * Protobuf type {@code pb.remote.ResponseUpdateTrackPosition} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.ResponseUpdateTrackPosition) + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPositionOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseUpdateTrackPosition_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseUpdateTrackPosition_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition.Builder.class); + } + + // Construct using + // de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + position_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseUpdateTrackPosition_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition + .getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition result = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.position_ = position_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition) { + return mergeFrom( + (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition + .getDefaultInstance()) + return this; + if (other.hasPosition()) { + setPosition(other.getPosition()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private int position_; + + /** + * optional int32 position = 1; + */ + public boolean hasPosition() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 position = 1; + */ + public int getPosition() { + return position_; + } + + /** + * optional int32 position = 1; + */ + public Builder setPosition(int value) { + bitField0_ |= 0x00000001; + position_ = value; + onChanged(); + return this; + } + + /** + * optional int32 position = 1; + */ + public Builder clearPosition() { + bitField0_ = (bitField0_ & ~0x00000001); + position_ = 0; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.ResponseUpdateTrackPosition) + } + + // @@protoc_insertion_point(class_scope:pb.remote.ResponseUpdateTrackPosition) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ResponseUpdateTrackPosition parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ResponseUpdateTrackPosition(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface RequestConnectOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.RequestConnect) + com.google.protobuf.MessageOrBuilder { + + /** + * optional int32 auth_code = 1; + */ + boolean hasAuthCode(); + + /** + * optional int32 auth_code = 1; + */ + int getAuthCode(); + + /** + * optional bool send_playlist_songs = 2; + */ + boolean hasSendPlaylistSongs(); + + /** + * optional bool send_playlist_songs = 2; + */ + boolean getSendPlaylistSongs(); + + /** + * optional bool downloader = 3; + */ + boolean hasDownloader(); + + /** + * optional bool downloader = 3; + */ + boolean getDownloader(); + } + + /** + *
+     * The connect message containing the authentication code
+     * 
+ * + * Protobuf type {@code pb.remote.RequestConnect} + */ + public static final class RequestConnect extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.RequestConnect) + RequestConnectOrBuilder { + private static final long serialVersionUID = 0L; + + // Use RequestConnect.newBuilder() to construct. + private RequestConnect(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private RequestConnect() { + authCode_ = 0; + sendPlaylistSongs_ = false; + downloader_ = false; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private RequestConnect(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + bitField0_ |= 0x00000001; + authCode_ = input.readInt32(); + break; + } + case 16: { + bitField0_ |= 0x00000002; + sendPlaylistSongs_ = input.readBool(); + break; + } + case 24: { + bitField0_ |= 0x00000004; + downloader_ = input.readBool(); + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestConnect_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestConnect_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect.Builder.class); + } + + private int bitField0_; + public static final int AUTH_CODE_FIELD_NUMBER = 1; + private int authCode_; + + /** + * optional int32 auth_code = 1; + */ + public boolean hasAuthCode() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 auth_code = 1; + */ + public int getAuthCode() { + return authCode_; + } + + public static final int SEND_PLAYLIST_SONGS_FIELD_NUMBER = 2; + private boolean sendPlaylistSongs_; + + /** + * optional bool send_playlist_songs = 2; + */ + public boolean hasSendPlaylistSongs() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + * optional bool send_playlist_songs = 2; + */ + public boolean getSendPlaylistSongs() { + return sendPlaylistSongs_; + } + + public static final int DOWNLOADER_FIELD_NUMBER = 3; + private boolean downloader_; + + /** + * optional bool downloader = 3; + */ + public boolean hasDownloader() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + + /** + * optional bool downloader = 3; + */ + public boolean getDownloader() { + return downloader_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeInt32(1, authCode_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeBool(2, sendPlaylistSongs_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeBool(3, downloader_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, authCode_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(2, sendPlaylistSongs_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, downloader_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect other = (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect) obj; + + boolean result = true; + result = result && (hasAuthCode() == other.hasAuthCode()); + if (hasAuthCode()) { + result = result && (getAuthCode() == other.getAuthCode()); + } + result = result && (hasSendPlaylistSongs() == other.hasSendPlaylistSongs()); + if (hasSendPlaylistSongs()) { + result = result && (getSendPlaylistSongs() == other.getSendPlaylistSongs()); + } + result = result && (hasDownloader() == other.hasDownloader()); + if (hasDownloader()) { + result = result && (getDownloader() == other.getDownloader()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasAuthCode()) { + hash = (37 * hash) + AUTH_CODE_FIELD_NUMBER; + hash = (53 * hash) + getAuthCode(); + } + if (hasSendPlaylistSongs()) { + hash = (37 * hash) + SEND_PLAYLIST_SONGS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getSendPlaylistSongs()); + } + if (hasDownloader()) { + hash = (37 * hash) + DOWNLOADER_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getDownloader()); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+         * The connect message containing the authentication code
+         * 
+ * + * Protobuf type {@code pb.remote.RequestConnect} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.RequestConnect) + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnectOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestConnect_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestConnect_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect.Builder.class); + } + + // Construct using de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + authCode_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + sendPlaylistSongs_ = false; + bitField0_ = (bitField0_ & ~0x00000002); + downloader_ = false; + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestConnect_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect.getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect result = new de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.authCode_ = authCode_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.sendPlaylistSongs_ = sendPlaylistSongs_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + result.downloader_ = downloader_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect) { + return mergeFrom((de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect.getDefaultInstance()) + return this; + if (other.hasAuthCode()) { + setAuthCode(other.getAuthCode()); + } + if (other.hasSendPlaylistSongs()) { + setSendPlaylistSongs(other.getSendPlaylistSongs()); + } + if (other.hasDownloader()) { + setDownloader(other.getDownloader()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private int authCode_; + + /** + * optional int32 auth_code = 1; + */ + public boolean hasAuthCode() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 auth_code = 1; + */ + public int getAuthCode() { + return authCode_; + } + + /** + * optional int32 auth_code = 1; + */ + public Builder setAuthCode(int value) { + bitField0_ |= 0x00000001; + authCode_ = value; + onChanged(); + return this; + } + + /** + * optional int32 auth_code = 1; + */ + public Builder clearAuthCode() { + bitField0_ = (bitField0_ & ~0x00000001); + authCode_ = 0; + onChanged(); + return this; + } + + private boolean sendPlaylistSongs_; + + /** + * optional bool send_playlist_songs = 2; + */ + public boolean hasSendPlaylistSongs() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + * optional bool send_playlist_songs = 2; + */ + public boolean getSendPlaylistSongs() { + return sendPlaylistSongs_; + } + + /** + * optional bool send_playlist_songs = 2; + */ + public Builder setSendPlaylistSongs(boolean value) { + bitField0_ |= 0x00000002; + sendPlaylistSongs_ = value; + onChanged(); + return this; + } + + /** + * optional bool send_playlist_songs = 2; + */ + public Builder clearSendPlaylistSongs() { + bitField0_ = (bitField0_ & ~0x00000002); + sendPlaylistSongs_ = false; + onChanged(); + return this; + } + + private boolean downloader_; + + /** + * optional bool downloader = 3; + */ + public boolean hasDownloader() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + + /** + * optional bool downloader = 3; + */ + public boolean getDownloader() { + return downloader_; + } + + /** + * optional bool downloader = 3; + */ + public Builder setDownloader(boolean value) { + bitField0_ |= 0x00000004; + downloader_ = value; + onChanged(); + return this; + } + + /** + * optional bool downloader = 3; + */ + public Builder clearDownloader() { + bitField0_ = (bitField0_ & ~0x00000004); + downloader_ = false; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.RequestConnect) + } + + // @@protoc_insertion_point(class_scope:pb.remote.RequestConnect) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public RequestConnect parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new RequestConnect(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ResponseDisconnectOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.ResponseDisconnect) + com.google.protobuf.MessageOrBuilder { + + /** + * optional .pb.remote.ReasonDisconnect reason_disconnect = 1; + */ + boolean hasReasonDisconnect(); + + /** + * optional .pb.remote.ReasonDisconnect reason_disconnect = 1; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ReasonDisconnect getReasonDisconnect(); + } + + /** + * Protobuf type {@code pb.remote.ResponseDisconnect} + */ + public static final class ResponseDisconnect extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.ResponseDisconnect) + ResponseDisconnectOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ResponseDisconnect.newBuilder() to construct. + private ResponseDisconnect(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ResponseDisconnect() { + reasonDisconnect_ = 1; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private ResponseDisconnect(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + int rawValue = input.readEnum(); + @SuppressWarnings("deprecation") + de.qspool.clementineremote.backend.pb.ClementineRemote.ReasonDisconnect value = de.qspool.clementineremote.backend.pb.ClementineRemote.ReasonDisconnect + .valueOf(rawValue); + if (value == null) { + unknownFields.mergeVarintField(1, rawValue); + } else { + bitField0_ |= 0x00000001; + reasonDisconnect_ = rawValue; + } + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseDisconnect_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseDisconnect_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect.Builder.class); + } + + private int bitField0_; + public static final int REASON_DISCONNECT_FIELD_NUMBER = 1; + private int reasonDisconnect_; + + /** + * optional .pb.remote.ReasonDisconnect reason_disconnect = 1; + */ + public boolean hasReasonDisconnect() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional .pb.remote.ReasonDisconnect reason_disconnect = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ReasonDisconnect getReasonDisconnect() { + @SuppressWarnings("deprecation") + de.qspool.clementineremote.backend.pb.ClementineRemote.ReasonDisconnect result = de.qspool.clementineremote.backend.pb.ClementineRemote.ReasonDisconnect + .valueOf(reasonDisconnect_); + return result == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ReasonDisconnect.Server_Shutdown + : result; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeEnum(1, reasonDisconnect_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, reasonDisconnect_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect other = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect) obj; + + boolean result = true; + result = result && (hasReasonDisconnect() == other.hasReasonDisconnect()); + if (hasReasonDisconnect()) { + result = result && reasonDisconnect_ == other.reasonDisconnect_; + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasReasonDisconnect()) { + hash = (37 * hash) + REASON_DISCONNECT_FIELD_NUMBER; + hash = (53 * hash) + reasonDisconnect_; + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code pb.remote.ResponseDisconnect} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.ResponseDisconnect) + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnectOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseDisconnect_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseDisconnect_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect.Builder.class); + } + + // Construct using de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + reasonDisconnect_ = 1; + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseDisconnect_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect.getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect result = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.reasonDisconnect_ = reasonDisconnect_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect) { + return mergeFrom((de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect + .getDefaultInstance()) + return this; + if (other.hasReasonDisconnect()) { + setReasonDisconnect(other.getReasonDisconnect()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private int reasonDisconnect_ = 1; + + /** + * optional .pb.remote.ReasonDisconnect reason_disconnect = 1; + */ + public boolean hasReasonDisconnect() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional .pb.remote.ReasonDisconnect reason_disconnect = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ReasonDisconnect getReasonDisconnect() { + @SuppressWarnings("deprecation") + de.qspool.clementineremote.backend.pb.ClementineRemote.ReasonDisconnect result = de.qspool.clementineremote.backend.pb.ClementineRemote.ReasonDisconnect + .valueOf(reasonDisconnect_); + return result == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ReasonDisconnect.Server_Shutdown + : result; + } + + /** + * optional .pb.remote.ReasonDisconnect reason_disconnect = 1; + */ + public Builder setReasonDisconnect( + de.qspool.clementineremote.backend.pb.ClementineRemote.ReasonDisconnect value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + reasonDisconnect_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * optional .pb.remote.ReasonDisconnect reason_disconnect = 1; + */ + public Builder clearReasonDisconnect() { + bitField0_ = (bitField0_ & ~0x00000001); + reasonDisconnect_ = 1; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.ResponseDisconnect) + } + + // @@protoc_insertion_point(class_scope:pb.remote.ResponseDisconnect) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ResponseDisconnect parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ResponseDisconnect(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ResponseActiveChangedOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.ResponseActiveChanged) + com.google.protobuf.MessageOrBuilder { + + /** + * optional int32 id = 1; + */ + boolean hasId(); + + /** + * optional int32 id = 1; + */ + int getId(); + } + + /** + * Protobuf type {@code pb.remote.ResponseActiveChanged} + */ + public static final class ResponseActiveChanged extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.ResponseActiveChanged) + ResponseActiveChangedOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ResponseActiveChanged.newBuilder() to construct. + private ResponseActiveChanged(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ResponseActiveChanged() { + id_ = 0; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private ResponseActiveChanged(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + bitField0_ |= 0x00000001; + id_ = input.readInt32(); + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseActiveChanged_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseActiveChanged_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged.Builder.class); + } + + private int bitField0_; + public static final int ID_FIELD_NUMBER = 1; + private int id_; + + /** + * optional int32 id = 1; + */ + public boolean hasId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 id = 1; + */ + public int getId() { + return id_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeInt32(1, id_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, id_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged other = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged) obj; + + boolean result = true; + result = result && (hasId() == other.hasId()); + if (hasId()) { + result = result && (getId() == other.getId()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasId()) { + hash = (37 * hash) + ID_FIELD_NUMBER; + hash = (53 * hash) + getId(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code pb.remote.ResponseActiveChanged} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.ResponseActiveChanged) + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChangedOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseActiveChanged_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseActiveChanged_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged.Builder.class); + } + + // Construct using de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + id_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseActiveChanged_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged + .getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged result = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.id_ = id_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged) { + return mergeFrom( + (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged + .getDefaultInstance()) + return this; + if (other.hasId()) { + setId(other.getId()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private int id_; + + /** + * optional int32 id = 1; + */ + public boolean hasId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 id = 1; + */ + public int getId() { + return id_; + } + + /** + * optional int32 id = 1; + */ + public Builder setId(int value) { + bitField0_ |= 0x00000001; + id_ = value; + onChanged(); + return this; + } + + /** + * optional int32 id = 1; + */ + public Builder clearId() { + bitField0_ = (bitField0_ & ~0x00000001); + id_ = 0; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.ResponseActiveChanged) + } + + // @@protoc_insertion_point(class_scope:pb.remote.ResponseActiveChanged) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ResponseActiveChanged parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ResponseActiveChanged(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface RequestSetTrackPositionOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.RequestSetTrackPosition) + com.google.protobuf.MessageOrBuilder { + + /** + * optional int32 position = 1; + */ + boolean hasPosition(); + + /** + * optional int32 position = 1; + */ + int getPosition(); + } + + /** + *
+     * A client requests a new track position
+     * position in seconds!
+     * 
+ * + * Protobuf type {@code pb.remote.RequestSetTrackPosition} + */ + public static final class RequestSetTrackPosition extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.RequestSetTrackPosition) + RequestSetTrackPositionOrBuilder { + private static final long serialVersionUID = 0L; + + // Use RequestSetTrackPosition.newBuilder() to construct. + private RequestSetTrackPosition(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private RequestSetTrackPosition() { + position_ = 0; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private RequestSetTrackPosition(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + bitField0_ |= 0x00000001; + position_ = input.readInt32(); + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestSetTrackPosition_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestSetTrackPosition_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition.Builder.class); + } + + private int bitField0_; + public static final int POSITION_FIELD_NUMBER = 1; + private int position_; + + /** + * optional int32 position = 1; + */ + public boolean hasPosition() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 position = 1; + */ + public int getPosition() { + return position_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeInt32(1, position_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, position_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition other = (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition) obj; + + boolean result = true; + result = result && (hasPosition() == other.hasPosition()); + if (hasPosition()) { + result = result && (getPosition() == other.getPosition()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasPosition()) { + hash = (37 * hash) + POSITION_FIELD_NUMBER; + hash = (53 * hash) + getPosition(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+         * A client requests a new track position
+         * position in seconds!
+         * 
+ * + * Protobuf type {@code pb.remote.RequestSetTrackPosition} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.RequestSetTrackPosition) + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPositionOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestSetTrackPosition_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestSetTrackPosition_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition.Builder.class); + } + + // Construct using + // de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + position_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestSetTrackPosition_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition + .getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition result = new de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.position_ = position_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition) { + return mergeFrom( + (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition + .getDefaultInstance()) + return this; + if (other.hasPosition()) { + setPosition(other.getPosition()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private int position_; + + /** + * optional int32 position = 1; + */ + public boolean hasPosition() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 position = 1; + */ + public int getPosition() { + return position_; + } + + /** + * optional int32 position = 1; + */ + public Builder setPosition(int value) { + bitField0_ |= 0x00000001; + position_ = value; + onChanged(); + return this; + } + + /** + * optional int32 position = 1; + */ + public Builder clearPosition() { + bitField0_ = (bitField0_ & ~0x00000001); + position_ = 0; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.RequestSetTrackPosition) + } + + // @@protoc_insertion_point(class_scope:pb.remote.RequestSetTrackPosition) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public RequestSetTrackPosition parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new RequestSetTrackPosition(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface RequestInsertUrlsOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.RequestInsertUrls) + com.google.protobuf.MessageOrBuilder { + + /** + *
+         * In which playlist should the urls be inserted?
+         * 
+ * + * optional int32 playlist_id = 1; + */ + boolean hasPlaylistId(); + + /** + *
+         * In which playlist should the urls be inserted?
+         * 
+ * + * optional int32 playlist_id = 1; + */ + int getPlaylistId(); + + /** + * repeated string urls = 2; + */ + java.util.List getUrlsList(); + + /** + * repeated string urls = 2; + */ + int getUrlsCount(); + + /** + * repeated string urls = 2; + */ + java.lang.String getUrls(int index); + + /** + * repeated string urls = 2; + */ + com.google.protobuf.ByteString getUrlsBytes(int index); + + /** + * optional int32 position = 3 [default = -1]; + */ + boolean hasPosition(); + + /** + * optional int32 position = 3 [default = -1]; + */ + int getPosition(); + + /** + * optional bool play_now = 4 [default = false]; + */ + boolean hasPlayNow(); + + /** + * optional bool play_now = 4 [default = false]; + */ + boolean getPlayNow(); + + /** + * optional bool enqueue = 5 [default = false]; + */ + boolean hasEnqueue(); + + /** + * optional bool enqueue = 5 [default = false]; + */ + boolean getEnqueue(); + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + java.util.List getSongsList(); + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata getSongs(int index); + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + int getSongsCount(); + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + java.util.List getSongsOrBuilderList(); + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadataOrBuilder getSongsOrBuilder(int index); + } + + /** + * Protobuf type {@code pb.remote.RequestInsertUrls} + */ + public static final class RequestInsertUrls extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.RequestInsertUrls) + RequestInsertUrlsOrBuilder { + private static final long serialVersionUID = 0L; + + // Use RequestInsertUrls.newBuilder() to construct. + private RequestInsertUrls(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private RequestInsertUrls() { + playlistId_ = 0; + urls_ = com.google.protobuf.LazyStringArrayList.EMPTY; + position_ = -1; + playNow_ = false; + enqueue_ = false; + songs_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private RequestInsertUrls(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + bitField0_ |= 0x00000001; + playlistId_ = input.readInt32(); + break; + } + case 18: { + com.google.protobuf.ByteString bs = input.readBytes(); + if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) { + urls_ = new com.google.protobuf.LazyStringArrayList(); + mutable_bitField0_ |= 0x00000002; + } + urls_.add(bs); + break; + } + case 24: { + bitField0_ |= 0x00000002; + position_ = input.readInt32(); + break; + } + case 32: { + bitField0_ |= 0x00000004; + playNow_ = input.readBool(); + break; + } + case 40: { + bitField0_ |= 0x00000008; + enqueue_ = input.readBool(); + break; + } + case 50: { + if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) { + songs_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000020; + } + songs_.add(input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.PARSER, + extensionRegistry)); + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) { + urls_ = urls_.getUnmodifiableView(); + } + if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) { + songs_ = java.util.Collections.unmodifiableList(songs_); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestInsertUrls_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestInsertUrls_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls.Builder.class); + } + + private int bitField0_; + public static final int PLAYLIST_ID_FIELD_NUMBER = 1; + private int playlistId_; + + /** + *
+         * In which playlist should the urls be inserted?
+         * 
+ * + * optional int32 playlist_id = 1; + */ + public boolean hasPlaylistId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + *
+         * In which playlist should the urls be inserted?
+         * 
+ * + * optional int32 playlist_id = 1; + */ + public int getPlaylistId() { + return playlistId_; + } + + public static final int URLS_FIELD_NUMBER = 2; + private com.google.protobuf.LazyStringList urls_; + + /** + * repeated string urls = 2; + */ + public com.google.protobuf.ProtocolStringList getUrlsList() { + return urls_; + } + + /** + * repeated string urls = 2; + */ + public int getUrlsCount() { + return urls_.size(); + } + + /** + * repeated string urls = 2; + */ + public java.lang.String getUrls(int index) { + return urls_.get(index); + } + + /** + * repeated string urls = 2; + */ + public com.google.protobuf.ByteString getUrlsBytes(int index) { + return urls_.getByteString(index); + } + + public static final int POSITION_FIELD_NUMBER = 3; + private int position_; + + /** + * optional int32 position = 3 [default = -1]; + */ + public boolean hasPosition() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + * optional int32 position = 3 [default = -1]; + */ + public int getPosition() { + return position_; + } + + public static final int PLAY_NOW_FIELD_NUMBER = 4; + private boolean playNow_; + + /** + * optional bool play_now = 4 [default = false]; + */ + public boolean hasPlayNow() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + + /** + * optional bool play_now = 4 [default = false]; + */ + public boolean getPlayNow() { + return playNow_; + } + + public static final int ENQUEUE_FIELD_NUMBER = 5; + private boolean enqueue_; + + /** + * optional bool enqueue = 5 [default = false]; + */ + public boolean hasEnqueue() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + + /** + * optional bool enqueue = 5 [default = false]; + */ + public boolean getEnqueue() { + return enqueue_; + } + + public static final int SONGS_FIELD_NUMBER = 6; + private java.util.List songs_; + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + public java.util.List getSongsList() { + return songs_; + } + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + public java.util.List getSongsOrBuilderList() { + return songs_; + } + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + public int getSongsCount() { + return songs_.size(); + } + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata getSongs(int index) { + return songs_.get(index); + } + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadataOrBuilder getSongsOrBuilder( + int index) { + return songs_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeInt32(1, playlistId_); + } + for (int i = 0; i < urls_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, urls_.getRaw(i)); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeInt32(3, position_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeBool(4, playNow_); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + output.writeBool(5, enqueue_); + } + for (int i = 0; i < songs_.size(); i++) { + output.writeMessage(6, songs_.get(i)); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, playlistId_); + } + { + int dataSize = 0; + for (int i = 0; i < urls_.size(); i++) { + dataSize += computeStringSizeNoTag(urls_.getRaw(i)); + } + size += dataSize; + size += 1 * getUrlsList().size(); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(3, position_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, playNow_); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(5, enqueue_); + } + for (int i = 0; i < songs_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, songs_.get(i)); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls other = (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls) obj; + + boolean result = true; + result = result && (hasPlaylistId() == other.hasPlaylistId()); + if (hasPlaylistId()) { + result = result && (getPlaylistId() == other.getPlaylistId()); + } + result = result && getUrlsList().equals(other.getUrlsList()); + result = result && (hasPosition() == other.hasPosition()); + if (hasPosition()) { + result = result && (getPosition() == other.getPosition()); + } + result = result && (hasPlayNow() == other.hasPlayNow()); + if (hasPlayNow()) { + result = result && (getPlayNow() == other.getPlayNow()); + } + result = result && (hasEnqueue() == other.hasEnqueue()); + if (hasEnqueue()) { + result = result && (getEnqueue() == other.getEnqueue()); + } + result = result && getSongsList().equals(other.getSongsList()); + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasPlaylistId()) { + hash = (37 * hash) + PLAYLIST_ID_FIELD_NUMBER; + hash = (53 * hash) + getPlaylistId(); + } + if (getUrlsCount() > 0) { + hash = (37 * hash) + URLS_FIELD_NUMBER; + hash = (53 * hash) + getUrlsList().hashCode(); + } + if (hasPosition()) { + hash = (37 * hash) + POSITION_FIELD_NUMBER; + hash = (53 * hash) + getPosition(); + } + if (hasPlayNow()) { + hash = (37 * hash) + PLAY_NOW_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getPlayNow()); + } + if (hasEnqueue()) { + hash = (37 * hash) + ENQUEUE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getEnqueue()); + } + if (getSongsCount() > 0) { + hash = (37 * hash) + SONGS_FIELD_NUMBER; + hash = (53 * hash) + getSongsList().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code pb.remote.RequestInsertUrls} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.RequestInsertUrls) + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrlsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestInsertUrls_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestInsertUrls_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls.Builder.class); + } + + // Construct using de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getSongsFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + playlistId_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + urls_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000002); + position_ = -1; + bitField0_ = (bitField0_ & ~0x00000004); + playNow_ = false; + bitField0_ = (bitField0_ & ~0x00000008); + enqueue_ = false; + bitField0_ = (bitField0_ & ~0x00000010); + if (songsBuilder_ == null) { + songs_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000020); + } else { + songsBuilder_.clear(); + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestInsertUrls_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls.getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls result = new de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.playlistId_ = playlistId_; + if (((bitField0_ & 0x00000002) == 0x00000002)) { + urls_ = urls_.getUnmodifiableView(); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.urls_ = urls_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000002; + } + result.position_ = position_; + if (((from_bitField0_ & 0x00000008) == 0x00000008)) { + to_bitField0_ |= 0x00000004; + } + result.playNow_ = playNow_; + if (((from_bitField0_ & 0x00000010) == 0x00000010)) { + to_bitField0_ |= 0x00000008; + } + result.enqueue_ = enqueue_; + if (songsBuilder_ == null) { + if (((bitField0_ & 0x00000020) == 0x00000020)) { + songs_ = java.util.Collections.unmodifiableList(songs_); + bitField0_ = (bitField0_ & ~0x00000020); + } + result.songs_ = songs_; + } else { + result.songs_ = songsBuilder_.build(); + } + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls) { + return mergeFrom((de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls + .getDefaultInstance()) + return this; + if (other.hasPlaylistId()) { + setPlaylistId(other.getPlaylistId()); + } + if (!other.urls_.isEmpty()) { + if (urls_.isEmpty()) { + urls_ = other.urls_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureUrlsIsMutable(); + urls_.addAll(other.urls_); + } + onChanged(); + } + if (other.hasPosition()) { + setPosition(other.getPosition()); + } + if (other.hasPlayNow()) { + setPlayNow(other.getPlayNow()); + } + if (other.hasEnqueue()) { + setEnqueue(other.getEnqueue()); + } + if (songsBuilder_ == null) { + if (!other.songs_.isEmpty()) { + if (songs_.isEmpty()) { + songs_ = other.songs_; + bitField0_ = (bitField0_ & ~0x00000020); + } else { + ensureSongsIsMutable(); + songs_.addAll(other.songs_); + } + onChanged(); + } + } else { + if (!other.songs_.isEmpty()) { + if (songsBuilder_.isEmpty()) { + songsBuilder_.dispose(); + songsBuilder_ = null; + songs_ = other.songs_; + bitField0_ = (bitField0_ & ~0x00000020); + songsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders + ? getSongsFieldBuilder() + : null; + } else { + songsBuilder_.addAllMessages(other.songs_); + } + } + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private int playlistId_; + + /** + *
+             * In which playlist should the urls be inserted?
+             * 
+ * + * optional int32 playlist_id = 1; + */ + public boolean hasPlaylistId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + *
+             * In which playlist should the urls be inserted?
+             * 
+ * + * optional int32 playlist_id = 1; + */ + public int getPlaylistId() { + return playlistId_; + } + + /** + *
+             * In which playlist should the urls be inserted?
+             * 
+ * + * optional int32 playlist_id = 1; + */ + public Builder setPlaylistId(int value) { + bitField0_ |= 0x00000001; + playlistId_ = value; + onChanged(); + return this; + } + + /** + *
+             * In which playlist should the urls be inserted?
+             * 
+ * + * optional int32 playlist_id = 1; + */ + public Builder clearPlaylistId() { + bitField0_ = (bitField0_ & ~0x00000001); + playlistId_ = 0; + onChanged(); + return this; + } + + private com.google.protobuf.LazyStringList urls_ = com.google.protobuf.LazyStringArrayList.EMPTY; + + private void ensureUrlsIsMutable() { + if (!((bitField0_ & 0x00000002) == 0x00000002)) { + urls_ = new com.google.protobuf.LazyStringArrayList(urls_); + bitField0_ |= 0x00000002; + } + } + + /** + * repeated string urls = 2; + */ + public com.google.protobuf.ProtocolStringList getUrlsList() { + return urls_.getUnmodifiableView(); + } + + /** + * repeated string urls = 2; + */ + public int getUrlsCount() { + return urls_.size(); + } + + /** + * repeated string urls = 2; + */ + public java.lang.String getUrls(int index) { + return urls_.get(index); + } + + /** + * repeated string urls = 2; + */ + public com.google.protobuf.ByteString getUrlsBytes(int index) { + return urls_.getByteString(index); + } + + /** + * repeated string urls = 2; + */ + public Builder setUrls(int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureUrlsIsMutable(); + urls_.set(index, value); + onChanged(); + return this; + } + + /** + * repeated string urls = 2; + */ + public Builder addUrls(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureUrlsIsMutable(); + urls_.add(value); + onChanged(); + return this; + } + + /** + * repeated string urls = 2; + */ + public Builder addAllUrls(java.lang.Iterable values) { + ensureUrlsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, urls_); + onChanged(); + return this; + } + + /** + * repeated string urls = 2; + */ + public Builder clearUrls() { + urls_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * repeated string urls = 2; + */ + public Builder addUrlsBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + ensureUrlsIsMutable(); + urls_.add(value); + onChanged(); + return this; + } + + private int position_ = -1; + + /** + * optional int32 position = 3 [default = -1]; + */ + public boolean hasPosition() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + + /** + * optional int32 position = 3 [default = -1]; + */ + public int getPosition() { + return position_; + } + + /** + * optional int32 position = 3 [default = -1]; + */ + public Builder setPosition(int value) { + bitField0_ |= 0x00000004; + position_ = value; + onChanged(); + return this; + } + + /** + * optional int32 position = 3 [default = -1]; + */ + public Builder clearPosition() { + bitField0_ = (bitField0_ & ~0x00000004); + position_ = -1; + onChanged(); + return this; + } + + private boolean playNow_; + + /** + * optional bool play_now = 4 [default = false]; + */ + public boolean hasPlayNow() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + + /** + * optional bool play_now = 4 [default = false]; + */ + public boolean getPlayNow() { + return playNow_; + } + + /** + * optional bool play_now = 4 [default = false]; + */ + public Builder setPlayNow(boolean value) { + bitField0_ |= 0x00000008; + playNow_ = value; + onChanged(); + return this; + } + + /** + * optional bool play_now = 4 [default = false]; + */ + public Builder clearPlayNow() { + bitField0_ = (bitField0_ & ~0x00000008); + playNow_ = false; + onChanged(); + return this; + } + + private boolean enqueue_; + + /** + * optional bool enqueue = 5 [default = false]; + */ + public boolean hasEnqueue() { + return ((bitField0_ & 0x00000010) == 0x00000010); + } + + /** + * optional bool enqueue = 5 [default = false]; + */ + public boolean getEnqueue() { + return enqueue_; + } + + /** + * optional bool enqueue = 5 [default = false]; + */ + public Builder setEnqueue(boolean value) { + bitField0_ |= 0x00000010; + enqueue_ = value; + onChanged(); + return this; + } + + /** + * optional bool enqueue = 5 [default = false]; + */ + public Builder clearEnqueue() { + bitField0_ = (bitField0_ & ~0x00000010); + enqueue_ = false; + onChanged(); + return this; + } + + private java.util.List songs_ = java.util.Collections + .emptyList(); + + private void ensureSongsIsMutable() { + if (!((bitField0_ & 0x00000020) == 0x00000020)) { + songs_ = new java.util.ArrayList( + songs_); + bitField0_ |= 0x00000020; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 songsBuilder_; + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + public java.util.List getSongsList() { + if (songsBuilder_ == null) { + return java.util.Collections.unmodifiableList(songs_); + } else { + return songsBuilder_.getMessageList(); + } + } + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + public int getSongsCount() { + if (songsBuilder_ == null) { + return songs_.size(); + } else { + return songsBuilder_.getCount(); + } + } + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata getSongs(int index) { + if (songsBuilder_ == null) { + return songs_.get(index); + } else { + return songsBuilder_.getMessage(index); + } + } + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + public Builder setSongs(int index, + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata value) { + if (songsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSongsIsMutable(); + songs_.set(index, value); + onChanged(); + } else { + songsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + public Builder setSongs(int index, + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Builder builderForValue) { + if (songsBuilder_ == null) { + ensureSongsIsMutable(); + songs_.set(index, builderForValue.build()); + onChanged(); + } else { + songsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + public Builder addSongs(de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata value) { + if (songsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSongsIsMutable(); + songs_.add(value); + onChanged(); + } else { + songsBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + public Builder addSongs(int index, + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata value) { + if (songsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSongsIsMutable(); + songs_.add(index, value); + onChanged(); + } else { + songsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + public Builder addSongs( + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Builder builderForValue) { + if (songsBuilder_ == null) { + ensureSongsIsMutable(); + songs_.add(builderForValue.build()); + onChanged(); + } else { + songsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + public Builder addSongs(int index, + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Builder builderForValue) { + if (songsBuilder_ == null) { + ensureSongsIsMutable(); + songs_.add(index, builderForValue.build()); + onChanged(); + } else { + songsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + public Builder addAllSongs( + java.lang.Iterable values) { + if (songsBuilder_ == null) { + ensureSongsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, songs_); + onChanged(); + } else { + songsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + public Builder clearSongs() { + if (songsBuilder_ == null) { + songs_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + } else { + songsBuilder_.clear(); + } + return this; + } + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + public Builder removeSongs(int index) { + if (songsBuilder_ == null) { + ensureSongsIsMutable(); + songs_.remove(index); + onChanged(); + } else { + songsBuilder_.remove(index); + } + return this; + } + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Builder getSongsBuilder( + int index) { + return getSongsFieldBuilder().getBuilder(index); + } + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadataOrBuilder getSongsOrBuilder( + int index) { + if (songsBuilder_ == null) { + return songs_.get(index); + } else { + return songsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + public java.util.List getSongsOrBuilderList() { + if (songsBuilder_ != null) { + return songsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(songs_); + } + } + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Builder addSongsBuilder() { + return getSongsFieldBuilder().addBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.getDefaultInstance()); + } + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Builder addSongsBuilder( + int index) { + return getSongsFieldBuilder().addBuilder(index, + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.getDefaultInstance()); + } + + /** + * repeated .pb.remote.SongMetadata songs = 6; + */ + public java.util.List getSongsBuilderList() { + return getSongsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getSongsFieldBuilder() { + if (songsBuilder_ == null) { + songsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3( + songs_, ((bitField0_ & 0x00000020) == 0x00000020), getParentForChildren(), isClean()); + songs_ = null; + } + return songsBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.RequestInsertUrls) + } + + // @@protoc_insertion_point(class_scope:pb.remote.RequestInsertUrls) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public RequestInsertUrls parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new RequestInsertUrls(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface RequestRemoveSongsOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.RequestRemoveSongs) + com.google.protobuf.MessageOrBuilder { + + /** + *
+         * In which playlist is the songs?
+         * 
+ * + * optional int32 playlist_id = 1; + */ + boolean hasPlaylistId(); + + /** + *
+         * In which playlist is the songs?
+         * 
+ * + * optional int32 playlist_id = 1; + */ + int getPlaylistId(); + + /** + *
+         * And on which position?
+         * 
+ * + * repeated int32 songs = 2; + */ + java.util.List getSongsList(); + + /** + *
+         * And on which position?
+         * 
+ * + * repeated int32 songs = 2; + */ + int getSongsCount(); + + /** + *
+         * And on which position?
+         * 
+ * + * repeated int32 songs = 2; + */ + int getSongs(int index); + } + + /** + *
+     * Client want to change track
+     * 
+ * + * Protobuf type {@code pb.remote.RequestRemoveSongs} + */ + public static final class RequestRemoveSongs extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.RequestRemoveSongs) + RequestRemoveSongsOrBuilder { + private static final long serialVersionUID = 0L; + + // Use RequestRemoveSongs.newBuilder() to construct. + private RequestRemoveSongs(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private RequestRemoveSongs() { + playlistId_ = 0; + songs_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private RequestRemoveSongs(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + bitField0_ |= 0x00000001; + playlistId_ = input.readInt32(); + break; + } + case 16: { + if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) { + songs_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000002; + } + songs_.add(input.readInt32()); + break; + } + case 18: { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + if (!((mutable_bitField0_ & 0x00000002) == 0x00000002) && input.getBytesUntilLimit() > 0) { + songs_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000002; + } + while (input.getBytesUntilLimit() > 0) { + songs_.add(input.readInt32()); + } + input.popLimit(limit); + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) { + songs_ = java.util.Collections.unmodifiableList(songs_); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestRemoveSongs_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestRemoveSongs_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs.Builder.class); + } + + private int bitField0_; + public static final int PLAYLIST_ID_FIELD_NUMBER = 1; + private int playlistId_; + + /** + *
+         * In which playlist is the songs?
+         * 
+ * + * optional int32 playlist_id = 1; + */ + public boolean hasPlaylistId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + *
+         * In which playlist is the songs?
+         * 
+ * + * optional int32 playlist_id = 1; + */ + public int getPlaylistId() { + return playlistId_; + } + + public static final int SONGS_FIELD_NUMBER = 2; + private java.util.List songs_; + + /** + *
+         * And on which position?
+         * 
+ * + * repeated int32 songs = 2; + */ + public java.util.List getSongsList() { + return songs_; + } + + /** + *
+         * And on which position?
+         * 
+ * + * repeated int32 songs = 2; + */ + public int getSongsCount() { + return songs_.size(); + } + + /** + *
+         * And on which position?
+         * 
+ * + * repeated int32 songs = 2; + */ + public int getSongs(int index) { + return songs_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeInt32(1, playlistId_); + } + for (int i = 0; i < songs_.size(); i++) { + output.writeInt32(2, songs_.get(i)); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, playlistId_); + } + { + int dataSize = 0; + for (int i = 0; i < songs_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream.computeInt32SizeNoTag(songs_.get(i)); + } + size += dataSize; + size += 1 * getSongsList().size(); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs other = (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs) obj; + + boolean result = true; + result = result && (hasPlaylistId() == other.hasPlaylistId()); + if (hasPlaylistId()) { + result = result && (getPlaylistId() == other.getPlaylistId()); + } + result = result && getSongsList().equals(other.getSongsList()); + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasPlaylistId()) { + hash = (37 * hash) + PLAYLIST_ID_FIELD_NUMBER; + hash = (53 * hash) + getPlaylistId(); + } + if (getSongsCount() > 0) { + hash = (37 * hash) + SONGS_FIELD_NUMBER; + hash = (53 * hash) + getSongsList().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+         * Client want to change track
+         * 
+ * + * Protobuf type {@code pb.remote.RequestRemoveSongs} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.RequestRemoveSongs) + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestRemoveSongs_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestRemoveSongs_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs.Builder.class); + } + + // Construct using de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + playlistId_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + songs_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestRemoveSongs_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs.getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs result = new de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.playlistId_ = playlistId_; + if (((bitField0_ & 0x00000002) == 0x00000002)) { + songs_ = java.util.Collections.unmodifiableList(songs_); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.songs_ = songs_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs) { + return mergeFrom((de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs + .getDefaultInstance()) + return this; + if (other.hasPlaylistId()) { + setPlaylistId(other.getPlaylistId()); + } + if (!other.songs_.isEmpty()) { + if (songs_.isEmpty()) { + songs_ = other.songs_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureSongsIsMutable(); + songs_.addAll(other.songs_); + } + onChanged(); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private int playlistId_; + + /** + *
+             * In which playlist is the songs?
+             * 
+ * + * optional int32 playlist_id = 1; + */ + public boolean hasPlaylistId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + *
+             * In which playlist is the songs?
+             * 
+ * + * optional int32 playlist_id = 1; + */ + public int getPlaylistId() { + return playlistId_; + } + + /** + *
+             * In which playlist is the songs?
+             * 
+ * + * optional int32 playlist_id = 1; + */ + public Builder setPlaylistId(int value) { + bitField0_ |= 0x00000001; + playlistId_ = value; + onChanged(); + return this; + } + + /** + *
+             * In which playlist is the songs?
+             * 
+ * + * optional int32 playlist_id = 1; + */ + public Builder clearPlaylistId() { + bitField0_ = (bitField0_ & ~0x00000001); + playlistId_ = 0; + onChanged(); + return this; + } + + private java.util.List songs_ = java.util.Collections.emptyList(); + + private void ensureSongsIsMutable() { + if (!((bitField0_ & 0x00000002) == 0x00000002)) { + songs_ = new java.util.ArrayList(songs_); + bitField0_ |= 0x00000002; + } + } + + /** + *
+             * And on which position?
+             * 
+ * + * repeated int32 songs = 2; + */ + public java.util.List getSongsList() { + return java.util.Collections.unmodifiableList(songs_); + } + + /** + *
+             * And on which position?
+             * 
+ * + * repeated int32 songs = 2; + */ + public int getSongsCount() { + return songs_.size(); + } + + /** + *
+             * And on which position?
+             * 
+ * + * repeated int32 songs = 2; + */ + public int getSongs(int index) { + return songs_.get(index); + } + + /** + *
+             * And on which position?
+             * 
+ * + * repeated int32 songs = 2; + */ + public Builder setSongs(int index, int value) { + ensureSongsIsMutable(); + songs_.set(index, value); + onChanged(); + return this; + } + + /** + *
+             * And on which position?
+             * 
+ * + * repeated int32 songs = 2; + */ + public Builder addSongs(int value) { + ensureSongsIsMutable(); + songs_.add(value); + onChanged(); + return this; + } + + /** + *
+             * And on which position?
+             * 
+ * + * repeated int32 songs = 2; + */ + public Builder addAllSongs(java.lang.Iterable values) { + ensureSongsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, songs_); + onChanged(); + return this; + } + + /** + *
+             * And on which position?
+             * 
+ * + * repeated int32 songs = 2; + */ + public Builder clearSongs() { + songs_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.RequestRemoveSongs) + } + + // @@protoc_insertion_point(class_scope:pb.remote.RequestRemoveSongs) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public RequestRemoveSongs parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new RequestRemoveSongs(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface RequestOpenPlaylistOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.RequestOpenPlaylist) + com.google.protobuf.MessageOrBuilder { + + /** + * optional int32 playlist_id = 1; + */ + boolean hasPlaylistId(); + + /** + * optional int32 playlist_id = 1; + */ + int getPlaylistId(); + } + + /** + *
+     * Messages for opening / closing playlists
+     * 
+ * + * Protobuf type {@code pb.remote.RequestOpenPlaylist} + */ + public static final class RequestOpenPlaylist extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.RequestOpenPlaylist) + RequestOpenPlaylistOrBuilder { + private static final long serialVersionUID = 0L; + + // Use RequestOpenPlaylist.newBuilder() to construct. + private RequestOpenPlaylist(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private RequestOpenPlaylist() { + playlistId_ = 0; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private RequestOpenPlaylist(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + bitField0_ |= 0x00000001; + playlistId_ = input.readInt32(); + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestOpenPlaylist_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestOpenPlaylist_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist.Builder.class); + } + + private int bitField0_; + public static final int PLAYLIST_ID_FIELD_NUMBER = 1; + private int playlistId_; + + /** + * optional int32 playlist_id = 1; + */ + public boolean hasPlaylistId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 playlist_id = 1; + */ + public int getPlaylistId() { + return playlistId_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeInt32(1, playlistId_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, playlistId_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist other = (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist) obj; + + boolean result = true; + result = result && (hasPlaylistId() == other.hasPlaylistId()); + if (hasPlaylistId()) { + result = result && (getPlaylistId() == other.getPlaylistId()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasPlaylistId()) { + hash = (37 * hash) + PLAYLIST_ID_FIELD_NUMBER; + hash = (53 * hash) + getPlaylistId(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+         * Messages for opening / closing playlists
+         * 
+ * + * Protobuf type {@code pb.remote.RequestOpenPlaylist} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.RequestOpenPlaylist) + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylistOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestOpenPlaylist_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestOpenPlaylist_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist.Builder.class); + } + + // Construct using de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + playlistId_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestOpenPlaylist_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist.getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist result = new de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.playlistId_ = playlistId_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist) { + return mergeFrom( + (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist + .getDefaultInstance()) + return this; + if (other.hasPlaylistId()) { + setPlaylistId(other.getPlaylistId()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private int playlistId_; + + /** + * optional int32 playlist_id = 1; + */ + public boolean hasPlaylistId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 playlist_id = 1; + */ + public int getPlaylistId() { + return playlistId_; + } + + /** + * optional int32 playlist_id = 1; + */ + public Builder setPlaylistId(int value) { + bitField0_ |= 0x00000001; + playlistId_ = value; + onChanged(); + return this; + } + + /** + * optional int32 playlist_id = 1; + */ + public Builder clearPlaylistId() { + bitField0_ = (bitField0_ & ~0x00000001); + playlistId_ = 0; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.RequestOpenPlaylist) + } + + // @@protoc_insertion_point(class_scope:pb.remote.RequestOpenPlaylist) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public RequestOpenPlaylist parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new RequestOpenPlaylist(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface RequestClosePlaylistOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.RequestClosePlaylist) + com.google.protobuf.MessageOrBuilder { + + /** + * optional int32 playlist_id = 1; + */ + boolean hasPlaylistId(); + + /** + * optional int32 playlist_id = 1; + */ + int getPlaylistId(); + } + + /** + * Protobuf type {@code pb.remote.RequestClosePlaylist} + */ + public static final class RequestClosePlaylist extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.RequestClosePlaylist) + RequestClosePlaylistOrBuilder { + private static final long serialVersionUID = 0L; + + // Use RequestClosePlaylist.newBuilder() to construct. + private RequestClosePlaylist(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private RequestClosePlaylist() { + playlistId_ = 0; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private RequestClosePlaylist(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + bitField0_ |= 0x00000001; + playlistId_ = input.readInt32(); + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestClosePlaylist_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestClosePlaylist_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist.Builder.class); + } + + private int bitField0_; + public static final int PLAYLIST_ID_FIELD_NUMBER = 1; + private int playlistId_; + + /** + * optional int32 playlist_id = 1; + */ + public boolean hasPlaylistId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 playlist_id = 1; + */ + public int getPlaylistId() { + return playlistId_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeInt32(1, playlistId_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, playlistId_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist other = (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist) obj; + + boolean result = true; + result = result && (hasPlaylistId() == other.hasPlaylistId()); + if (hasPlaylistId()) { + result = result && (getPlaylistId() == other.getPlaylistId()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasPlaylistId()) { + hash = (37 * hash) + PLAYLIST_ID_FIELD_NUMBER; + hash = (53 * hash) + getPlaylistId(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code pb.remote.RequestClosePlaylist} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.RequestClosePlaylist) + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylistOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestClosePlaylist_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestClosePlaylist_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist.Builder.class); + } + + // Construct using de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + playlistId_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestClosePlaylist_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist.getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist result = new de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.playlistId_ = playlistId_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist) { + return mergeFrom( + (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist + .getDefaultInstance()) + return this; + if (other.hasPlaylistId()) { + setPlaylistId(other.getPlaylistId()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private int playlistId_; + + /** + * optional int32 playlist_id = 1; + */ + public boolean hasPlaylistId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 playlist_id = 1; + */ + public int getPlaylistId() { + return playlistId_; + } + + /** + * optional int32 playlist_id = 1; + */ + public Builder setPlaylistId(int value) { + bitField0_ |= 0x00000001; + playlistId_ = value; + onChanged(); + return this; + } + + /** + * optional int32 playlist_id = 1; + */ + public Builder clearPlaylistId() { + bitField0_ = (bitField0_ & ~0x00000001); + playlistId_ = 0; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.RequestClosePlaylist) + } + + // @@protoc_insertion_point(class_scope:pb.remote.RequestClosePlaylist) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public RequestClosePlaylist parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new RequestClosePlaylist(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ResponseLyricsOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.ResponseLyrics) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + java.util.List getLyricsList(); + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric getLyrics(int index); + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + int getLyricsCount(); + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + java.util.List getLyricsOrBuilderList(); + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.LyricOrBuilder getLyricsOrBuilder(int index); + } + + /** + *
+     * Message containing lyrics
+     * 
+ * + * Protobuf type {@code pb.remote.ResponseLyrics} + */ + public static final class ResponseLyrics extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.ResponseLyrics) + ResponseLyricsOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ResponseLyrics.newBuilder() to construct. + private ResponseLyrics(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ResponseLyrics() { + lyrics_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private ResponseLyrics(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) { + lyrics_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000001; + } + lyrics_.add(input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric.PARSER, + extensionRegistry)); + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) { + lyrics_ = java.util.Collections.unmodifiableList(lyrics_); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseLyrics_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseLyrics_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics.Builder.class); + } + + public static final int LYRICS_FIELD_NUMBER = 1; + private java.util.List lyrics_; + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + public java.util.List getLyricsList() { + return lyrics_; + } + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + public java.util.List getLyricsOrBuilderList() { + return lyrics_; + } + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + public int getLyricsCount() { + return lyrics_.size(); + } + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric getLyrics(int index) { + return lyrics_.get(index); + } + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.LyricOrBuilder getLyricsOrBuilder(int index) { + return lyrics_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + for (int i = 0; i < lyrics_.size(); i++) { + output.writeMessage(1, lyrics_.get(i)); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + for (int i = 0; i < lyrics_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, lyrics_.get(i)); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics other = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics) obj; + + boolean result = true; + result = result && getLyricsList().equals(other.getLyricsList()); + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getLyricsCount() > 0) { + hash = (37 * hash) + LYRICS_FIELD_NUMBER; + hash = (53 * hash) + getLyricsList().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+         * Message containing lyrics
+         * 
+ * + * Protobuf type {@code pb.remote.ResponseLyrics} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.ResponseLyrics) + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyricsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseLyrics_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseLyrics_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics.Builder.class); + } + + // Construct using de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getLyricsFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + if (lyricsBuilder_ == null) { + lyrics_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + } else { + lyricsBuilder_.clear(); + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseLyrics_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics.getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics result = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics( + this); + int from_bitField0_ = bitField0_; + if (lyricsBuilder_ == null) { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + lyrics_ = java.util.Collections.unmodifiableList(lyrics_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.lyrics_ = lyrics_; + } else { + result.lyrics_ = lyricsBuilder_.build(); + } + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics) { + return mergeFrom((de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics.getDefaultInstance()) + return this; + if (lyricsBuilder_ == null) { + if (!other.lyrics_.isEmpty()) { + if (lyrics_.isEmpty()) { + lyrics_ = other.lyrics_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureLyricsIsMutable(); + lyrics_.addAll(other.lyrics_); + } + onChanged(); + } + } else { + if (!other.lyrics_.isEmpty()) { + if (lyricsBuilder_.isEmpty()) { + lyricsBuilder_.dispose(); + lyricsBuilder_ = null; + lyrics_ = other.lyrics_; + bitField0_ = (bitField0_ & ~0x00000001); + lyricsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders + ? getLyricsFieldBuilder() + : null; + } else { + lyricsBuilder_.addAllMessages(other.lyrics_); + } + } + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private java.util.List lyrics_ = java.util.Collections + .emptyList(); + + private void ensureLyricsIsMutable() { + if (!((bitField0_ & 0x00000001) == 0x00000001)) { + lyrics_ = new java.util.ArrayList( + lyrics_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 lyricsBuilder_; + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + public java.util.List getLyricsList() { + if (lyricsBuilder_ == null) { + return java.util.Collections.unmodifiableList(lyrics_); + } else { + return lyricsBuilder_.getMessageList(); + } + } + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + public int getLyricsCount() { + if (lyricsBuilder_ == null) { + return lyrics_.size(); + } else { + return lyricsBuilder_.getCount(); + } + } + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric getLyrics(int index) { + if (lyricsBuilder_ == null) { + return lyrics_.get(index); + } else { + return lyricsBuilder_.getMessage(index); + } + } + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + public Builder setLyrics(int index, de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric value) { + if (lyricsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureLyricsIsMutable(); + lyrics_.set(index, value); + onChanged(); + } else { + lyricsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + public Builder setLyrics(int index, + de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric.Builder builderForValue) { + if (lyricsBuilder_ == null) { + ensureLyricsIsMutable(); + lyrics_.set(index, builderForValue.build()); + onChanged(); + } else { + lyricsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + public Builder addLyrics(de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric value) { + if (lyricsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureLyricsIsMutable(); + lyrics_.add(value); + onChanged(); + } else { + lyricsBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + public Builder addLyrics(int index, de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric value) { + if (lyricsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureLyricsIsMutable(); + lyrics_.add(index, value); + onChanged(); + } else { + lyricsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + public Builder addLyrics( + de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric.Builder builderForValue) { + if (lyricsBuilder_ == null) { + ensureLyricsIsMutable(); + lyrics_.add(builderForValue.build()); + onChanged(); + } else { + lyricsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + public Builder addLyrics(int index, + de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric.Builder builderForValue) { + if (lyricsBuilder_ == null) { + ensureLyricsIsMutable(); + lyrics_.add(index, builderForValue.build()); + onChanged(); + } else { + lyricsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + public Builder addAllLyrics( + java.lang.Iterable values) { + if (lyricsBuilder_ == null) { + ensureLyricsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, lyrics_); + onChanged(); + } else { + lyricsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + public Builder clearLyrics() { + if (lyricsBuilder_ == null) { + lyrics_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + lyricsBuilder_.clear(); + } + return this; + } + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + public Builder removeLyrics(int index) { + if (lyricsBuilder_ == null) { + ensureLyricsIsMutable(); + lyrics_.remove(index); + onChanged(); + } else { + lyricsBuilder_.remove(index); + } + return this; + } + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric.Builder getLyricsBuilder(int index) { + return getLyricsFieldBuilder().getBuilder(index); + } + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.LyricOrBuilder getLyricsOrBuilder(int index) { + if (lyricsBuilder_ == null) { + return lyrics_.get(index); + } else { + return lyricsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + public java.util.List getLyricsOrBuilderList() { + if (lyricsBuilder_ != null) { + return lyricsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(lyrics_); + } + } + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric.Builder addLyricsBuilder() { + return getLyricsFieldBuilder() + .addBuilder(de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric.getDefaultInstance()); + } + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric.Builder addLyricsBuilder(int index) { + return getLyricsFieldBuilder().addBuilder(index, + de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric.getDefaultInstance()); + } + + /** + * repeated .pb.remote.Lyric lyrics = 1; + */ + public java.util.List getLyricsBuilderList() { + return getLyricsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getLyricsFieldBuilder() { + if (lyricsBuilder_ == null) { + lyricsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3( + lyrics_, ((bitField0_ & 0x00000001) == 0x00000001), getParentForChildren(), isClean()); + lyrics_ = null; + } + return lyricsBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.ResponseLyrics) + } + + // @@protoc_insertion_point(class_scope:pb.remote.ResponseLyrics) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ResponseLyrics parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ResponseLyrics(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface LyricOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.Lyric) + com.google.protobuf.MessageOrBuilder { + + /** + * optional string id = 1; + */ + boolean hasId(); + + /** + * optional string id = 1; + */ + java.lang.String getId(); + + /** + * optional string id = 1; + */ + com.google.protobuf.ByteString getIdBytes(); + + /** + * optional string title = 2; + */ + boolean hasTitle(); + + /** + * optional string title = 2; + */ + java.lang.String getTitle(); + + /** + * optional string title = 2; + */ + com.google.protobuf.ByteString getTitleBytes(); + + /** + * optional string content = 3; + */ + boolean hasContent(); + + /** + * optional string content = 3; + */ + java.lang.String getContent(); + + /** + * optional string content = 3; + */ + com.google.protobuf.ByteString getContentBytes(); + } + + /** + * Protobuf type {@code pb.remote.Lyric} + */ + public static final class Lyric extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.Lyric) + LyricOrBuilder { + private static final long serialVersionUID = 0L; + + // Use Lyric.newBuilder() to construct. + private Lyric(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private Lyric() { + id_ = ""; + title_ = ""; + content_ = ""; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private Lyric(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.google.protobuf.ByteString bs = input.readBytes(); + bitField0_ |= 0x00000001; + id_ = bs; + break; + } + case 18: { + com.google.protobuf.ByteString bs = input.readBytes(); + bitField0_ |= 0x00000002; + title_ = bs; + break; + } + case 26: { + com.google.protobuf.ByteString bs = input.readBytes(); + bitField0_ |= 0x00000004; + content_ = bs; + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_Lyric_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_Lyric_fieldAccessorTable + .ensureFieldAccessorsInitialized(de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric.Builder.class); + } + + private int bitField0_; + public static final int ID_FIELD_NUMBER = 1; + private volatile java.lang.Object id_; + + /** + * optional string id = 1; + */ + public boolean hasId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional string id = 1; + */ + public java.lang.String getId() { + java.lang.Object ref = id_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + id_ = s; + } + return s; + } + } + + /** + * optional string id = 1; + */ + public com.google.protobuf.ByteString getIdBytes() { + java.lang.Object ref = id_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + id_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TITLE_FIELD_NUMBER = 2; + private volatile java.lang.Object title_; + + /** + * optional string title = 2; + */ + public boolean hasTitle() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + * optional string title = 2; + */ + public java.lang.String getTitle() { + java.lang.Object ref = title_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + title_ = s; + } + return s; + } + } + + /** + * optional string title = 2; + */ + public com.google.protobuf.ByteString getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CONTENT_FIELD_NUMBER = 3; + private volatile java.lang.Object content_; + + /** + * optional string content = 3; + */ + public boolean hasContent() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + + /** + * optional string content = 3; + */ + public java.lang.String getContent() { + java.lang.Object ref = content_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + content_ = s; + } + return s; + } + } + + /** + * optional string content = 3; + */ + public com.google.protobuf.ByteString getContentBytes() { + java.lang.Object ref = content_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + content_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, title_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, content_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, title_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, content_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric other = (de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric) obj; + + boolean result = true; + result = result && (hasId() == other.hasId()); + if (hasId()) { + result = result && getId().equals(other.getId()); + } + result = result && (hasTitle() == other.hasTitle()); + if (hasTitle()) { + result = result && getTitle().equals(other.getTitle()); + } + result = result && (hasContent() == other.hasContent()); + if (hasContent()) { + result = result && getContent().equals(other.getContent()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasId()) { + hash = (37 * hash) + ID_FIELD_NUMBER; + hash = (53 * hash) + getId().hashCode(); + } + if (hasTitle()) { + hash = (37 * hash) + TITLE_FIELD_NUMBER; + hash = (53 * hash) + getTitle().hashCode(); + } + if (hasContent()) { + hash = (37 * hash) + CONTENT_FIELD_NUMBER; + hash = (53 * hash) + getContent().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric parseFrom(java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric parseFrom(java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code pb.remote.Lyric} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.Lyric) + de.qspool.clementineremote.backend.pb.ClementineRemote.LyricOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_Lyric_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_Lyric_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric.Builder.class); + } + + // Construct using de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + id_ = ""; + bitField0_ = (bitField0_ & ~0x00000001); + title_ = ""; + bitField0_ = (bitField0_ & ~0x00000002); + content_ = ""; + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_Lyric_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric.getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric result = new de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.id_ = id_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.title_ = title_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + result.content_ = content_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric) { + return mergeFrom((de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric.getDefaultInstance()) + return this; + if (other.hasId()) { + bitField0_ |= 0x00000001; + id_ = other.id_; + onChanged(); + } + if (other.hasTitle()) { + bitField0_ |= 0x00000002; + title_ = other.title_; + onChanged(); + } + if (other.hasContent()) { + bitField0_ |= 0x00000004; + content_ = other.content_; + onChanged(); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private java.lang.Object id_ = ""; + + /** + * optional string id = 1; + */ + public boolean hasId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional string id = 1; + */ + public java.lang.String getId() { + java.lang.Object ref = id_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + id_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * optional string id = 1; + */ + public com.google.protobuf.ByteString getIdBytes() { + java.lang.Object ref = id_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString + .copyFromUtf8((java.lang.String) ref); + id_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * optional string id = 1; + */ + public Builder setId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + id_ = value; + onChanged(); + return this; + } + + /** + * optional string id = 1; + */ + public Builder clearId() { + bitField0_ = (bitField0_ & ~0x00000001); + id_ = getDefaultInstance().getId(); + onChanged(); + return this; + } + + /** + * optional string id = 1; + */ + public Builder setIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + id_ = value; + onChanged(); + return this; + } + + private java.lang.Object title_ = ""; + + /** + * optional string title = 2; + */ + public boolean hasTitle() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + * optional string title = 2; + */ + public java.lang.String getTitle() { + java.lang.Object ref = title_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + title_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * optional string title = 2; + */ + public com.google.protobuf.ByteString getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString + .copyFromUtf8((java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * optional string title = 2; + */ + public Builder setTitle(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + title_ = value; + onChanged(); + return this; + } + + /** + * optional string title = 2; + */ + public Builder clearTitle() { + bitField0_ = (bitField0_ & ~0x00000002); + title_ = getDefaultInstance().getTitle(); + onChanged(); + return this; + } + + /** + * optional string title = 2; + */ + public Builder setTitleBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + title_ = value; + onChanged(); + return this; + } + + private java.lang.Object content_ = ""; + + /** + * optional string content = 3; + */ + public boolean hasContent() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + + /** + * optional string content = 3; + */ + public java.lang.String getContent() { + java.lang.Object ref = content_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + content_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * optional string content = 3; + */ + public com.google.protobuf.ByteString getContentBytes() { + java.lang.Object ref = content_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString + .copyFromUtf8((java.lang.String) ref); + content_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * optional string content = 3; + */ + public Builder setContent(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + content_ = value; + onChanged(); + return this; + } + + /** + * optional string content = 3; + */ + public Builder clearContent() { + bitField0_ = (bitField0_ & ~0x00000004); + content_ = getDefaultInstance().getContent(); + onChanged(); + return this; + } + + /** + * optional string content = 3; + */ + public Builder setContentBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + content_ = value; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.Lyric) + } + + // @@protoc_insertion_point(class_scope:pb.remote.Lyric) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Lyric parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new Lyric(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.Lyric getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface RequestDownloadSongsOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.RequestDownloadSongs) + com.google.protobuf.MessageOrBuilder { + + /** + * optional .pb.remote.DownloadItem download_item = 1; + */ + boolean hasDownloadItem(); + + /** + * optional .pb.remote.DownloadItem download_item = 1; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.DownloadItem getDownloadItem(); + + /** + * optional int32 playlist_id = 2; + */ + boolean hasPlaylistId(); + + /** + * optional int32 playlist_id = 2; + */ + int getPlaylistId(); + + /** + * repeated string urls = 3; + */ + java.util.List getUrlsList(); + + /** + * repeated string urls = 3; + */ + int getUrlsCount(); + + /** + * repeated string urls = 3; + */ + java.lang.String getUrls(int index); + + /** + * repeated string urls = 3; + */ + com.google.protobuf.ByteString getUrlsBytes(int index); + } + + /** + * Protobuf type {@code pb.remote.RequestDownloadSongs} + */ + public static final class RequestDownloadSongs extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.RequestDownloadSongs) + RequestDownloadSongsOrBuilder { + private static final long serialVersionUID = 0L; + + // Use RequestDownloadSongs.newBuilder() to construct. + private RequestDownloadSongs(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private RequestDownloadSongs() { + downloadItem_ = 1; + playlistId_ = 0; + urls_ = com.google.protobuf.LazyStringArrayList.EMPTY; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private RequestDownloadSongs(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + int rawValue = input.readEnum(); + @SuppressWarnings("deprecation") + de.qspool.clementineremote.backend.pb.ClementineRemote.DownloadItem value = de.qspool.clementineremote.backend.pb.ClementineRemote.DownloadItem + .valueOf(rawValue); + if (value == null) { + unknownFields.mergeVarintField(1, rawValue); + } else { + bitField0_ |= 0x00000001; + downloadItem_ = rawValue; + } + break; + } + case 16: { + bitField0_ |= 0x00000002; + playlistId_ = input.readInt32(); + break; + } + case 26: { + com.google.protobuf.ByteString bs = input.readBytes(); + if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) { + urls_ = new com.google.protobuf.LazyStringArrayList(); + mutable_bitField0_ |= 0x00000004; + } + urls_.add(bs); + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) { + urls_ = urls_.getUnmodifiableView(); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestDownloadSongs_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestDownloadSongs_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs.Builder.class); + } + + private int bitField0_; + public static final int DOWNLOAD_ITEM_FIELD_NUMBER = 1; + private int downloadItem_; + + /** + * optional .pb.remote.DownloadItem download_item = 1; + */ + public boolean hasDownloadItem() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional .pb.remote.DownloadItem download_item = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.DownloadItem getDownloadItem() { + @SuppressWarnings("deprecation") + de.qspool.clementineremote.backend.pb.ClementineRemote.DownloadItem result = de.qspool.clementineremote.backend.pb.ClementineRemote.DownloadItem + .valueOf(downloadItem_); + return result == null ? de.qspool.clementineremote.backend.pb.ClementineRemote.DownloadItem.CurrentItem + : result; + } + + public static final int PLAYLIST_ID_FIELD_NUMBER = 2; + private int playlistId_; + + /** + * optional int32 playlist_id = 2; + */ + public boolean hasPlaylistId() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + * optional int32 playlist_id = 2; + */ + public int getPlaylistId() { + return playlistId_; + } + + public static final int URLS_FIELD_NUMBER = 3; + private com.google.protobuf.LazyStringList urls_; + + /** + * repeated string urls = 3; + */ + public com.google.protobuf.ProtocolStringList getUrlsList() { + return urls_; + } + + /** + * repeated string urls = 3; + */ + public int getUrlsCount() { + return urls_.size(); + } + + /** + * repeated string urls = 3; + */ + public java.lang.String getUrls(int index) { + return urls_.get(index); + } + + /** + * repeated string urls = 3; + */ + public com.google.protobuf.ByteString getUrlsBytes(int index) { + return urls_.getByteString(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeEnum(1, downloadItem_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeInt32(2, playlistId_); + } + for (int i = 0; i < urls_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, urls_.getRaw(i)); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, downloadItem_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(2, playlistId_); + } + { + int dataSize = 0; + for (int i = 0; i < urls_.size(); i++) { + dataSize += computeStringSizeNoTag(urls_.getRaw(i)); + } + size += dataSize; + size += 1 * getUrlsList().size(); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs other = (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs) obj; + + boolean result = true; + result = result && (hasDownloadItem() == other.hasDownloadItem()); + if (hasDownloadItem()) { + result = result && downloadItem_ == other.downloadItem_; + } + result = result && (hasPlaylistId() == other.hasPlaylistId()); + if (hasPlaylistId()) { + result = result && (getPlaylistId() == other.getPlaylistId()); + } + result = result && getUrlsList().equals(other.getUrlsList()); + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasDownloadItem()) { + hash = (37 * hash) + DOWNLOAD_ITEM_FIELD_NUMBER; + hash = (53 * hash) + downloadItem_; + } + if (hasPlaylistId()) { + hash = (37 * hash) + PLAYLIST_ID_FIELD_NUMBER; + hash = (53 * hash) + getPlaylistId(); + } + if (getUrlsCount() > 0) { + hash = (37 * hash) + URLS_FIELD_NUMBER; + hash = (53 * hash) + getUrlsList().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code pb.remote.RequestDownloadSongs} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.RequestDownloadSongs) + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestDownloadSongs_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestDownloadSongs_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs.Builder.class); + } + + // Construct using de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + downloadItem_ = 1; + bitField0_ = (bitField0_ & ~0x00000001); + playlistId_ = 0; + bitField0_ = (bitField0_ & ~0x00000002); + urls_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestDownloadSongs_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs.getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs result = new de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.downloadItem_ = downloadItem_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.playlistId_ = playlistId_; + if (((bitField0_ & 0x00000004) == 0x00000004)) { + urls_ = urls_.getUnmodifiableView(); + bitField0_ = (bitField0_ & ~0x00000004); + } + result.urls_ = urls_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs) { + return mergeFrom( + (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs + .getDefaultInstance()) + return this; + if (other.hasDownloadItem()) { + setDownloadItem(other.getDownloadItem()); + } + if (other.hasPlaylistId()) { + setPlaylistId(other.getPlaylistId()); + } + if (!other.urls_.isEmpty()) { + if (urls_.isEmpty()) { + urls_ = other.urls_; + bitField0_ = (bitField0_ & ~0x00000004); + } else { + ensureUrlsIsMutable(); + urls_.addAll(other.urls_); + } + onChanged(); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private int downloadItem_ = 1; + + /** + * optional .pb.remote.DownloadItem download_item = 1; + */ + public boolean hasDownloadItem() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional .pb.remote.DownloadItem download_item = 1; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.DownloadItem getDownloadItem() { + @SuppressWarnings("deprecation") + de.qspool.clementineremote.backend.pb.ClementineRemote.DownloadItem result = de.qspool.clementineremote.backend.pb.ClementineRemote.DownloadItem + .valueOf(downloadItem_); + return result == null ? de.qspool.clementineremote.backend.pb.ClementineRemote.DownloadItem.CurrentItem + : result; + } + + /** + * optional .pb.remote.DownloadItem download_item = 1; + */ + public Builder setDownloadItem(de.qspool.clementineremote.backend.pb.ClementineRemote.DownloadItem value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + downloadItem_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * optional .pb.remote.DownloadItem download_item = 1; + */ + public Builder clearDownloadItem() { + bitField0_ = (bitField0_ & ~0x00000001); + downloadItem_ = 1; + onChanged(); + return this; + } + + private int playlistId_; + + /** + * optional int32 playlist_id = 2; + */ + public boolean hasPlaylistId() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + * optional int32 playlist_id = 2; + */ + public int getPlaylistId() { + return playlistId_; + } + + /** + * optional int32 playlist_id = 2; + */ + public Builder setPlaylistId(int value) { + bitField0_ |= 0x00000002; + playlistId_ = value; + onChanged(); + return this; + } + + /** + * optional int32 playlist_id = 2; + */ + public Builder clearPlaylistId() { + bitField0_ = (bitField0_ & ~0x00000002); + playlistId_ = 0; + onChanged(); + return this; + } + + private com.google.protobuf.LazyStringList urls_ = com.google.protobuf.LazyStringArrayList.EMPTY; + + private void ensureUrlsIsMutable() { + if (!((bitField0_ & 0x00000004) == 0x00000004)) { + urls_ = new com.google.protobuf.LazyStringArrayList(urls_); + bitField0_ |= 0x00000004; + } + } + + /** + * repeated string urls = 3; + */ + public com.google.protobuf.ProtocolStringList getUrlsList() { + return urls_.getUnmodifiableView(); + } + + /** + * repeated string urls = 3; + */ + public int getUrlsCount() { + return urls_.size(); + } + + /** + * repeated string urls = 3; + */ + public java.lang.String getUrls(int index) { + return urls_.get(index); + } + + /** + * repeated string urls = 3; + */ + public com.google.protobuf.ByteString getUrlsBytes(int index) { + return urls_.getByteString(index); + } + + /** + * repeated string urls = 3; + */ + public Builder setUrls(int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureUrlsIsMutable(); + urls_.set(index, value); + onChanged(); + return this; + } + + /** + * repeated string urls = 3; + */ + public Builder addUrls(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureUrlsIsMutable(); + urls_.add(value); + onChanged(); + return this; + } + + /** + * repeated string urls = 3; + */ + public Builder addAllUrls(java.lang.Iterable values) { + ensureUrlsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, urls_); + onChanged(); + return this; + } + + /** + * repeated string urls = 3; + */ + public Builder clearUrls() { + urls_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * repeated string urls = 3; + */ + public Builder addUrlsBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + ensureUrlsIsMutable(); + urls_.add(value); + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.RequestDownloadSongs) + } + + // @@protoc_insertion_point(class_scope:pb.remote.RequestDownloadSongs) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public RequestDownloadSongs parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new RequestDownloadSongs(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ResponseSongFileChunkOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.ResponseSongFileChunk) + com.google.protobuf.MessageOrBuilder { + + /** + * optional int32 chunk_number = 1; + */ + boolean hasChunkNumber(); + + /** + * optional int32 chunk_number = 1; + */ + int getChunkNumber(); + + /** + * optional int32 chunk_count = 2; + */ + boolean hasChunkCount(); + + /** + * optional int32 chunk_count = 2; + */ + int getChunkCount(); + + /** + * optional int32 file_number = 3; + */ + boolean hasFileNumber(); + + /** + * optional int32 file_number = 3; + */ + int getFileNumber(); + + /** + * optional int32 file_count = 4; + */ + boolean hasFileCount(); + + /** + * optional int32 file_count = 4; + */ + int getFileCount(); + + /** + *
+         * only sent with first chunk!
+         * 
+ * + * optional .pb.remote.SongMetadata song_metadata = 6; + */ + boolean hasSongMetadata(); + + /** + *
+         * only sent with first chunk!
+         * 
+ * + * optional .pb.remote.SongMetadata song_metadata = 6; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata getSongMetadata(); + + /** + *
+         * only sent with first chunk!
+         * 
+ * + * optional .pb.remote.SongMetadata song_metadata = 6; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadataOrBuilder getSongMetadataOrBuilder(); + + /** + * optional bytes data = 7; + */ + boolean hasData(); + + /** + * optional bytes data = 7; + */ + com.google.protobuf.ByteString getData(); + + /** + * optional int32 size = 8; + */ + boolean hasSize(); + + /** + * optional int32 size = 8; + */ + int getSize(); + + /** + * optional bytes file_hash = 9; + */ + boolean hasFileHash(); + + /** + * optional bytes file_hash = 9; + */ + com.google.protobuf.ByteString getFileHash(); + } + + /** + * Protobuf type {@code pb.remote.ResponseSongFileChunk} + */ + public static final class ResponseSongFileChunk extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.ResponseSongFileChunk) + ResponseSongFileChunkOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ResponseSongFileChunk.newBuilder() to construct. + private ResponseSongFileChunk(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ResponseSongFileChunk() { + chunkNumber_ = 0; + chunkCount_ = 0; + fileNumber_ = 0; + fileCount_ = 0; + data_ = com.google.protobuf.ByteString.EMPTY; + size_ = 0; + fileHash_ = com.google.protobuf.ByteString.EMPTY; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private ResponseSongFileChunk(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + bitField0_ |= 0x00000001; + chunkNumber_ = input.readInt32(); + break; + } + case 16: { + bitField0_ |= 0x00000002; + chunkCount_ = input.readInt32(); + break; + } + case 24: { + bitField0_ |= 0x00000004; + fileNumber_ = input.readInt32(); + break; + } + case 32: { + bitField0_ |= 0x00000008; + fileCount_ = input.readInt32(); + break; + } + case 50: { + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Builder subBuilder = null; + if (((bitField0_ & 0x00000010) == 0x00000010)) { + subBuilder = songMetadata_.toBuilder(); + } + songMetadata_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(songMetadata_); + songMetadata_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000010; + break; + } + case 58: { + bitField0_ |= 0x00000020; + data_ = input.readBytes(); + break; + } + case 64: { + bitField0_ |= 0x00000040; + size_ = input.readInt32(); + break; + } + case 74: { + bitField0_ |= 0x00000080; + fileHash_ = input.readBytes(); + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseSongFileChunk_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseSongFileChunk_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk.Builder.class); + } + + private int bitField0_; + public static final int CHUNK_NUMBER_FIELD_NUMBER = 1; + private int chunkNumber_; + + /** + * optional int32 chunk_number = 1; + */ + public boolean hasChunkNumber() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 chunk_number = 1; + */ + public int getChunkNumber() { + return chunkNumber_; + } + + public static final int CHUNK_COUNT_FIELD_NUMBER = 2; + private int chunkCount_; + + /** + * optional int32 chunk_count = 2; + */ + public boolean hasChunkCount() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + * optional int32 chunk_count = 2; + */ + public int getChunkCount() { + return chunkCount_; + } + + public static final int FILE_NUMBER_FIELD_NUMBER = 3; + private int fileNumber_; + + /** + * optional int32 file_number = 3; + */ + public boolean hasFileNumber() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + + /** + * optional int32 file_number = 3; + */ + public int getFileNumber() { + return fileNumber_; + } + + public static final int FILE_COUNT_FIELD_NUMBER = 4; + private int fileCount_; + + /** + * optional int32 file_count = 4; + */ + public boolean hasFileCount() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + + /** + * optional int32 file_count = 4; + */ + public int getFileCount() { + return fileCount_; + } + + public static final int SONG_METADATA_FIELD_NUMBER = 6; + private de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata songMetadata_; + + /** + *
+         * only sent with first chunk!
+         * 
+ * + * optional .pb.remote.SongMetadata song_metadata = 6; + */ + public boolean hasSongMetadata() { + return ((bitField0_ & 0x00000010) == 0x00000010); + } + + /** + *
+         * only sent with first chunk!
+         * 
+ * + * optional .pb.remote.SongMetadata song_metadata = 6; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata getSongMetadata() { + return songMetadata_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.getDefaultInstance() + : songMetadata_; + } + + /** + *
+         * only sent with first chunk!
+         * 
+ * + * optional .pb.remote.SongMetadata song_metadata = 6; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadataOrBuilder getSongMetadataOrBuilder() { + return songMetadata_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.getDefaultInstance() + : songMetadata_; + } + + public static final int DATA_FIELD_NUMBER = 7; + private com.google.protobuf.ByteString data_; + + /** + * optional bytes data = 7; + */ + public boolean hasData() { + return ((bitField0_ & 0x00000020) == 0x00000020); + } + + /** + * optional bytes data = 7; + */ + public com.google.protobuf.ByteString getData() { + return data_; + } + + public static final int SIZE_FIELD_NUMBER = 8; + private int size_; + + /** + * optional int32 size = 8; + */ + public boolean hasSize() { + return ((bitField0_ & 0x00000040) == 0x00000040); + } + + /** + * optional int32 size = 8; + */ + public int getSize() { + return size_; + } + + public static final int FILE_HASH_FIELD_NUMBER = 9; + private com.google.protobuf.ByteString fileHash_; + + /** + * optional bytes file_hash = 9; + */ + public boolean hasFileHash() { + return ((bitField0_ & 0x00000080) == 0x00000080); + } + + /** + * optional bytes file_hash = 9; + */ + public com.google.protobuf.ByteString getFileHash() { + return fileHash_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeInt32(1, chunkNumber_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeInt32(2, chunkCount_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeInt32(3, fileNumber_); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + output.writeInt32(4, fileCount_); + } + if (((bitField0_ & 0x00000010) == 0x00000010)) { + output.writeMessage(6, getSongMetadata()); + } + if (((bitField0_ & 0x00000020) == 0x00000020)) { + output.writeBytes(7, data_); + } + if (((bitField0_ & 0x00000040) == 0x00000040)) { + output.writeInt32(8, size_); + } + if (((bitField0_ & 0x00000080) == 0x00000080)) { + output.writeBytes(9, fileHash_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, chunkNumber_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(2, chunkCount_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(3, fileNumber_); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(4, fileCount_); + } + if (((bitField0_ & 0x00000010) == 0x00000010)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getSongMetadata()); + } + if (((bitField0_ & 0x00000020) == 0x00000020)) { + size += com.google.protobuf.CodedOutputStream.computeBytesSize(7, data_); + } + if (((bitField0_ & 0x00000040) == 0x00000040)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(8, size_); + } + if (((bitField0_ & 0x00000080) == 0x00000080)) { + size += com.google.protobuf.CodedOutputStream.computeBytesSize(9, fileHash_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk other = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk) obj; + + boolean result = true; + result = result && (hasChunkNumber() == other.hasChunkNumber()); + if (hasChunkNumber()) { + result = result && (getChunkNumber() == other.getChunkNumber()); + } + result = result && (hasChunkCount() == other.hasChunkCount()); + if (hasChunkCount()) { + result = result && (getChunkCount() == other.getChunkCount()); + } + result = result && (hasFileNumber() == other.hasFileNumber()); + if (hasFileNumber()) { + result = result && (getFileNumber() == other.getFileNumber()); + } + result = result && (hasFileCount() == other.hasFileCount()); + if (hasFileCount()) { + result = result && (getFileCount() == other.getFileCount()); + } + result = result && (hasSongMetadata() == other.hasSongMetadata()); + if (hasSongMetadata()) { + result = result && getSongMetadata().equals(other.getSongMetadata()); + } + result = result && (hasData() == other.hasData()); + if (hasData()) { + result = result && getData().equals(other.getData()); + } + result = result && (hasSize() == other.hasSize()); + if (hasSize()) { + result = result && (getSize() == other.getSize()); + } + result = result && (hasFileHash() == other.hasFileHash()); + if (hasFileHash()) { + result = result && getFileHash().equals(other.getFileHash()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasChunkNumber()) { + hash = (37 * hash) + CHUNK_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getChunkNumber(); + } + if (hasChunkCount()) { + hash = (37 * hash) + CHUNK_COUNT_FIELD_NUMBER; + hash = (53 * hash) + getChunkCount(); + } + if (hasFileNumber()) { + hash = (37 * hash) + FILE_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getFileNumber(); + } + if (hasFileCount()) { + hash = (37 * hash) + FILE_COUNT_FIELD_NUMBER; + hash = (53 * hash) + getFileCount(); + } + if (hasSongMetadata()) { + hash = (37 * hash) + SONG_METADATA_FIELD_NUMBER; + hash = (53 * hash) + getSongMetadata().hashCode(); + } + if (hasData()) { + hash = (37 * hash) + DATA_FIELD_NUMBER; + hash = (53 * hash) + getData().hashCode(); + } + if (hasSize()) { + hash = (37 * hash) + SIZE_FIELD_NUMBER; + hash = (53 * hash) + getSize(); + } + if (hasFileHash()) { + hash = (37 * hash) + FILE_HASH_FIELD_NUMBER; + hash = (53 * hash) + getFileHash().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code pb.remote.ResponseSongFileChunk} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.ResponseSongFileChunk) + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunkOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseSongFileChunk_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseSongFileChunk_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk.Builder.class); + } + + // Construct using de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getSongMetadataFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + chunkNumber_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + chunkCount_ = 0; + bitField0_ = (bitField0_ & ~0x00000002); + fileNumber_ = 0; + bitField0_ = (bitField0_ & ~0x00000004); + fileCount_ = 0; + bitField0_ = (bitField0_ & ~0x00000008); + if (songMetadataBuilder_ == null) { + songMetadata_ = null; + } else { + songMetadataBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000010); + data_ = com.google.protobuf.ByteString.EMPTY; + bitField0_ = (bitField0_ & ~0x00000020); + size_ = 0; + bitField0_ = (bitField0_ & ~0x00000040); + fileHash_ = com.google.protobuf.ByteString.EMPTY; + bitField0_ = (bitField0_ & ~0x00000080); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseSongFileChunk_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk + .getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk result = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.chunkNumber_ = chunkNumber_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.chunkCount_ = chunkCount_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + result.fileNumber_ = fileNumber_; + if (((from_bitField0_ & 0x00000008) == 0x00000008)) { + to_bitField0_ |= 0x00000008; + } + result.fileCount_ = fileCount_; + if (((from_bitField0_ & 0x00000010) == 0x00000010)) { + to_bitField0_ |= 0x00000010; + } + if (songMetadataBuilder_ == null) { + result.songMetadata_ = songMetadata_; + } else { + result.songMetadata_ = songMetadataBuilder_.build(); + } + if (((from_bitField0_ & 0x00000020) == 0x00000020)) { + to_bitField0_ |= 0x00000020; + } + result.data_ = data_; + if (((from_bitField0_ & 0x00000040) == 0x00000040)) { + to_bitField0_ |= 0x00000040; + } + result.size_ = size_; + if (((from_bitField0_ & 0x00000080) == 0x00000080)) { + to_bitField0_ |= 0x00000080; + } + result.fileHash_ = fileHash_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk) { + return mergeFrom( + (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk + .getDefaultInstance()) + return this; + if (other.hasChunkNumber()) { + setChunkNumber(other.getChunkNumber()); + } + if (other.hasChunkCount()) { + setChunkCount(other.getChunkCount()); + } + if (other.hasFileNumber()) { + setFileNumber(other.getFileNumber()); + } + if (other.hasFileCount()) { + setFileCount(other.getFileCount()); + } + if (other.hasSongMetadata()) { + mergeSongMetadata(other.getSongMetadata()); + } + if (other.hasData()) { + setData(other.getData()); + } + if (other.hasSize()) { + setSize(other.getSize()); + } + if (other.hasFileHash()) { + setFileHash(other.getFileHash()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private int chunkNumber_; + + /** + * optional int32 chunk_number = 1; + */ + public boolean hasChunkNumber() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 chunk_number = 1; + */ + public int getChunkNumber() { + return chunkNumber_; + } + + /** + * optional int32 chunk_number = 1; + */ + public Builder setChunkNumber(int value) { + bitField0_ |= 0x00000001; + chunkNumber_ = value; + onChanged(); + return this; + } + + /** + * optional int32 chunk_number = 1; + */ + public Builder clearChunkNumber() { + bitField0_ = (bitField0_ & ~0x00000001); + chunkNumber_ = 0; + onChanged(); + return this; + } + + private int chunkCount_; + + /** + * optional int32 chunk_count = 2; + */ + public boolean hasChunkCount() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + * optional int32 chunk_count = 2; + */ + public int getChunkCount() { + return chunkCount_; + } + + /** + * optional int32 chunk_count = 2; + */ + public Builder setChunkCount(int value) { + bitField0_ |= 0x00000002; + chunkCount_ = value; + onChanged(); + return this; + } + + /** + * optional int32 chunk_count = 2; + */ + public Builder clearChunkCount() { + bitField0_ = (bitField0_ & ~0x00000002); + chunkCount_ = 0; + onChanged(); + return this; + } + + private int fileNumber_; + + /** + * optional int32 file_number = 3; + */ + public boolean hasFileNumber() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + + /** + * optional int32 file_number = 3; + */ + public int getFileNumber() { + return fileNumber_; + } + + /** + * optional int32 file_number = 3; + */ + public Builder setFileNumber(int value) { + bitField0_ |= 0x00000004; + fileNumber_ = value; + onChanged(); + return this; + } + + /** + * optional int32 file_number = 3; + */ + public Builder clearFileNumber() { + bitField0_ = (bitField0_ & ~0x00000004); + fileNumber_ = 0; + onChanged(); + return this; + } + + private int fileCount_; + + /** + * optional int32 file_count = 4; + */ + public boolean hasFileCount() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + + /** + * optional int32 file_count = 4; + */ + public int getFileCount() { + return fileCount_; + } + + /** + * optional int32 file_count = 4; + */ + public Builder setFileCount(int value) { + bitField0_ |= 0x00000008; + fileCount_ = value; + onChanged(); + return this; + } + + /** + * optional int32 file_count = 4; + */ + public Builder clearFileCount() { + bitField0_ = (bitField0_ & ~0x00000008); + fileCount_ = 0; + onChanged(); + return this; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata songMetadata_ = null; + private com.google.protobuf.SingleFieldBuilderV3 songMetadataBuilder_; + + /** + *
+             * only sent with first chunk!
+             * 
+ * + * optional .pb.remote.SongMetadata song_metadata = 6; + */ + public boolean hasSongMetadata() { + return ((bitField0_ & 0x00000010) == 0x00000010); + } + + /** + *
+             * only sent with first chunk!
+             * 
+ * + * optional .pb.remote.SongMetadata song_metadata = 6; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata getSongMetadata() { + if (songMetadataBuilder_ == null) { + return songMetadata_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.getDefaultInstance() + : songMetadata_; + } else { + return songMetadataBuilder_.getMessage(); + } + } + + /** + *
+             * only sent with first chunk!
+             * 
+ * + * optional .pb.remote.SongMetadata song_metadata = 6; + */ + public Builder setSongMetadata(de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata value) { + if (songMetadataBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + songMetadata_ = value; + onChanged(); + } else { + songMetadataBuilder_.setMessage(value); + } + bitField0_ |= 0x00000010; + return this; + } + + /** + *
+             * only sent with first chunk!
+             * 
+ * + * optional .pb.remote.SongMetadata song_metadata = 6; + */ + public Builder setSongMetadata( + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Builder builderForValue) { + if (songMetadataBuilder_ == null) { + songMetadata_ = builderForValue.build(); + onChanged(); + } else { + songMetadataBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000010; + return this; + } + + /** + *
+             * only sent with first chunk!
+             * 
+ * + * optional .pb.remote.SongMetadata song_metadata = 6; + */ + public Builder mergeSongMetadata( + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata value) { + if (songMetadataBuilder_ == null) { + if (((bitField0_ & 0x00000010) == 0x00000010) && songMetadata_ != null + && songMetadata_ != de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata + .getDefaultInstance()) { + songMetadata_ = de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata + .newBuilder(songMetadata_).mergeFrom(value).buildPartial(); + } else { + songMetadata_ = value; + } + onChanged(); + } else { + songMetadataBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000010; + return this; + } + + /** + *
+             * only sent with first chunk!
+             * 
+ * + * optional .pb.remote.SongMetadata song_metadata = 6; + */ + public Builder clearSongMetadata() { + if (songMetadataBuilder_ == null) { + songMetadata_ = null; + onChanged(); + } else { + songMetadataBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000010); + return this; + } + + /** + *
+             * only sent with first chunk!
+             * 
+ * + * optional .pb.remote.SongMetadata song_metadata = 6; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Builder getSongMetadataBuilder() { + bitField0_ |= 0x00000010; + onChanged(); + return getSongMetadataFieldBuilder().getBuilder(); + } + + /** + *
+             * only sent with first chunk!
+             * 
+ * + * optional .pb.remote.SongMetadata song_metadata = 6; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadataOrBuilder getSongMetadataOrBuilder() { + if (songMetadataBuilder_ != null) { + return songMetadataBuilder_.getMessageOrBuilder(); + } else { + return songMetadata_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.getDefaultInstance() + : songMetadata_; + } + } + + /** + *
+             * only sent with first chunk!
+             * 
+ * + * optional .pb.remote.SongMetadata song_metadata = 6; + */ + private com.google.protobuf.SingleFieldBuilderV3 getSongMetadataFieldBuilder() { + if (songMetadataBuilder_ == null) { + songMetadataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getSongMetadata(), getParentForChildren(), isClean()); + songMetadata_ = null; + } + return songMetadataBuilder_; + } + + private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY; + + /** + * optional bytes data = 7; + */ + public boolean hasData() { + return ((bitField0_ & 0x00000020) == 0x00000020); + } + + /** + * optional bytes data = 7; + */ + public com.google.protobuf.ByteString getData() { + return data_; + } + + /** + * optional bytes data = 7; + */ + public Builder setData(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000020; + data_ = value; + onChanged(); + return this; + } + + /** + * optional bytes data = 7; + */ + public Builder clearData() { + bitField0_ = (bitField0_ & ~0x00000020); + data_ = getDefaultInstance().getData(); + onChanged(); + return this; + } + + private int size_; + + /** + * optional int32 size = 8; + */ + public boolean hasSize() { + return ((bitField0_ & 0x00000040) == 0x00000040); + } + + /** + * optional int32 size = 8; + */ + public int getSize() { + return size_; + } + + /** + * optional int32 size = 8; + */ + public Builder setSize(int value) { + bitField0_ |= 0x00000040; + size_ = value; + onChanged(); + return this; + } + + /** + * optional int32 size = 8; + */ + public Builder clearSize() { + bitField0_ = (bitField0_ & ~0x00000040); + size_ = 0; + onChanged(); + return this; + } + + private com.google.protobuf.ByteString fileHash_ = com.google.protobuf.ByteString.EMPTY; + + /** + * optional bytes file_hash = 9; + */ + public boolean hasFileHash() { + return ((bitField0_ & 0x00000080) == 0x00000080); + } + + /** + * optional bytes file_hash = 9; + */ + public com.google.protobuf.ByteString getFileHash() { + return fileHash_; + } + + /** + * optional bytes file_hash = 9; + */ + public Builder setFileHash(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000080; + fileHash_ = value; + onChanged(); + return this; + } + + /** + * optional bytes file_hash = 9; + */ + public Builder clearFileHash() { + bitField0_ = (bitField0_ & ~0x00000080); + fileHash_ = getDefaultInstance().getFileHash(); + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.ResponseSongFileChunk) + } + + // @@protoc_insertion_point(class_scope:pb.remote.ResponseSongFileChunk) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ResponseSongFileChunk parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ResponseSongFileChunk(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ResponseLibraryChunkOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.ResponseLibraryChunk) + com.google.protobuf.MessageOrBuilder { + + /** + * optional int32 chunk_number = 1; + */ + boolean hasChunkNumber(); + + /** + * optional int32 chunk_number = 1; + */ + int getChunkNumber(); + + /** + * optional int32 chunk_count = 2; + */ + boolean hasChunkCount(); + + /** + * optional int32 chunk_count = 2; + */ + int getChunkCount(); + + /** + * optional bytes data = 3; + */ + boolean hasData(); + + /** + * optional bytes data = 3; + */ + com.google.protobuf.ByteString getData(); + + /** + * optional int32 size = 4; + */ + boolean hasSize(); + + /** + * optional int32 size = 4; + */ + int getSize(); + + /** + * optional bytes file_hash = 5; + */ + boolean hasFileHash(); + + /** + * optional bytes file_hash = 5; + */ + com.google.protobuf.ByteString getFileHash(); + } + + /** + * Protobuf type {@code pb.remote.ResponseLibraryChunk} + */ + public static final class ResponseLibraryChunk extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.ResponseLibraryChunk) + ResponseLibraryChunkOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ResponseLibraryChunk.newBuilder() to construct. + private ResponseLibraryChunk(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ResponseLibraryChunk() { + chunkNumber_ = 0; + chunkCount_ = 0; + data_ = com.google.protobuf.ByteString.EMPTY; + size_ = 0; + fileHash_ = com.google.protobuf.ByteString.EMPTY; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private ResponseLibraryChunk(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + bitField0_ |= 0x00000001; + chunkNumber_ = input.readInt32(); + break; + } + case 16: { + bitField0_ |= 0x00000002; + chunkCount_ = input.readInt32(); + break; + } + case 26: { + bitField0_ |= 0x00000004; + data_ = input.readBytes(); + break; + } + case 32: { + bitField0_ |= 0x00000008; + size_ = input.readInt32(); + break; + } + case 42: { + bitField0_ |= 0x00000010; + fileHash_ = input.readBytes(); + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseLibraryChunk_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseLibraryChunk_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk.Builder.class); + } + + private int bitField0_; + public static final int CHUNK_NUMBER_FIELD_NUMBER = 1; + private int chunkNumber_; + + /** + * optional int32 chunk_number = 1; + */ + public boolean hasChunkNumber() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 chunk_number = 1; + */ + public int getChunkNumber() { + return chunkNumber_; + } + + public static final int CHUNK_COUNT_FIELD_NUMBER = 2; + private int chunkCount_; + + /** + * optional int32 chunk_count = 2; + */ + public boolean hasChunkCount() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + * optional int32 chunk_count = 2; + */ + public int getChunkCount() { + return chunkCount_; + } + + public static final int DATA_FIELD_NUMBER = 3; + private com.google.protobuf.ByteString data_; + + /** + * optional bytes data = 3; + */ + public boolean hasData() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + + /** + * optional bytes data = 3; + */ + public com.google.protobuf.ByteString getData() { + return data_; + } + + public static final int SIZE_FIELD_NUMBER = 4; + private int size_; + + /** + * optional int32 size = 4; + */ + public boolean hasSize() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + + /** + * optional int32 size = 4; + */ + public int getSize() { + return size_; + } + + public static final int FILE_HASH_FIELD_NUMBER = 5; + private com.google.protobuf.ByteString fileHash_; + + /** + * optional bytes file_hash = 5; + */ + public boolean hasFileHash() { + return ((bitField0_ & 0x00000010) == 0x00000010); + } + + /** + * optional bytes file_hash = 5; + */ + public com.google.protobuf.ByteString getFileHash() { + return fileHash_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeInt32(1, chunkNumber_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeInt32(2, chunkCount_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeBytes(3, data_); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + output.writeInt32(4, size_); + } + if (((bitField0_ & 0x00000010) == 0x00000010)) { + output.writeBytes(5, fileHash_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, chunkNumber_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(2, chunkCount_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.CodedOutputStream.computeBytesSize(3, data_); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(4, size_); + } + if (((bitField0_ & 0x00000010) == 0x00000010)) { + size += com.google.protobuf.CodedOutputStream.computeBytesSize(5, fileHash_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk other = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk) obj; + + boolean result = true; + result = result && (hasChunkNumber() == other.hasChunkNumber()); + if (hasChunkNumber()) { + result = result && (getChunkNumber() == other.getChunkNumber()); + } + result = result && (hasChunkCount() == other.hasChunkCount()); + if (hasChunkCount()) { + result = result && (getChunkCount() == other.getChunkCount()); + } + result = result && (hasData() == other.hasData()); + if (hasData()) { + result = result && getData().equals(other.getData()); + } + result = result && (hasSize() == other.hasSize()); + if (hasSize()) { + result = result && (getSize() == other.getSize()); + } + result = result && (hasFileHash() == other.hasFileHash()); + if (hasFileHash()) { + result = result && getFileHash().equals(other.getFileHash()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasChunkNumber()) { + hash = (37 * hash) + CHUNK_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getChunkNumber(); + } + if (hasChunkCount()) { + hash = (37 * hash) + CHUNK_COUNT_FIELD_NUMBER; + hash = (53 * hash) + getChunkCount(); + } + if (hasData()) { + hash = (37 * hash) + DATA_FIELD_NUMBER; + hash = (53 * hash) + getData().hashCode(); + } + if (hasSize()) { + hash = (37 * hash) + SIZE_FIELD_NUMBER; + hash = (53 * hash) + getSize(); + } + if (hasFileHash()) { + hash = (37 * hash) + FILE_HASH_FIELD_NUMBER; + hash = (53 * hash) + getFileHash().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code pb.remote.ResponseLibraryChunk} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.ResponseLibraryChunk) + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunkOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseLibraryChunk_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseLibraryChunk_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk.Builder.class); + } + + // Construct using de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + chunkNumber_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + chunkCount_ = 0; + bitField0_ = (bitField0_ & ~0x00000002); + data_ = com.google.protobuf.ByteString.EMPTY; + bitField0_ = (bitField0_ & ~0x00000004); + size_ = 0; + bitField0_ = (bitField0_ & ~0x00000008); + fileHash_ = com.google.protobuf.ByteString.EMPTY; + bitField0_ = (bitField0_ & ~0x00000010); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseLibraryChunk_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk.getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk result = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.chunkNumber_ = chunkNumber_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.chunkCount_ = chunkCount_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + result.data_ = data_; + if (((from_bitField0_ & 0x00000008) == 0x00000008)) { + to_bitField0_ |= 0x00000008; + } + result.size_ = size_; + if (((from_bitField0_ & 0x00000010) == 0x00000010)) { + to_bitField0_ |= 0x00000010; + } + result.fileHash_ = fileHash_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk) { + return mergeFrom( + (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk + .getDefaultInstance()) + return this; + if (other.hasChunkNumber()) { + setChunkNumber(other.getChunkNumber()); + } + if (other.hasChunkCount()) { + setChunkCount(other.getChunkCount()); + } + if (other.hasData()) { + setData(other.getData()); + } + if (other.hasSize()) { + setSize(other.getSize()); + } + if (other.hasFileHash()) { + setFileHash(other.getFileHash()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private int chunkNumber_; + + /** + * optional int32 chunk_number = 1; + */ + public boolean hasChunkNumber() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 chunk_number = 1; + */ + public int getChunkNumber() { + return chunkNumber_; + } + + /** + * optional int32 chunk_number = 1; + */ + public Builder setChunkNumber(int value) { + bitField0_ |= 0x00000001; + chunkNumber_ = value; + onChanged(); + return this; + } + + /** + * optional int32 chunk_number = 1; + */ + public Builder clearChunkNumber() { + bitField0_ = (bitField0_ & ~0x00000001); + chunkNumber_ = 0; + onChanged(); + return this; + } + + private int chunkCount_; + + /** + * optional int32 chunk_count = 2; + */ + public boolean hasChunkCount() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + * optional int32 chunk_count = 2; + */ + public int getChunkCount() { + return chunkCount_; + } + + /** + * optional int32 chunk_count = 2; + */ + public Builder setChunkCount(int value) { + bitField0_ |= 0x00000002; + chunkCount_ = value; + onChanged(); + return this; + } + + /** + * optional int32 chunk_count = 2; + */ + public Builder clearChunkCount() { + bitField0_ = (bitField0_ & ~0x00000002); + chunkCount_ = 0; + onChanged(); + return this; + } + + private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY; + + /** + * optional bytes data = 3; + */ + public boolean hasData() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + + /** + * optional bytes data = 3; + */ + public com.google.protobuf.ByteString getData() { + return data_; + } + + /** + * optional bytes data = 3; + */ + public Builder setData(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + data_ = value; + onChanged(); + return this; + } + + /** + * optional bytes data = 3; + */ + public Builder clearData() { + bitField0_ = (bitField0_ & ~0x00000004); + data_ = getDefaultInstance().getData(); + onChanged(); + return this; + } + + private int size_; + + /** + * optional int32 size = 4; + */ + public boolean hasSize() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + + /** + * optional int32 size = 4; + */ + public int getSize() { + return size_; + } + + /** + * optional int32 size = 4; + */ + public Builder setSize(int value) { + bitField0_ |= 0x00000008; + size_ = value; + onChanged(); + return this; + } + + /** + * optional int32 size = 4; + */ + public Builder clearSize() { + bitField0_ = (bitField0_ & ~0x00000008); + size_ = 0; + onChanged(); + return this; + } + + private com.google.protobuf.ByteString fileHash_ = com.google.protobuf.ByteString.EMPTY; + + /** + * optional bytes file_hash = 5; + */ + public boolean hasFileHash() { + return ((bitField0_ & 0x00000010) == 0x00000010); + } + + /** + * optional bytes file_hash = 5; + */ + public com.google.protobuf.ByteString getFileHash() { + return fileHash_; + } + + /** + * optional bytes file_hash = 5; + */ + public Builder setFileHash(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000010; + fileHash_ = value; + onChanged(); + return this; + } + + /** + * optional bytes file_hash = 5; + */ + public Builder clearFileHash() { + bitField0_ = (bitField0_ & ~0x00000010); + fileHash_ = getDefaultInstance().getFileHash(); + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.ResponseLibraryChunk) + } + + // @@protoc_insertion_point(class_scope:pb.remote.ResponseLibraryChunk) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ResponseLibraryChunk parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ResponseLibraryChunk(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ResponseSongOfferOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.ResponseSongOffer) + com.google.protobuf.MessageOrBuilder { + + /** + *
+         * true = client wants to download item
+         * 
+ * + * optional bool accepted = 1; + */ + boolean hasAccepted(); + + /** + *
+         * true = client wants to download item
+         * 
+ * + * optional bool accepted = 1; + */ + boolean getAccepted(); + } + + /** + * Protobuf type {@code pb.remote.ResponseSongOffer} + */ + public static final class ResponseSongOffer extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.ResponseSongOffer) + ResponseSongOfferOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ResponseSongOffer.newBuilder() to construct. + private ResponseSongOffer(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ResponseSongOffer() { + accepted_ = false; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private ResponseSongOffer(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + bitField0_ |= 0x00000001; + accepted_ = input.readBool(); + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseSongOffer_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseSongOffer_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer.Builder.class); + } + + private int bitField0_; + public static final int ACCEPTED_FIELD_NUMBER = 1; + private boolean accepted_; + + /** + *
+         * true = client wants to download item
+         * 
+ * + * optional bool accepted = 1; + */ + public boolean hasAccepted() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + *
+         * true = client wants to download item
+         * 
+ * + * optional bool accepted = 1; + */ + public boolean getAccepted() { + return accepted_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeBool(1, accepted_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(1, accepted_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer other = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer) obj; + + boolean result = true; + result = result && (hasAccepted() == other.hasAccepted()); + if (hasAccepted()) { + result = result && (getAccepted() == other.getAccepted()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasAccepted()) { + hash = (37 * hash) + ACCEPTED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getAccepted()); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code pb.remote.ResponseSongOffer} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.ResponseSongOffer) + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOfferOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseSongOffer_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseSongOffer_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer.Builder.class); + } + + // Construct using de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + accepted_ = false; + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseSongOffer_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer.getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer result = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.accepted_ = accepted_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer) { + return mergeFrom((de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer + .getDefaultInstance()) + return this; + if (other.hasAccepted()) { + setAccepted(other.getAccepted()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private boolean accepted_; + + /** + *
+             * true = client wants to download item
+             * 
+ * + * optional bool accepted = 1; + */ + public boolean hasAccepted() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + *
+             * true = client wants to download item
+             * 
+ * + * optional bool accepted = 1; + */ + public boolean getAccepted() { + return accepted_; + } + + /** + *
+             * true = client wants to download item
+             * 
+ * + * optional bool accepted = 1; + */ + public Builder setAccepted(boolean value) { + bitField0_ |= 0x00000001; + accepted_ = value; + onChanged(); + return this; + } + + /** + *
+             * true = client wants to download item
+             * 
+ * + * optional bool accepted = 1; + */ + public Builder clearAccepted() { + bitField0_ = (bitField0_ & ~0x00000001); + accepted_ = false; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.ResponseSongOffer) + } + + // @@protoc_insertion_point(class_scope:pb.remote.ResponseSongOffer) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ResponseSongOffer parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ResponseSongOffer(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface RequestRateSongOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.RequestRateSong) + com.google.protobuf.MessageOrBuilder { + + /** + *
+         * 0 to 1
+         * 
+ * + * optional float rating = 1; + */ + boolean hasRating(); + + /** + *
+         * 0 to 1
+         * 
+ * + * optional float rating = 1; + */ + float getRating(); + } + + /** + * Protobuf type {@code pb.remote.RequestRateSong} + */ + public static final class RequestRateSong extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.RequestRateSong) + RequestRateSongOrBuilder { + private static final long serialVersionUID = 0L; + + // Use RequestRateSong.newBuilder() to construct. + private RequestRateSong(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private RequestRateSong() { + rating_ = 0F; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private RequestRateSong(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 13: { + bitField0_ |= 0x00000001; + rating_ = input.readFloat(); + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestRateSong_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestRateSong_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong.Builder.class); + } + + private int bitField0_; + public static final int RATING_FIELD_NUMBER = 1; + private float rating_; + + /** + *
+         * 0 to 1
+         * 
+ * + * optional float rating = 1; + */ + public boolean hasRating() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + *
+         * 0 to 1
+         * 
+ * + * optional float rating = 1; + */ + public float getRating() { + return rating_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeFloat(1, rating_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeFloatSize(1, rating_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong other = (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong) obj; + + boolean result = true; + result = result && (hasRating() == other.hasRating()); + if (hasRating()) { + result = result && (java.lang.Float.floatToIntBits(getRating()) == java.lang.Float + .floatToIntBits(other.getRating())); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasRating()) { + hash = (37 * hash) + RATING_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits(getRating()); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code pb.remote.RequestRateSong} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.RequestRateSong) + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSongOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestRateSong_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestRateSong_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong.Builder.class); + } + + // Construct using de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + rating_ = 0F; + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestRateSong_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong.getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong result = new de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.rating_ = rating_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong) { + return mergeFrom((de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong + .getDefaultInstance()) + return this; + if (other.hasRating()) { + setRating(other.getRating()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private float rating_; + + /** + *
+             * 0 to 1
+             * 
+ * + * optional float rating = 1; + */ + public boolean hasRating() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + *
+             * 0 to 1
+             * 
+ * + * optional float rating = 1; + */ + public float getRating() { + return rating_; + } + + /** + *
+             * 0 to 1
+             * 
+ * + * optional float rating = 1; + */ + public Builder setRating(float value) { + bitField0_ |= 0x00000001; + rating_ = value; + onChanged(); + return this; + } + + /** + *
+             * 0 to 1
+             * 
+ * + * optional float rating = 1; + */ + public Builder clearRating() { + bitField0_ = (bitField0_ & ~0x00000001); + rating_ = 0F; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.RequestRateSong) + } + + // @@protoc_insertion_point(class_scope:pb.remote.RequestRateSong) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public RequestRateSong parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new RequestRateSong(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ResponseDownloadTotalSizeOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.ResponseDownloadTotalSize) + com.google.protobuf.MessageOrBuilder { + + /** + * optional int32 total_size = 1; + */ + boolean hasTotalSize(); + + /** + * optional int32 total_size = 1; + */ + int getTotalSize(); + + /** + * optional int32 file_count = 2; + */ + boolean hasFileCount(); + + /** + * optional int32 file_count = 2; + */ + int getFileCount(); + } + + /** + * Protobuf type {@code pb.remote.ResponseDownloadTotalSize} + */ + public static final class ResponseDownloadTotalSize extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.ResponseDownloadTotalSize) + ResponseDownloadTotalSizeOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ResponseDownloadTotalSize.newBuilder() to construct. + private ResponseDownloadTotalSize(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ResponseDownloadTotalSize() { + totalSize_ = 0; + fileCount_ = 0; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private ResponseDownloadTotalSize(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + bitField0_ |= 0x00000001; + totalSize_ = input.readInt32(); + break; + } + case 16: { + bitField0_ |= 0x00000002; + fileCount_ = input.readInt32(); + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseDownloadTotalSize_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseDownloadTotalSize_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize.Builder.class); + } + + private int bitField0_; + public static final int TOTAL_SIZE_FIELD_NUMBER = 1; + private int totalSize_; + + /** + * optional int32 total_size = 1; + */ + public boolean hasTotalSize() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 total_size = 1; + */ + public int getTotalSize() { + return totalSize_; + } + + public static final int FILE_COUNT_FIELD_NUMBER = 2; + private int fileCount_; + + /** + * optional int32 file_count = 2; + */ + public boolean hasFileCount() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + * optional int32 file_count = 2; + */ + public int getFileCount() { + return fileCount_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeInt32(1, totalSize_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeInt32(2, fileCount_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, totalSize_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(2, fileCount_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize other = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize) obj; + + boolean result = true; + result = result && (hasTotalSize() == other.hasTotalSize()); + if (hasTotalSize()) { + result = result && (getTotalSize() == other.getTotalSize()); + } + result = result && (hasFileCount() == other.hasFileCount()); + if (hasFileCount()) { + result = result && (getFileCount() == other.getFileCount()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasTotalSize()) { + hash = (37 * hash) + TOTAL_SIZE_FIELD_NUMBER; + hash = (53 * hash) + getTotalSize(); + } + if (hasFileCount()) { + hash = (37 * hash) + FILE_COUNT_FIELD_NUMBER; + hash = (53 * hash) + getFileCount(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code pb.remote.ResponseDownloadTotalSize} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.ResponseDownloadTotalSize) + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSizeOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseDownloadTotalSize_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseDownloadTotalSize_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize.Builder.class); + } + + // Construct using + // de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + totalSize_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + fileCount_ = 0; + bitField0_ = (bitField0_ & ~0x00000002); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseDownloadTotalSize_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize + .getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize result = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.totalSize_ = totalSize_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.fileCount_ = fileCount_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize) { + return mergeFrom( + (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize + .getDefaultInstance()) + return this; + if (other.hasTotalSize()) { + setTotalSize(other.getTotalSize()); + } + if (other.hasFileCount()) { + setFileCount(other.getFileCount()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private int totalSize_; + + /** + * optional int32 total_size = 1; + */ + public boolean hasTotalSize() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 total_size = 1; + */ + public int getTotalSize() { + return totalSize_; + } + + /** + * optional int32 total_size = 1; + */ + public Builder setTotalSize(int value) { + bitField0_ |= 0x00000001; + totalSize_ = value; + onChanged(); + return this; + } + + /** + * optional int32 total_size = 1; + */ + public Builder clearTotalSize() { + bitField0_ = (bitField0_ & ~0x00000001); + totalSize_ = 0; + onChanged(); + return this; + } + + private int fileCount_; + + /** + * optional int32 file_count = 2; + */ + public boolean hasFileCount() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + * optional int32 file_count = 2; + */ + public int getFileCount() { + return fileCount_; + } + + /** + * optional int32 file_count = 2; + */ + public Builder setFileCount(int value) { + bitField0_ |= 0x00000002; + fileCount_ = value; + onChanged(); + return this; + } + + /** + * optional int32 file_count = 2; + */ + public Builder clearFileCount() { + bitField0_ = (bitField0_ & ~0x00000002); + fileCount_ = 0; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.ResponseDownloadTotalSize) + } + + // @@protoc_insertion_point(class_scope:pb.remote.ResponseDownloadTotalSize) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ResponseDownloadTotalSize parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ResponseDownloadTotalSize(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface RequestGlobalSearchOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.RequestGlobalSearch) + com.google.protobuf.MessageOrBuilder { + + /** + * optional string query = 1; + */ + boolean hasQuery(); + + /** + * optional string query = 1; + */ + java.lang.String getQuery(); + + /** + * optional string query = 1; + */ + com.google.protobuf.ByteString getQueryBytes(); + } + + /** + * Protobuf type {@code pb.remote.RequestGlobalSearch} + */ + public static final class RequestGlobalSearch extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.RequestGlobalSearch) + RequestGlobalSearchOrBuilder { + private static final long serialVersionUID = 0L; + + // Use RequestGlobalSearch.newBuilder() to construct. + private RequestGlobalSearch(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private RequestGlobalSearch() { + query_ = ""; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private RequestGlobalSearch(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.google.protobuf.ByteString bs = input.readBytes(); + bitField0_ |= 0x00000001; + query_ = bs; + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestGlobalSearch_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestGlobalSearch_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch.Builder.class); + } + + private int bitField0_; + public static final int QUERY_FIELD_NUMBER = 1; + private volatile java.lang.Object query_; + + /** + * optional string query = 1; + */ + public boolean hasQuery() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional string query = 1; + */ + public java.lang.String getQuery() { + java.lang.Object ref = query_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + query_ = s; + } + return s; + } + } + + /** + * optional string query = 1; + */ + public com.google.protobuf.ByteString getQueryBytes() { + java.lang.Object ref = query_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + query_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, query_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, query_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch other = (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch) obj; + + boolean result = true; + result = result && (hasQuery() == other.hasQuery()); + if (hasQuery()) { + result = result && getQuery().equals(other.getQuery()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasQuery()) { + hash = (37 * hash) + QUERY_FIELD_NUMBER; + hash = (53 * hash) + getQuery().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code pb.remote.RequestGlobalSearch} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.RequestGlobalSearch) + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearchOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestGlobalSearch_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestGlobalSearch_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch.Builder.class); + } + + // Construct using de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + query_ = ""; + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_RequestGlobalSearch_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch.getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch result = new de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.query_ = query_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch) { + return mergeFrom( + (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch + .getDefaultInstance()) + return this; + if (other.hasQuery()) { + bitField0_ |= 0x00000001; + query_ = other.query_; + onChanged(); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private java.lang.Object query_ = ""; + + /** + * optional string query = 1; + */ + public boolean hasQuery() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional string query = 1; + */ + public java.lang.String getQuery() { + java.lang.Object ref = query_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + query_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * optional string query = 1; + */ + public com.google.protobuf.ByteString getQueryBytes() { + java.lang.Object ref = query_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString + .copyFromUtf8((java.lang.String) ref); + query_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * optional string query = 1; + */ + public Builder setQuery(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + query_ = value; + onChanged(); + return this; + } + + /** + * optional string query = 1; + */ + public Builder clearQuery() { + bitField0_ = (bitField0_ & ~0x00000001); + query_ = getDefaultInstance().getQuery(); + onChanged(); + return this; + } + + /** + * optional string query = 1; + */ + public Builder setQueryBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + query_ = value; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.RequestGlobalSearch) + } + + // @@protoc_insertion_point(class_scope:pb.remote.RequestGlobalSearch) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public RequestGlobalSearch parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new RequestGlobalSearch(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ResponseGlobalSearchOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.ResponseGlobalSearch) + com.google.protobuf.MessageOrBuilder { + + /** + * optional int32 id = 1; + */ + boolean hasId(); + + /** + * optional int32 id = 1; + */ + int getId(); + + /** + * optional string query = 2; + */ + boolean hasQuery(); + + /** + * optional string query = 2; + */ + java.lang.String getQuery(); + + /** + * optional string query = 2; + */ + com.google.protobuf.ByteString getQueryBytes(); + + /** + * optional string search_provider = 3; + */ + boolean hasSearchProvider(); + + /** + * optional string search_provider = 3; + */ + java.lang.String getSearchProvider(); + + /** + * optional string search_provider = 3; + */ + com.google.protobuf.ByteString getSearchProviderBytes(); + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + java.util.List getSongMetadataList(); + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata getSongMetadata(int index); + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + int getSongMetadataCount(); + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + java.util.List getSongMetadataOrBuilderList(); + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadataOrBuilder getSongMetadataOrBuilder( + int index); + + /** + * optional bytes search_provider_icon = 5; + */ + boolean hasSearchProviderIcon(); + + /** + * optional bytes search_provider_icon = 5; + */ + com.google.protobuf.ByteString getSearchProviderIcon(); + } + + /** + * Protobuf type {@code pb.remote.ResponseGlobalSearch} + */ + public static final class ResponseGlobalSearch extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.ResponseGlobalSearch) + ResponseGlobalSearchOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ResponseGlobalSearch.newBuilder() to construct. + private ResponseGlobalSearch(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ResponseGlobalSearch() { + id_ = 0; + query_ = ""; + searchProvider_ = ""; + songMetadata_ = java.util.Collections.emptyList(); + searchProviderIcon_ = com.google.protobuf.ByteString.EMPTY; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private ResponseGlobalSearch(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + bitField0_ |= 0x00000001; + id_ = input.readInt32(); + break; + } + case 18: { + com.google.protobuf.ByteString bs = input.readBytes(); + bitField0_ |= 0x00000002; + query_ = bs; + break; + } + case 26: { + com.google.protobuf.ByteString bs = input.readBytes(); + bitField0_ |= 0x00000004; + searchProvider_ = bs; + break; + } + case 34: { + if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) { + songMetadata_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000008; + } + songMetadata_.add(input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.PARSER, + extensionRegistry)); + break; + } + case 42: { + bitField0_ |= 0x00000008; + searchProviderIcon_ = input.readBytes(); + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) { + songMetadata_ = java.util.Collections.unmodifiableList(songMetadata_); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseGlobalSearch_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseGlobalSearch_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch.Builder.class); + } + + private int bitField0_; + public static final int ID_FIELD_NUMBER = 1; + private int id_; + + /** + * optional int32 id = 1; + */ + public boolean hasId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 id = 1; + */ + public int getId() { + return id_; + } + + public static final int QUERY_FIELD_NUMBER = 2; + private volatile java.lang.Object query_; + + /** + * optional string query = 2; + */ + public boolean hasQuery() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + * optional string query = 2; + */ + public java.lang.String getQuery() { + java.lang.Object ref = query_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + query_ = s; + } + return s; + } + } + + /** + * optional string query = 2; + */ + public com.google.protobuf.ByteString getQueryBytes() { + java.lang.Object ref = query_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + query_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SEARCH_PROVIDER_FIELD_NUMBER = 3; + private volatile java.lang.Object searchProvider_; + + /** + * optional string search_provider = 3; + */ + public boolean hasSearchProvider() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + + /** + * optional string search_provider = 3; + */ + public java.lang.String getSearchProvider() { + java.lang.Object ref = searchProvider_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + searchProvider_ = s; + } + return s; + } + } + + /** + * optional string search_provider = 3; + */ + public com.google.protobuf.ByteString getSearchProviderBytes() { + java.lang.Object ref = searchProvider_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + searchProvider_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SONG_METADATA_FIELD_NUMBER = 4; + private java.util.List songMetadata_; + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + public java.util.List getSongMetadataList() { + return songMetadata_; + } + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + public java.util.List getSongMetadataOrBuilderList() { + return songMetadata_; + } + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + public int getSongMetadataCount() { + return songMetadata_.size(); + } + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata getSongMetadata(int index) { + return songMetadata_.get(index); + } + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadataOrBuilder getSongMetadataOrBuilder( + int index) { + return songMetadata_.get(index); + } + + public static final int SEARCH_PROVIDER_ICON_FIELD_NUMBER = 5; + private com.google.protobuf.ByteString searchProviderIcon_; + + /** + * optional bytes search_provider_icon = 5; + */ + public boolean hasSearchProviderIcon() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + + /** + * optional bytes search_provider_icon = 5; + */ + public com.google.protobuf.ByteString getSearchProviderIcon() { + return searchProviderIcon_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeInt32(1, id_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, query_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, searchProvider_); + } + for (int i = 0; i < songMetadata_.size(); i++) { + output.writeMessage(4, songMetadata_.get(i)); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + output.writeBytes(5, searchProviderIcon_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, id_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, query_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, searchProvider_); + } + for (int i = 0; i < songMetadata_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, songMetadata_.get(i)); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + size += com.google.protobuf.CodedOutputStream.computeBytesSize(5, searchProviderIcon_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch other = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch) obj; + + boolean result = true; + result = result && (hasId() == other.hasId()); + if (hasId()) { + result = result && (getId() == other.getId()); + } + result = result && (hasQuery() == other.hasQuery()); + if (hasQuery()) { + result = result && getQuery().equals(other.getQuery()); + } + result = result && (hasSearchProvider() == other.hasSearchProvider()); + if (hasSearchProvider()) { + result = result && getSearchProvider().equals(other.getSearchProvider()); + } + result = result && getSongMetadataList().equals(other.getSongMetadataList()); + result = result && (hasSearchProviderIcon() == other.hasSearchProviderIcon()); + if (hasSearchProviderIcon()) { + result = result && getSearchProviderIcon().equals(other.getSearchProviderIcon()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasId()) { + hash = (37 * hash) + ID_FIELD_NUMBER; + hash = (53 * hash) + getId(); + } + if (hasQuery()) { + hash = (37 * hash) + QUERY_FIELD_NUMBER; + hash = (53 * hash) + getQuery().hashCode(); + } + if (hasSearchProvider()) { + hash = (37 * hash) + SEARCH_PROVIDER_FIELD_NUMBER; + hash = (53 * hash) + getSearchProvider().hashCode(); + } + if (getSongMetadataCount() > 0) { + hash = (37 * hash) + SONG_METADATA_FIELD_NUMBER; + hash = (53 * hash) + getSongMetadataList().hashCode(); + } + if (hasSearchProviderIcon()) { + hash = (37 * hash) + SEARCH_PROVIDER_ICON_FIELD_NUMBER; + hash = (53 * hash) + getSearchProviderIcon().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code pb.remote.ResponseGlobalSearch} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.ResponseGlobalSearch) + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseGlobalSearch_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseGlobalSearch_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch.Builder.class); + } + + // Construct using de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getSongMetadataFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + id_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + query_ = ""; + bitField0_ = (bitField0_ & ~0x00000002); + searchProvider_ = ""; + bitField0_ = (bitField0_ & ~0x00000004); + if (songMetadataBuilder_ == null) { + songMetadata_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + } else { + songMetadataBuilder_.clear(); + } + searchProviderIcon_ = com.google.protobuf.ByteString.EMPTY; + bitField0_ = (bitField0_ & ~0x00000010); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseGlobalSearch_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch.getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch result = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.id_ = id_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.query_ = query_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + result.searchProvider_ = searchProvider_; + if (songMetadataBuilder_ == null) { + if (((bitField0_ & 0x00000008) == 0x00000008)) { + songMetadata_ = java.util.Collections.unmodifiableList(songMetadata_); + bitField0_ = (bitField0_ & ~0x00000008); + } + result.songMetadata_ = songMetadata_; + } else { + result.songMetadata_ = songMetadataBuilder_.build(); + } + if (((from_bitField0_ & 0x00000010) == 0x00000010)) { + to_bitField0_ |= 0x00000008; + } + result.searchProviderIcon_ = searchProviderIcon_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch) { + return mergeFrom( + (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch + .getDefaultInstance()) + return this; + if (other.hasId()) { + setId(other.getId()); + } + if (other.hasQuery()) { + bitField0_ |= 0x00000002; + query_ = other.query_; + onChanged(); + } + if (other.hasSearchProvider()) { + bitField0_ |= 0x00000004; + searchProvider_ = other.searchProvider_; + onChanged(); + } + if (songMetadataBuilder_ == null) { + if (!other.songMetadata_.isEmpty()) { + if (songMetadata_.isEmpty()) { + songMetadata_ = other.songMetadata_; + bitField0_ = (bitField0_ & ~0x00000008); + } else { + ensureSongMetadataIsMutable(); + songMetadata_.addAll(other.songMetadata_); + } + onChanged(); + } + } else { + if (!other.songMetadata_.isEmpty()) { + if (songMetadataBuilder_.isEmpty()) { + songMetadataBuilder_.dispose(); + songMetadataBuilder_ = null; + songMetadata_ = other.songMetadata_; + bitField0_ = (bitField0_ & ~0x00000008); + songMetadataBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders + ? getSongMetadataFieldBuilder() + : null; + } else { + songMetadataBuilder_.addAllMessages(other.songMetadata_); + } + } + } + if (other.hasSearchProviderIcon()) { + setSearchProviderIcon(other.getSearchProviderIcon()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private int id_; + + /** + * optional int32 id = 1; + */ + public boolean hasId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 id = 1; + */ + public int getId() { + return id_; + } + + /** + * optional int32 id = 1; + */ + public Builder setId(int value) { + bitField0_ |= 0x00000001; + id_ = value; + onChanged(); + return this; + } + + /** + * optional int32 id = 1; + */ + public Builder clearId() { + bitField0_ = (bitField0_ & ~0x00000001); + id_ = 0; + onChanged(); + return this; + } + + private java.lang.Object query_ = ""; + + /** + * optional string query = 2; + */ + public boolean hasQuery() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + * optional string query = 2; + */ + public java.lang.String getQuery() { + java.lang.Object ref = query_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + query_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * optional string query = 2; + */ + public com.google.protobuf.ByteString getQueryBytes() { + java.lang.Object ref = query_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString + .copyFromUtf8((java.lang.String) ref); + query_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * optional string query = 2; + */ + public Builder setQuery(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + query_ = value; + onChanged(); + return this; + } + + /** + * optional string query = 2; + */ + public Builder clearQuery() { + bitField0_ = (bitField0_ & ~0x00000002); + query_ = getDefaultInstance().getQuery(); + onChanged(); + return this; + } + + /** + * optional string query = 2; + */ + public Builder setQueryBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + query_ = value; + onChanged(); + return this; + } + + private java.lang.Object searchProvider_ = ""; + + /** + * optional string search_provider = 3; + */ + public boolean hasSearchProvider() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + + /** + * optional string search_provider = 3; + */ + public java.lang.String getSearchProvider() { + java.lang.Object ref = searchProvider_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + searchProvider_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * optional string search_provider = 3; + */ + public com.google.protobuf.ByteString getSearchProviderBytes() { + java.lang.Object ref = searchProvider_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString + .copyFromUtf8((java.lang.String) ref); + searchProvider_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * optional string search_provider = 3; + */ + public Builder setSearchProvider(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + searchProvider_ = value; + onChanged(); + return this; + } + + /** + * optional string search_provider = 3; + */ + public Builder clearSearchProvider() { + bitField0_ = (bitField0_ & ~0x00000004); + searchProvider_ = getDefaultInstance().getSearchProvider(); + onChanged(); + return this; + } + + /** + * optional string search_provider = 3; + */ + public Builder setSearchProviderBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + searchProvider_ = value; + onChanged(); + return this; + } + + private java.util.List songMetadata_ = java.util.Collections + .emptyList(); + + private void ensureSongMetadataIsMutable() { + if (!((bitField0_ & 0x00000008) == 0x00000008)) { + songMetadata_ = new java.util.ArrayList( + songMetadata_); + bitField0_ |= 0x00000008; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 songMetadataBuilder_; + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + public java.util.List getSongMetadataList() { + if (songMetadataBuilder_ == null) { + return java.util.Collections.unmodifiableList(songMetadata_); + } else { + return songMetadataBuilder_.getMessageList(); + } + } + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + public int getSongMetadataCount() { + if (songMetadataBuilder_ == null) { + return songMetadata_.size(); + } else { + return songMetadataBuilder_.getCount(); + } + } + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata getSongMetadata(int index) { + if (songMetadataBuilder_ == null) { + return songMetadata_.get(index); + } else { + return songMetadataBuilder_.getMessage(index); + } + } + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + public Builder setSongMetadata(int index, + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata value) { + if (songMetadataBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSongMetadataIsMutable(); + songMetadata_.set(index, value); + onChanged(); + } else { + songMetadataBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + public Builder setSongMetadata(int index, + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Builder builderForValue) { + if (songMetadataBuilder_ == null) { + ensureSongMetadataIsMutable(); + songMetadata_.set(index, builderForValue.build()); + onChanged(); + } else { + songMetadataBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + public Builder addSongMetadata(de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata value) { + if (songMetadataBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSongMetadataIsMutable(); + songMetadata_.add(value); + onChanged(); + } else { + songMetadataBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + public Builder addSongMetadata(int index, + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata value) { + if (songMetadataBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSongMetadataIsMutable(); + songMetadata_.add(index, value); + onChanged(); + } else { + songMetadataBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + public Builder addSongMetadata( + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Builder builderForValue) { + if (songMetadataBuilder_ == null) { + ensureSongMetadataIsMutable(); + songMetadata_.add(builderForValue.build()); + onChanged(); + } else { + songMetadataBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + public Builder addSongMetadata(int index, + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Builder builderForValue) { + if (songMetadataBuilder_ == null) { + ensureSongMetadataIsMutable(); + songMetadata_.add(index, builderForValue.build()); + onChanged(); + } else { + songMetadataBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + public Builder addAllSongMetadata( + java.lang.Iterable values) { + if (songMetadataBuilder_ == null) { + ensureSongMetadataIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, songMetadata_); + onChanged(); + } else { + songMetadataBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + public Builder clearSongMetadata() { + if (songMetadataBuilder_ == null) { + songMetadata_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + } else { + songMetadataBuilder_.clear(); + } + return this; + } + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + public Builder removeSongMetadata(int index) { + if (songMetadataBuilder_ == null) { + ensureSongMetadataIsMutable(); + songMetadata_.remove(index); + onChanged(); + } else { + songMetadataBuilder_.remove(index); + } + return this; + } + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Builder getSongMetadataBuilder( + int index) { + return getSongMetadataFieldBuilder().getBuilder(index); + } + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadataOrBuilder getSongMetadataOrBuilder( + int index) { + if (songMetadataBuilder_ == null) { + return songMetadata_.get(index); + } else { + return songMetadataBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + public java.util.List getSongMetadataOrBuilderList() { + if (songMetadataBuilder_ != null) { + return songMetadataBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(songMetadata_); + } + } + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Builder addSongMetadataBuilder() { + return getSongMetadataFieldBuilder().addBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.getDefaultInstance()); + } + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.Builder addSongMetadataBuilder( + int index) { + return getSongMetadataFieldBuilder().addBuilder(index, + de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata.getDefaultInstance()); + } + + /** + * repeated .pb.remote.SongMetadata song_metadata = 4; + */ + public java.util.List getSongMetadataBuilderList() { + return getSongMetadataFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getSongMetadataFieldBuilder() { + if (songMetadataBuilder_ == null) { + songMetadataBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3( + songMetadata_, ((bitField0_ & 0x00000008) == 0x00000008), getParentForChildren(), + isClean()); + songMetadata_ = null; + } + return songMetadataBuilder_; + } + + private com.google.protobuf.ByteString searchProviderIcon_ = com.google.protobuf.ByteString.EMPTY; + + /** + * optional bytes search_provider_icon = 5; + */ + public boolean hasSearchProviderIcon() { + return ((bitField0_ & 0x00000010) == 0x00000010); + } + + /** + * optional bytes search_provider_icon = 5; + */ + public com.google.protobuf.ByteString getSearchProviderIcon() { + return searchProviderIcon_; + } + + /** + * optional bytes search_provider_icon = 5; + */ + public Builder setSearchProviderIcon(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000010; + searchProviderIcon_ = value; + onChanged(); + return this; + } + + /** + * optional bytes search_provider_icon = 5; + */ + public Builder clearSearchProviderIcon() { + bitField0_ = (bitField0_ & ~0x00000010); + searchProviderIcon_ = getDefaultInstance().getSearchProviderIcon(); + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.ResponseGlobalSearch) + } + + // @@protoc_insertion_point(class_scope:pb.remote.ResponseGlobalSearch) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ResponseGlobalSearch parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ResponseGlobalSearch(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ResponseTranscoderStatusOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.ResponseTranscoderStatus) + com.google.protobuf.MessageOrBuilder { + + /** + * optional int32 processed = 1; + */ + boolean hasProcessed(); + + /** + * optional int32 processed = 1; + */ + int getProcessed(); + + /** + * optional int32 total = 2; + */ + boolean hasTotal(); + + /** + * optional int32 total = 2; + */ + int getTotal(); + } + + /** + * Protobuf type {@code pb.remote.ResponseTranscoderStatus} + */ + public static final class ResponseTranscoderStatus extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.ResponseTranscoderStatus) + ResponseTranscoderStatusOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ResponseTranscoderStatus.newBuilder() to construct. + private ResponseTranscoderStatus(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ResponseTranscoderStatus() { + processed_ = 0; + total_ = 0; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private ResponseTranscoderStatus(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + bitField0_ |= 0x00000001; + processed_ = input.readInt32(); + break; + } + case 16: { + bitField0_ |= 0x00000002; + total_ = input.readInt32(); + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseTranscoderStatus_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseTranscoderStatus_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus.Builder.class); + } + + private int bitField0_; + public static final int PROCESSED_FIELD_NUMBER = 1; + private int processed_; + + /** + * optional int32 processed = 1; + */ + public boolean hasProcessed() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 processed = 1; + */ + public int getProcessed() { + return processed_; + } + + public static final int TOTAL_FIELD_NUMBER = 2; + private int total_; + + /** + * optional int32 total = 2; + */ + public boolean hasTotal() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + * optional int32 total = 2; + */ + public int getTotal() { + return total_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeInt32(1, processed_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeInt32(2, total_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, processed_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(2, total_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus other = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus) obj; + + boolean result = true; + result = result && (hasProcessed() == other.hasProcessed()); + if (hasProcessed()) { + result = result && (getProcessed() == other.getProcessed()); + } + result = result && (hasTotal() == other.hasTotal()); + if (hasTotal()) { + result = result && (getTotal() == other.getTotal()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasProcessed()) { + hash = (37 * hash) + PROCESSED_FIELD_NUMBER; + hash = (53 * hash) + getProcessed(); + } + if (hasTotal()) { + hash = (37 * hash) + TOTAL_FIELD_NUMBER; + hash = (53 * hash) + getTotal(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code pb.remote.ResponseTranscoderStatus} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.ResponseTranscoderStatus) + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatusOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseTranscoderStatus_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseTranscoderStatus_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus.Builder.class); + } + + // Construct using + // de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + processed_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + total_ = 0; + bitField0_ = (bitField0_ & ~0x00000002); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseTranscoderStatus_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus + .getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus result = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.processed_ = processed_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.total_ = total_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus) { + return mergeFrom( + (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus + .getDefaultInstance()) + return this; + if (other.hasProcessed()) { + setProcessed(other.getProcessed()); + } + if (other.hasTotal()) { + setTotal(other.getTotal()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private int processed_; + + /** + * optional int32 processed = 1; + */ + public boolean hasProcessed() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 processed = 1; + */ + public int getProcessed() { + return processed_; + } + + /** + * optional int32 processed = 1; + */ + public Builder setProcessed(int value) { + bitField0_ |= 0x00000001; + processed_ = value; + onChanged(); + return this; + } + + /** + * optional int32 processed = 1; + */ + public Builder clearProcessed() { + bitField0_ = (bitField0_ & ~0x00000001); + processed_ = 0; + onChanged(); + return this; + } + + private int total_; + + /** + * optional int32 total = 2; + */ + public boolean hasTotal() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + * optional int32 total = 2; + */ + public int getTotal() { + return total_; + } + + /** + * optional int32 total = 2; + */ + public Builder setTotal(int value) { + bitField0_ |= 0x00000002; + total_ = value; + onChanged(); + return this; + } + + /** + * optional int32 total = 2; + */ + public Builder clearTotal() { + bitField0_ = (bitField0_ & ~0x00000002); + total_ = 0; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.ResponseTranscoderStatus) + } + + // @@protoc_insertion_point(class_scope:pb.remote.ResponseTranscoderStatus) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ResponseTranscoderStatus parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ResponseTranscoderStatus(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ResponseGlobalSearchStatusOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.ResponseGlobalSearchStatus) + com.google.protobuf.MessageOrBuilder { + + /** + * optional int32 id = 1; + */ + boolean hasId(); + + /** + * optional int32 id = 1; + */ + int getId(); + + /** + * optional string query = 2; + */ + boolean hasQuery(); + + /** + * optional string query = 2; + */ + java.lang.String getQuery(); + + /** + * optional string query = 2; + */ + com.google.protobuf.ByteString getQueryBytes(); + + /** + * optional .pb.remote.GlobalSearchStatus status = 3; + */ + boolean hasStatus(); + + /** + * optional .pb.remote.GlobalSearchStatus status = 3; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.GlobalSearchStatus getStatus(); + } + + /** + * Protobuf type {@code pb.remote.ResponseGlobalSearchStatus} + */ + public static final class ResponseGlobalSearchStatus extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.ResponseGlobalSearchStatus) + ResponseGlobalSearchStatusOrBuilder { + private static final long serialVersionUID = 0L; + + // Use ResponseGlobalSearchStatus.newBuilder() to construct. + private ResponseGlobalSearchStatus(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ResponseGlobalSearchStatus() { + id_ = 0; + query_ = ""; + status_ = 1; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private ResponseGlobalSearchStatus(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + bitField0_ |= 0x00000001; + id_ = input.readInt32(); + break; + } + case 18: { + com.google.protobuf.ByteString bs = input.readBytes(); + bitField0_ |= 0x00000002; + query_ = bs; + break; + } + case 24: { + int rawValue = input.readEnum(); + @SuppressWarnings("deprecation") + de.qspool.clementineremote.backend.pb.ClementineRemote.GlobalSearchStatus value = de.qspool.clementineremote.backend.pb.ClementineRemote.GlobalSearchStatus + .valueOf(rawValue); + if (value == null) { + unknownFields.mergeVarintField(3, rawValue); + } else { + bitField0_ |= 0x00000004; + status_ = rawValue; + } + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseGlobalSearchStatus_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseGlobalSearchStatus_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus.Builder.class); + } + + private int bitField0_; + public static final int ID_FIELD_NUMBER = 1; + private int id_; + + /** + * optional int32 id = 1; + */ + public boolean hasId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 id = 1; + */ + public int getId() { + return id_; + } + + public static final int QUERY_FIELD_NUMBER = 2; + private volatile java.lang.Object query_; + + /** + * optional string query = 2; + */ + public boolean hasQuery() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + * optional string query = 2; + */ + public java.lang.String getQuery() { + java.lang.Object ref = query_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + query_ = s; + } + return s; + } + } + + /** + * optional string query = 2; + */ + public com.google.protobuf.ByteString getQueryBytes() { + java.lang.Object ref = query_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + query_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int STATUS_FIELD_NUMBER = 3; + private int status_; + + /** + * optional .pb.remote.GlobalSearchStatus status = 3; + */ + public boolean hasStatus() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + + /** + * optional .pb.remote.GlobalSearchStatus status = 3; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.GlobalSearchStatus getStatus() { + @SuppressWarnings("deprecation") + de.qspool.clementineremote.backend.pb.ClementineRemote.GlobalSearchStatus result = de.qspool.clementineremote.backend.pb.ClementineRemote.GlobalSearchStatus + .valueOf(status_); + return result == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.GlobalSearchStatus.GlobalSearchStarted + : result; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeInt32(1, id_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, query_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeEnum(3, status_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, id_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, query_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(3, status_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus other = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus) obj; + + boolean result = true; + result = result && (hasId() == other.hasId()); + if (hasId()) { + result = result && (getId() == other.getId()); + } + result = result && (hasQuery() == other.hasQuery()); + if (hasQuery()) { + result = result && getQuery().equals(other.getQuery()); + } + result = result && (hasStatus() == other.hasStatus()); + if (hasStatus()) { + result = result && status_ == other.status_; + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasId()) { + hash = (37 * hash) + ID_FIELD_NUMBER; + hash = (53 * hash) + getId(); + } + if (hasQuery()) { + hash = (37 * hash) + QUERY_FIELD_NUMBER; + hash = (53 * hash) + getQuery().hashCode(); + } + if (hasStatus()) { + hash = (37 * hash) + STATUS_FIELD_NUMBER; + hash = (53 * hash) + status_; + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus parseFrom( + byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code pb.remote.ResponseGlobalSearchStatus} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.ResponseGlobalSearchStatus) + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatusOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseGlobalSearchStatus_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseGlobalSearchStatus_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus.Builder.class); + } + + // Construct using + // de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + id_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + query_ = ""; + bitField0_ = (bitField0_ & ~0x00000002); + status_ = 1; + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_ResponseGlobalSearchStatus_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus + .getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus result = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus( + this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.id_ = id_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.query_ = query_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + result.status_ = status_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus) { + return mergeFrom( + (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus + .getDefaultInstance()) + return this; + if (other.hasId()) { + setId(other.getId()); + } + if (other.hasQuery()) { + bitField0_ |= 0x00000002; + query_ = other.query_; + onChanged(); + } + if (other.hasStatus()) { + setStatus(other.getStatus()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + + private int id_; + + /** + * optional int32 id = 1; + */ + public boolean hasId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 id = 1; + */ + public int getId() { + return id_; + } + + /** + * optional int32 id = 1; + */ + public Builder setId(int value) { + bitField0_ |= 0x00000001; + id_ = value; + onChanged(); + return this; + } + + /** + * optional int32 id = 1; + */ + public Builder clearId() { + bitField0_ = (bitField0_ & ~0x00000001); + id_ = 0; + onChanged(); + return this; + } + + private java.lang.Object query_ = ""; + + /** + * optional string query = 2; + */ + public boolean hasQuery() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + * optional string query = 2; + */ + public java.lang.String getQuery() { + java.lang.Object ref = query_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + query_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * optional string query = 2; + */ + public com.google.protobuf.ByteString getQueryBytes() { + java.lang.Object ref = query_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString + .copyFromUtf8((java.lang.String) ref); + query_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * optional string query = 2; + */ + public Builder setQuery(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + query_ = value; + onChanged(); + return this; + } + + /** + * optional string query = 2; + */ + public Builder clearQuery() { + bitField0_ = (bitField0_ & ~0x00000002); + query_ = getDefaultInstance().getQuery(); + onChanged(); + return this; + } + + /** + * optional string query = 2; + */ + public Builder setQueryBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + query_ = value; + onChanged(); + return this; + } + + private int status_ = 1; + + /** + * optional .pb.remote.GlobalSearchStatus status = 3; + */ + public boolean hasStatus() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + + /** + * optional .pb.remote.GlobalSearchStatus status = 3; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.GlobalSearchStatus getStatus() { + @SuppressWarnings("deprecation") + de.qspool.clementineremote.backend.pb.ClementineRemote.GlobalSearchStatus result = de.qspool.clementineremote.backend.pb.ClementineRemote.GlobalSearchStatus + .valueOf(status_); + return result == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.GlobalSearchStatus.GlobalSearchStarted + : result; + } + + /** + * optional .pb.remote.GlobalSearchStatus status = 3; + */ + public Builder setStatus(de.qspool.clementineremote.backend.pb.ClementineRemote.GlobalSearchStatus value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + status_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * optional .pb.remote.GlobalSearchStatus status = 3; + */ + public Builder clearStatus() { + bitField0_ = (bitField0_ & ~0x00000004); + status_ = 1; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.ResponseGlobalSearchStatus) + } + + // @@protoc_insertion_point(class_scope:pb.remote.ResponseGlobalSearchStatus) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ResponseGlobalSearchStatus parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ResponseGlobalSearchStatus(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface MessageOrBuilder extends + // @@protoc_insertion_point(interface_extends:pb.remote.Message) + com.google.protobuf.MessageOrBuilder { + + /** + * optional int32 version = 1 [default = 21]; + */ + boolean hasVersion(); + + /** + * optional int32 version = 1 [default = 21]; + */ + int getVersion(); + + /** + *
+         * What data is in the message?
+         * 
+ * + * optional .pb.remote.MsgType type = 2 [default = UNKNOWN]; + */ + boolean hasType(); + + /** + *
+         * What data is in the message?
+         * 
+ * + * optional .pb.remote.MsgType type = 2 [default = UNKNOWN]; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.MsgType getType(); + + /** + * optional .pb.remote.RequestConnect request_connect = 21; + */ + boolean hasRequestConnect(); + + /** + * optional .pb.remote.RequestConnect request_connect = 21; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect getRequestConnect(); + + /** + * optional .pb.remote.RequestConnect request_connect = 21; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnectOrBuilder getRequestConnectOrBuilder(); + + /** + * optional .pb.remote.RequestPlaylists request_playlists = 27; + */ + boolean hasRequestPlaylists(); + + /** + * optional .pb.remote.RequestPlaylists request_playlists = 27; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists getRequestPlaylists(); + + /** + * optional .pb.remote.RequestPlaylists request_playlists = 27; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistsOrBuilder getRequestPlaylistsOrBuilder(); + + /** + * optional .pb.remote.RequestPlaylistSongs request_playlist_songs = 10; + */ + boolean hasRequestPlaylistSongs(); + + /** + * optional .pb.remote.RequestPlaylistSongs request_playlist_songs = 10; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs getRequestPlaylistSongs(); + + /** + * optional .pb.remote.RequestPlaylistSongs request_playlist_songs = 10; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongsOrBuilder getRequestPlaylistSongsOrBuilder(); + + /** + * optional .pb.remote.RequestChangeSong request_change_song = 11; + */ + boolean hasRequestChangeSong(); + + /** + * optional .pb.remote.RequestChangeSong request_change_song = 11; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong getRequestChangeSong(); + + /** + * optional .pb.remote.RequestChangeSong request_change_song = 11; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSongOrBuilder getRequestChangeSongOrBuilder(); + + /** + * optional .pb.remote.RequestSetVolume request_set_volume = 12; + */ + boolean hasRequestSetVolume(); + + /** + * optional .pb.remote.RequestSetVolume request_set_volume = 12; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume getRequestSetVolume(); + + /** + * optional .pb.remote.RequestSetVolume request_set_volume = 12; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolumeOrBuilder getRequestSetVolumeOrBuilder(); + + /** + * optional .pb.remote.RequestSetTrackPosition request_set_track_position = 23; + */ + boolean hasRequestSetTrackPosition(); + + /** + * optional .pb.remote.RequestSetTrackPosition request_set_track_position = 23; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition getRequestSetTrackPosition(); + + /** + * optional .pb.remote.RequestSetTrackPosition request_set_track_position = 23; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPositionOrBuilder getRequestSetTrackPositionOrBuilder(); + + /** + * optional .pb.remote.RequestInsertUrls request_insert_urls = 25; + */ + boolean hasRequestInsertUrls(); + + /** + * optional .pb.remote.RequestInsertUrls request_insert_urls = 25; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls getRequestInsertUrls(); + + /** + * optional .pb.remote.RequestInsertUrls request_insert_urls = 25; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrlsOrBuilder getRequestInsertUrlsOrBuilder(); + + /** + * optional .pb.remote.RequestRemoveSongs request_remove_songs = 26; + */ + boolean hasRequestRemoveSongs(); + + /** + * optional .pb.remote.RequestRemoveSongs request_remove_songs = 26; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs getRequestRemoveSongs(); + + /** + * optional .pb.remote.RequestRemoveSongs request_remove_songs = 26; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongsOrBuilder getRequestRemoveSongsOrBuilder(); + + /** + * optional .pb.remote.RequestOpenPlaylist request_open_playlist = 28; + */ + boolean hasRequestOpenPlaylist(); + + /** + * optional .pb.remote.RequestOpenPlaylist request_open_playlist = 28; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist getRequestOpenPlaylist(); + + /** + * optional .pb.remote.RequestOpenPlaylist request_open_playlist = 28; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylistOrBuilder getRequestOpenPlaylistOrBuilder(); + + /** + * optional .pb.remote.RequestClosePlaylist request_close_playlist = 29; + */ + boolean hasRequestClosePlaylist(); + + /** + * optional .pb.remote.RequestClosePlaylist request_close_playlist = 29; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist getRequestClosePlaylist(); + + /** + * optional .pb.remote.RequestClosePlaylist request_close_playlist = 29; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylistOrBuilder getRequestClosePlaylistOrBuilder(); + + /** + * optional .pb.remote.RequestDownloadSongs request_download_songs = 31; + */ + boolean hasRequestDownloadSongs(); + + /** + * optional .pb.remote.RequestDownloadSongs request_download_songs = 31; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs getRequestDownloadSongs(); + + /** + * optional .pb.remote.RequestDownloadSongs request_download_songs = 31; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongsOrBuilder getRequestDownloadSongsOrBuilder(); + + /** + * optional .pb.remote.RequestRateSong request_rate_song = 35; + */ + boolean hasRequestRateSong(); + + /** + * optional .pb.remote.RequestRateSong request_rate_song = 35; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong getRequestRateSong(); + + /** + * optional .pb.remote.RequestRateSong request_rate_song = 35; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSongOrBuilder getRequestRateSongOrBuilder(); + + /** + * optional .pb.remote.RequestGlobalSearch request_global_search = 37; + */ + boolean hasRequestGlobalSearch(); + + /** + * optional .pb.remote.RequestGlobalSearch request_global_search = 37; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch getRequestGlobalSearch(); + + /** + * optional .pb.remote.RequestGlobalSearch request_global_search = 37; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearchOrBuilder getRequestGlobalSearchOrBuilder(); + + /** + * optional .pb.remote.Repeat repeat = 13; + */ + boolean hasRepeat(); + + /** + * optional .pb.remote.Repeat repeat = 13; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat getRepeat(); + + /** + * optional .pb.remote.Repeat repeat = 13; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.RepeatOrBuilder getRepeatOrBuilder(); + + /** + * optional .pb.remote.Shuffle shuffle = 14; + */ + boolean hasShuffle(); + + /** + * optional .pb.remote.Shuffle shuffle = 14; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle getShuffle(); + + /** + * optional .pb.remote.Shuffle shuffle = 14; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ShuffleOrBuilder getShuffleOrBuilder(); + + /** + * optional .pb.remote.ResponseClementineInfo response_clementine_info = 15; + */ + boolean hasResponseClementineInfo(); + + /** + * optional .pb.remote.ResponseClementineInfo response_clementine_info = 15; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo getResponseClementineInfo(); + + /** + * optional .pb.remote.ResponseClementineInfo response_clementine_info = 15; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfoOrBuilder getResponseClementineInfoOrBuilder(); + + /** + * optional .pb.remote.ResponseCurrentMetadata response_current_metadata = 16; + */ + boolean hasResponseCurrentMetadata(); + + /** + * optional .pb.remote.ResponseCurrentMetadata response_current_metadata = 16; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata getResponseCurrentMetadata(); + + /** + * optional .pb.remote.ResponseCurrentMetadata response_current_metadata = 16; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadataOrBuilder getResponseCurrentMetadataOrBuilder(); + + /** + * optional .pb.remote.ResponsePlaylists response_playlists = 17; + */ + boolean hasResponsePlaylists(); + + /** + * optional .pb.remote.ResponsePlaylists response_playlists = 17; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists getResponsePlaylists(); + + /** + * optional .pb.remote.ResponsePlaylists response_playlists = 17; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistsOrBuilder getResponsePlaylistsOrBuilder(); + + /** + * optional .pb.remote.ResponsePlaylistSongs response_playlist_songs = 18; + */ + boolean hasResponsePlaylistSongs(); + + /** + * optional .pb.remote.ResponsePlaylistSongs response_playlist_songs = 18; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs getResponsePlaylistSongs(); + + /** + * optional .pb.remote.ResponsePlaylistSongs response_playlist_songs = 18; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongsOrBuilder getResponsePlaylistSongsOrBuilder(); + + /** + * optional .pb.remote.ResponseEngineStateChanged response_engine_state_changed = 19; + */ + boolean hasResponseEngineStateChanged(); + + /** + * optional .pb.remote.ResponseEngineStateChanged response_engine_state_changed = 19; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged getResponseEngineStateChanged(); + + /** + * optional .pb.remote.ResponseEngineStateChanged response_engine_state_changed = 19; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChangedOrBuilder getResponseEngineStateChangedOrBuilder(); + + /** + * optional .pb.remote.ResponseUpdateTrackPosition response_update_track_position = 20; + */ + boolean hasResponseUpdateTrackPosition(); + + /** + * optional .pb.remote.ResponseUpdateTrackPosition response_update_track_position = 20; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition getResponseUpdateTrackPosition(); + + /** + * optional .pb.remote.ResponseUpdateTrackPosition response_update_track_position = 20; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPositionOrBuilder getResponseUpdateTrackPositionOrBuilder(); + + /** + * optional .pb.remote.ResponseDisconnect response_disconnect = 22; + */ + boolean hasResponseDisconnect(); + + /** + * optional .pb.remote.ResponseDisconnect response_disconnect = 22; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect getResponseDisconnect(); + + /** + * optional .pb.remote.ResponseDisconnect response_disconnect = 22; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnectOrBuilder getResponseDisconnectOrBuilder(); + + /** + * optional .pb.remote.ResponseActiveChanged response_active_changed = 24; + */ + boolean hasResponseActiveChanged(); + + /** + * optional .pb.remote.ResponseActiveChanged response_active_changed = 24; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged getResponseActiveChanged(); + + /** + * optional .pb.remote.ResponseActiveChanged response_active_changed = 24; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChangedOrBuilder getResponseActiveChangedOrBuilder(); + + /** + * optional .pb.remote.ResponseLyrics response_lyrics = 30; + */ + boolean hasResponseLyrics(); + + /** + * optional .pb.remote.ResponseLyrics response_lyrics = 30; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics getResponseLyrics(); + + /** + * optional .pb.remote.ResponseLyrics response_lyrics = 30; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyricsOrBuilder getResponseLyricsOrBuilder(); + + /** + * optional .pb.remote.ResponseSongFileChunk response_song_file_chunk = 32; + */ + boolean hasResponseSongFileChunk(); + + /** + * optional .pb.remote.ResponseSongFileChunk response_song_file_chunk = 32; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk getResponseSongFileChunk(); + + /** + * optional .pb.remote.ResponseSongFileChunk response_song_file_chunk = 32; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunkOrBuilder getResponseSongFileChunkOrBuilder(); + + /** + * optional .pb.remote.ResponseSongOffer response_song_offer = 33; + */ + boolean hasResponseSongOffer(); + + /** + * optional .pb.remote.ResponseSongOffer response_song_offer = 33; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer getResponseSongOffer(); + + /** + * optional .pb.remote.ResponseSongOffer response_song_offer = 33; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOfferOrBuilder getResponseSongOfferOrBuilder(); + + /** + * optional .pb.remote.ResponseLibraryChunk response_library_chunk = 34; + */ + boolean hasResponseLibraryChunk(); + + /** + * optional .pb.remote.ResponseLibraryChunk response_library_chunk = 34; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk getResponseLibraryChunk(); + + /** + * optional .pb.remote.ResponseLibraryChunk response_library_chunk = 34; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunkOrBuilder getResponseLibraryChunkOrBuilder(); + + /** + * optional .pb.remote.ResponseDownloadTotalSize response_download_total_size = 36; + */ + boolean hasResponseDownloadTotalSize(); + + /** + * optional .pb.remote.ResponseDownloadTotalSize response_download_total_size = 36; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize getResponseDownloadTotalSize(); + + /** + * optional .pb.remote.ResponseDownloadTotalSize response_download_total_size = 36; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSizeOrBuilder getResponseDownloadTotalSizeOrBuilder(); + + /** + * optional .pb.remote.ResponseGlobalSearch response_global_search = 38; + */ + boolean hasResponseGlobalSearch(); + + /** + * optional .pb.remote.ResponseGlobalSearch response_global_search = 38; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch getResponseGlobalSearch(); + + /** + * optional .pb.remote.ResponseGlobalSearch response_global_search = 38; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchOrBuilder getResponseGlobalSearchOrBuilder(); + + /** + * optional .pb.remote.ResponseTranscoderStatus response_transcoder_status = 39; + */ + boolean hasResponseTranscoderStatus(); + + /** + * optional .pb.remote.ResponseTranscoderStatus response_transcoder_status = 39; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus getResponseTranscoderStatus(); + + /** + * optional .pb.remote.ResponseTranscoderStatus response_transcoder_status = 39; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatusOrBuilder getResponseTranscoderStatusOrBuilder(); + + /** + * optional .pb.remote.ResponseGlobalSearchStatus response_global_search_status = 40; + */ + boolean hasResponseGlobalSearchStatus(); + + /** + * optional .pb.remote.ResponseGlobalSearchStatus response_global_search_status = 40; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus getResponseGlobalSearchStatus(); + + /** + * optional .pb.remote.ResponseGlobalSearchStatus response_global_search_status = 40; + */ + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatusOrBuilder getResponseGlobalSearchStatusOrBuilder(); + } + + /** + *
+     * The message itself
+     * 
+ * + * Protobuf type {@code pb.remote.Message} + */ + public static final class Message extends com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pb.remote.Message) + MessageOrBuilder { + private static final long serialVersionUID = 0L; + + // Use Message.newBuilder() to construct. + private Message(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private Message() { + version_ = 21; + type_ = 0; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + private Message(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + int mutable_bitField1_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet + .newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + bitField0_ |= 0x00000001; + version_ = input.readInt32(); + break; + } + case 16: { + int rawValue = input.readEnum(); + @SuppressWarnings("deprecation") + de.qspool.clementineremote.backend.pb.ClementineRemote.MsgType value = de.qspool.clementineremote.backend.pb.ClementineRemote.MsgType + .valueOf(rawValue); + if (value == null) { + unknownFields.mergeVarintField(2, rawValue); + } else { + bitField0_ |= 0x00000002; + type_ = rawValue; + } + break; + } + case 82: { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs.Builder subBuilder = null; + if (((bitField0_ & 0x00000010) == 0x00000010)) { + subBuilder = requestPlaylistSongs_.toBuilder(); + } + requestPlaylistSongs_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(requestPlaylistSongs_); + requestPlaylistSongs_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000010; + break; + } + case 90: { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong.Builder subBuilder = null; + if (((bitField0_ & 0x00000020) == 0x00000020)) { + subBuilder = requestChangeSong_.toBuilder(); + } + requestChangeSong_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(requestChangeSong_); + requestChangeSong_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000020; + break; + } + case 98: { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume.Builder subBuilder = null; + if (((bitField0_ & 0x00000040) == 0x00000040)) { + subBuilder = requestSetVolume_.toBuilder(); + } + requestSetVolume_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(requestSetVolume_); + requestSetVolume_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000040; + break; + } + case 106: { + de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat.Builder subBuilder = null; + if (((bitField0_ & 0x00008000) == 0x00008000)) { + subBuilder = repeat_.toBuilder(); + } + repeat_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(repeat_); + repeat_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00008000; + break; + } + case 114: { + de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle.Builder subBuilder = null; + if (((bitField0_ & 0x00010000) == 0x00010000)) { + subBuilder = shuffle_.toBuilder(); + } + shuffle_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(shuffle_); + shuffle_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00010000; + break; + } + case 122: { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo.Builder subBuilder = null; + if (((bitField0_ & 0x00020000) == 0x00020000)) { + subBuilder = responseClementineInfo_.toBuilder(); + } + responseClementineInfo_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(responseClementineInfo_); + responseClementineInfo_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00020000; + break; + } + case 130: { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata.Builder subBuilder = null; + if (((bitField0_ & 0x00040000) == 0x00040000)) { + subBuilder = responseCurrentMetadata_.toBuilder(); + } + responseCurrentMetadata_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(responseCurrentMetadata_); + responseCurrentMetadata_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00040000; + break; + } + case 138: { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists.Builder subBuilder = null; + if (((bitField0_ & 0x00080000) == 0x00080000)) { + subBuilder = responsePlaylists_.toBuilder(); + } + responsePlaylists_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(responsePlaylists_); + responsePlaylists_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00080000; + break; + } + case 146: { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs.Builder subBuilder = null; + if (((bitField0_ & 0x00100000) == 0x00100000)) { + subBuilder = responsePlaylistSongs_.toBuilder(); + } + responsePlaylistSongs_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(responsePlaylistSongs_); + responsePlaylistSongs_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00100000; + break; + } + case 154: { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged.Builder subBuilder = null; + if (((bitField0_ & 0x00200000) == 0x00200000)) { + subBuilder = responseEngineStateChanged_.toBuilder(); + } + responseEngineStateChanged_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(responseEngineStateChanged_); + responseEngineStateChanged_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00200000; + break; + } + case 162: { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition.Builder subBuilder = null; + if (((bitField0_ & 0x00400000) == 0x00400000)) { + subBuilder = responseUpdateTrackPosition_.toBuilder(); + } + responseUpdateTrackPosition_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(responseUpdateTrackPosition_); + responseUpdateTrackPosition_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00400000; + break; + } + case 170: { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect.Builder subBuilder = null; + if (((bitField0_ & 0x00000004) == 0x00000004)) { + subBuilder = requestConnect_.toBuilder(); + } + requestConnect_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(requestConnect_); + requestConnect_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000004; + break; + } + case 178: { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect.Builder subBuilder = null; + if (((bitField0_ & 0x00800000) == 0x00800000)) { + subBuilder = responseDisconnect_.toBuilder(); + } + responseDisconnect_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(responseDisconnect_); + responseDisconnect_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00800000; + break; + } + case 186: { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition.Builder subBuilder = null; + if (((bitField0_ & 0x00000080) == 0x00000080)) { + subBuilder = requestSetTrackPosition_.toBuilder(); + } + requestSetTrackPosition_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(requestSetTrackPosition_); + requestSetTrackPosition_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000080; + break; + } + case 194: { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged.Builder subBuilder = null; + if (((bitField0_ & 0x01000000) == 0x01000000)) { + subBuilder = responseActiveChanged_.toBuilder(); + } + responseActiveChanged_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(responseActiveChanged_); + responseActiveChanged_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x01000000; + break; + } + case 202: { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls.Builder subBuilder = null; + if (((bitField0_ & 0x00000100) == 0x00000100)) { + subBuilder = requestInsertUrls_.toBuilder(); + } + requestInsertUrls_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(requestInsertUrls_); + requestInsertUrls_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000100; + break; + } + case 210: { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs.Builder subBuilder = null; + if (((bitField0_ & 0x00000200) == 0x00000200)) { + subBuilder = requestRemoveSongs_.toBuilder(); + } + requestRemoveSongs_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(requestRemoveSongs_); + requestRemoveSongs_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000200; + break; + } + case 218: { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists.Builder subBuilder = null; + if (((bitField0_ & 0x00000008) == 0x00000008)) { + subBuilder = requestPlaylists_.toBuilder(); + } + requestPlaylists_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(requestPlaylists_); + requestPlaylists_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000008; + break; + } + case 226: { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist.Builder subBuilder = null; + if (((bitField0_ & 0x00000400) == 0x00000400)) { + subBuilder = requestOpenPlaylist_.toBuilder(); + } + requestOpenPlaylist_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(requestOpenPlaylist_); + requestOpenPlaylist_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000400; + break; + } + case 234: { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist.Builder subBuilder = null; + if (((bitField0_ & 0x00000800) == 0x00000800)) { + subBuilder = requestClosePlaylist_.toBuilder(); + } + requestClosePlaylist_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(requestClosePlaylist_); + requestClosePlaylist_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000800; + break; + } + case 242: { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics.Builder subBuilder = null; + if (((bitField0_ & 0x02000000) == 0x02000000)) { + subBuilder = responseLyrics_.toBuilder(); + } + responseLyrics_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(responseLyrics_); + responseLyrics_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x02000000; + break; + } + case 250: { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs.Builder subBuilder = null; + if (((bitField0_ & 0x00001000) == 0x00001000)) { + subBuilder = requestDownloadSongs_.toBuilder(); + } + requestDownloadSongs_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(requestDownloadSongs_); + requestDownloadSongs_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00001000; + break; + } + case 258: { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk.Builder subBuilder = null; + if (((bitField0_ & 0x04000000) == 0x04000000)) { + subBuilder = responseSongFileChunk_.toBuilder(); + } + responseSongFileChunk_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(responseSongFileChunk_); + responseSongFileChunk_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x04000000; + break; + } + case 266: { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer.Builder subBuilder = null; + if (((bitField0_ & 0x08000000) == 0x08000000)) { + subBuilder = responseSongOffer_.toBuilder(); + } + responseSongOffer_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(responseSongOffer_); + responseSongOffer_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x08000000; + break; + } + case 274: { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk.Builder subBuilder = null; + if (((bitField0_ & 0x10000000) == 0x10000000)) { + subBuilder = responseLibraryChunk_.toBuilder(); + } + responseLibraryChunk_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(responseLibraryChunk_); + responseLibraryChunk_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x10000000; + break; + } + case 282: { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong.Builder subBuilder = null; + if (((bitField0_ & 0x00002000) == 0x00002000)) { + subBuilder = requestRateSong_.toBuilder(); + } + requestRateSong_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(requestRateSong_); + requestRateSong_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00002000; + break; + } + case 290: { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize.Builder subBuilder = null; + if (((bitField0_ & 0x20000000) == 0x20000000)) { + subBuilder = responseDownloadTotalSize_.toBuilder(); + } + responseDownloadTotalSize_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(responseDownloadTotalSize_); + responseDownloadTotalSize_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x20000000; + break; + } + case 298: { + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch.Builder subBuilder = null; + if (((bitField0_ & 0x00004000) == 0x00004000)) { + subBuilder = requestGlobalSearch_.toBuilder(); + } + requestGlobalSearch_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(requestGlobalSearch_); + requestGlobalSearch_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00004000; + break; + } + case 306: { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch.Builder subBuilder = null; + if (((bitField0_ & 0x40000000) == 0x40000000)) { + subBuilder = responseGlobalSearch_.toBuilder(); + } + responseGlobalSearch_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(responseGlobalSearch_); + responseGlobalSearch_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x40000000; + break; + } + case 314: { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus.Builder subBuilder = null; + if (((bitField0_ & 0x80000000) == 0x80000000)) { + subBuilder = responseTranscoderStatus_.toBuilder(); + } + responseTranscoderStatus_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(responseTranscoderStatus_); + responseTranscoderStatus_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x80000000; + break; + } + case 322: { + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus.Builder subBuilder = null; + if (((bitField1_ & 0x00000001) == 0x00000001)) { + subBuilder = responseGlobalSearchStatus_.toBuilder(); + } + responseGlobalSearchStatus_ = input.readMessage( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus.PARSER, + extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(responseGlobalSearchStatus_); + responseGlobalSearchStatus_ = subBuilder.buildPartial(); + } + bitField1_ |= 0x00000001; + break; + } + default: { + if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_Message_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_Message_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.Message.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.Message.Builder.class); + } + + private int bitField0_; + private int bitField1_; + public static final int VERSION_FIELD_NUMBER = 1; + private int version_; + + /** + * optional int32 version = 1 [default = 21]; + */ + public boolean hasVersion() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 version = 1 [default = 21]; + */ + public int getVersion() { + return version_; + } + + public static final int TYPE_FIELD_NUMBER = 2; + private int type_; + + /** + *
+         * What data is in the message?
+         * 
+ * + * optional .pb.remote.MsgType type = 2 [default = UNKNOWN]; + */ + public boolean hasType() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + *
+         * What data is in the message?
+         * 
+ * + * optional .pb.remote.MsgType type = 2 [default = UNKNOWN]; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.MsgType getType() { + @SuppressWarnings("deprecation") + de.qspool.clementineremote.backend.pb.ClementineRemote.MsgType result = de.qspool.clementineremote.backend.pb.ClementineRemote.MsgType + .valueOf(type_); + return result == null ? de.qspool.clementineremote.backend.pb.ClementineRemote.MsgType.UNKNOWN : result; + } + + public static final int REQUEST_CONNECT_FIELD_NUMBER = 21; + private de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect requestConnect_; + + /** + * optional .pb.remote.RequestConnect request_connect = 21; + */ + public boolean hasRequestConnect() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + + /** + * optional .pb.remote.RequestConnect request_connect = 21; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect getRequestConnect() { + return requestConnect_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect.getDefaultInstance() + : requestConnect_; + } + + /** + * optional .pb.remote.RequestConnect request_connect = 21; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnectOrBuilder getRequestConnectOrBuilder() { + return requestConnect_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect.getDefaultInstance() + : requestConnect_; + } + + public static final int REQUEST_PLAYLISTS_FIELD_NUMBER = 27; + private de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists requestPlaylists_; + + /** + * optional .pb.remote.RequestPlaylists request_playlists = 27; + */ + public boolean hasRequestPlaylists() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + + /** + * optional .pb.remote.RequestPlaylists request_playlists = 27; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists getRequestPlaylists() { + return requestPlaylists_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists.getDefaultInstance() + : requestPlaylists_; + } + + /** + * optional .pb.remote.RequestPlaylists request_playlists = 27; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistsOrBuilder getRequestPlaylistsOrBuilder() { + return requestPlaylists_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists.getDefaultInstance() + : requestPlaylists_; + } + + public static final int REQUEST_PLAYLIST_SONGS_FIELD_NUMBER = 10; + private de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs requestPlaylistSongs_; + + /** + * optional .pb.remote.RequestPlaylistSongs request_playlist_songs = 10; + */ + public boolean hasRequestPlaylistSongs() { + return ((bitField0_ & 0x00000010) == 0x00000010); + } + + /** + * optional .pb.remote.RequestPlaylistSongs request_playlist_songs = 10; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs getRequestPlaylistSongs() { + return requestPlaylistSongs_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs.getDefaultInstance() + : requestPlaylistSongs_; + } + + /** + * optional .pb.remote.RequestPlaylistSongs request_playlist_songs = 10; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongsOrBuilder getRequestPlaylistSongsOrBuilder() { + return requestPlaylistSongs_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs.getDefaultInstance() + : requestPlaylistSongs_; + } + + public static final int REQUEST_CHANGE_SONG_FIELD_NUMBER = 11; + private de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong requestChangeSong_; + + /** + * optional .pb.remote.RequestChangeSong request_change_song = 11; + */ + public boolean hasRequestChangeSong() { + return ((bitField0_ & 0x00000020) == 0x00000020); + } + + /** + * optional .pb.remote.RequestChangeSong request_change_song = 11; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong getRequestChangeSong() { + return requestChangeSong_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong.getDefaultInstance() + : requestChangeSong_; + } + + /** + * optional .pb.remote.RequestChangeSong request_change_song = 11; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSongOrBuilder getRequestChangeSongOrBuilder() { + return requestChangeSong_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong.getDefaultInstance() + : requestChangeSong_; + } + + public static final int REQUEST_SET_VOLUME_FIELD_NUMBER = 12; + private de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume requestSetVolume_; + + /** + * optional .pb.remote.RequestSetVolume request_set_volume = 12; + */ + public boolean hasRequestSetVolume() { + return ((bitField0_ & 0x00000040) == 0x00000040); + } + + /** + * optional .pb.remote.RequestSetVolume request_set_volume = 12; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume getRequestSetVolume() { + return requestSetVolume_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume.getDefaultInstance() + : requestSetVolume_; + } + + /** + * optional .pb.remote.RequestSetVolume request_set_volume = 12; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolumeOrBuilder getRequestSetVolumeOrBuilder() { + return requestSetVolume_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume.getDefaultInstance() + : requestSetVolume_; + } + + public static final int REQUEST_SET_TRACK_POSITION_FIELD_NUMBER = 23; + private de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition requestSetTrackPosition_; + + /** + * optional .pb.remote.RequestSetTrackPosition request_set_track_position = 23; + */ + public boolean hasRequestSetTrackPosition() { + return ((bitField0_ & 0x00000080) == 0x00000080); + } + + /** + * optional .pb.remote.RequestSetTrackPosition request_set_track_position = 23; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition getRequestSetTrackPosition() { + return requestSetTrackPosition_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition + .getDefaultInstance() + : requestSetTrackPosition_; + } + + /** + * optional .pb.remote.RequestSetTrackPosition request_set_track_position = 23; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPositionOrBuilder getRequestSetTrackPositionOrBuilder() { + return requestSetTrackPosition_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition + .getDefaultInstance() + : requestSetTrackPosition_; + } + + public static final int REQUEST_INSERT_URLS_FIELD_NUMBER = 25; + private de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls requestInsertUrls_; + + /** + * optional .pb.remote.RequestInsertUrls request_insert_urls = 25; + */ + public boolean hasRequestInsertUrls() { + return ((bitField0_ & 0x00000100) == 0x00000100); + } + + /** + * optional .pb.remote.RequestInsertUrls request_insert_urls = 25; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls getRequestInsertUrls() { + return requestInsertUrls_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls.getDefaultInstance() + : requestInsertUrls_; + } + + /** + * optional .pb.remote.RequestInsertUrls request_insert_urls = 25; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrlsOrBuilder getRequestInsertUrlsOrBuilder() { + return requestInsertUrls_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls.getDefaultInstance() + : requestInsertUrls_; + } + + public static final int REQUEST_REMOVE_SONGS_FIELD_NUMBER = 26; + private de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs requestRemoveSongs_; + + /** + * optional .pb.remote.RequestRemoveSongs request_remove_songs = 26; + */ + public boolean hasRequestRemoveSongs() { + return ((bitField0_ & 0x00000200) == 0x00000200); + } + + /** + * optional .pb.remote.RequestRemoveSongs request_remove_songs = 26; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs getRequestRemoveSongs() { + return requestRemoveSongs_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs.getDefaultInstance() + : requestRemoveSongs_; + } + + /** + * optional .pb.remote.RequestRemoveSongs request_remove_songs = 26; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongsOrBuilder getRequestRemoveSongsOrBuilder() { + return requestRemoveSongs_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs.getDefaultInstance() + : requestRemoveSongs_; + } + + public static final int REQUEST_OPEN_PLAYLIST_FIELD_NUMBER = 28; + private de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist requestOpenPlaylist_; + + /** + * optional .pb.remote.RequestOpenPlaylist request_open_playlist = 28; + */ + public boolean hasRequestOpenPlaylist() { + return ((bitField0_ & 0x00000400) == 0x00000400); + } + + /** + * optional .pb.remote.RequestOpenPlaylist request_open_playlist = 28; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist getRequestOpenPlaylist() { + return requestOpenPlaylist_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist.getDefaultInstance() + : requestOpenPlaylist_; + } + + /** + * optional .pb.remote.RequestOpenPlaylist request_open_playlist = 28; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylistOrBuilder getRequestOpenPlaylistOrBuilder() { + return requestOpenPlaylist_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist.getDefaultInstance() + : requestOpenPlaylist_; + } + + public static final int REQUEST_CLOSE_PLAYLIST_FIELD_NUMBER = 29; + private de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist requestClosePlaylist_; + + /** + * optional .pb.remote.RequestClosePlaylist request_close_playlist = 29; + */ + public boolean hasRequestClosePlaylist() { + return ((bitField0_ & 0x00000800) == 0x00000800); + } + + /** + * optional .pb.remote.RequestClosePlaylist request_close_playlist = 29; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist getRequestClosePlaylist() { + return requestClosePlaylist_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist.getDefaultInstance() + : requestClosePlaylist_; + } + + /** + * optional .pb.remote.RequestClosePlaylist request_close_playlist = 29; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylistOrBuilder getRequestClosePlaylistOrBuilder() { + return requestClosePlaylist_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist.getDefaultInstance() + : requestClosePlaylist_; + } + + public static final int REQUEST_DOWNLOAD_SONGS_FIELD_NUMBER = 31; + private de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs requestDownloadSongs_; + + /** + * optional .pb.remote.RequestDownloadSongs request_download_songs = 31; + */ + public boolean hasRequestDownloadSongs() { + return ((bitField0_ & 0x00001000) == 0x00001000); + } + + /** + * optional .pb.remote.RequestDownloadSongs request_download_songs = 31; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs getRequestDownloadSongs() { + return requestDownloadSongs_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs.getDefaultInstance() + : requestDownloadSongs_; + } + + /** + * optional .pb.remote.RequestDownloadSongs request_download_songs = 31; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongsOrBuilder getRequestDownloadSongsOrBuilder() { + return requestDownloadSongs_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs.getDefaultInstance() + : requestDownloadSongs_; + } + + public static final int REQUEST_RATE_SONG_FIELD_NUMBER = 35; + private de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong requestRateSong_; + + /** + * optional .pb.remote.RequestRateSong request_rate_song = 35; + */ + public boolean hasRequestRateSong() { + return ((bitField0_ & 0x00002000) == 0x00002000); + } + + /** + * optional .pb.remote.RequestRateSong request_rate_song = 35; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong getRequestRateSong() { + return requestRateSong_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong.getDefaultInstance() + : requestRateSong_; + } + + /** + * optional .pb.remote.RequestRateSong request_rate_song = 35; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSongOrBuilder getRequestRateSongOrBuilder() { + return requestRateSong_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong.getDefaultInstance() + : requestRateSong_; + } + + public static final int REQUEST_GLOBAL_SEARCH_FIELD_NUMBER = 37; + private de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch requestGlobalSearch_; + + /** + * optional .pb.remote.RequestGlobalSearch request_global_search = 37; + */ + public boolean hasRequestGlobalSearch() { + return ((bitField0_ & 0x00004000) == 0x00004000); + } + + /** + * optional .pb.remote.RequestGlobalSearch request_global_search = 37; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch getRequestGlobalSearch() { + return requestGlobalSearch_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch.getDefaultInstance() + : requestGlobalSearch_; + } + + /** + * optional .pb.remote.RequestGlobalSearch request_global_search = 37; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearchOrBuilder getRequestGlobalSearchOrBuilder() { + return requestGlobalSearch_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch.getDefaultInstance() + : requestGlobalSearch_; + } + + public static final int REPEAT_FIELD_NUMBER = 13; + private de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat repeat_; + + /** + * optional .pb.remote.Repeat repeat = 13; + */ + public boolean hasRepeat() { + return ((bitField0_ & 0x00008000) == 0x00008000); + } + + /** + * optional .pb.remote.Repeat repeat = 13; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat getRepeat() { + return repeat_ == null ? de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat.getDefaultInstance() + : repeat_; + } + + /** + * optional .pb.remote.Repeat repeat = 13; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RepeatOrBuilder getRepeatOrBuilder() { + return repeat_ == null ? de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat.getDefaultInstance() + : repeat_; + } + + public static final int SHUFFLE_FIELD_NUMBER = 14; + private de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle shuffle_; + + /** + * optional .pb.remote.Shuffle shuffle = 14; + */ + public boolean hasShuffle() { + return ((bitField0_ & 0x00010000) == 0x00010000); + } + + /** + * optional .pb.remote.Shuffle shuffle = 14; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle getShuffle() { + return shuffle_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle.getDefaultInstance() + : shuffle_; + } + + /** + * optional .pb.remote.Shuffle shuffle = 14; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ShuffleOrBuilder getShuffleOrBuilder() { + return shuffle_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle.getDefaultInstance() + : shuffle_; + } + + public static final int RESPONSE_CLEMENTINE_INFO_FIELD_NUMBER = 15; + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo responseClementineInfo_; + + /** + * optional .pb.remote.ResponseClementineInfo response_clementine_info = 15; + */ + public boolean hasResponseClementineInfo() { + return ((bitField0_ & 0x00020000) == 0x00020000); + } + + /** + * optional .pb.remote.ResponseClementineInfo response_clementine_info = 15; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo getResponseClementineInfo() { + return responseClementineInfo_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo.getDefaultInstance() + : responseClementineInfo_; + } + + /** + * optional .pb.remote.ResponseClementineInfo response_clementine_info = 15; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfoOrBuilder getResponseClementineInfoOrBuilder() { + return responseClementineInfo_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo.getDefaultInstance() + : responseClementineInfo_; + } + + public static final int RESPONSE_CURRENT_METADATA_FIELD_NUMBER = 16; + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata responseCurrentMetadata_; + + /** + * optional .pb.remote.ResponseCurrentMetadata response_current_metadata = 16; + */ + public boolean hasResponseCurrentMetadata() { + return ((bitField0_ & 0x00040000) == 0x00040000); + } + + /** + * optional .pb.remote.ResponseCurrentMetadata response_current_metadata = 16; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata getResponseCurrentMetadata() { + return responseCurrentMetadata_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata + .getDefaultInstance() + : responseCurrentMetadata_; + } + + /** + * optional .pb.remote.ResponseCurrentMetadata response_current_metadata = 16; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadataOrBuilder getResponseCurrentMetadataOrBuilder() { + return responseCurrentMetadata_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata + .getDefaultInstance() + : responseCurrentMetadata_; + } + + public static final int RESPONSE_PLAYLISTS_FIELD_NUMBER = 17; + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists responsePlaylists_; + + /** + * optional .pb.remote.ResponsePlaylists response_playlists = 17; + */ + public boolean hasResponsePlaylists() { + return ((bitField0_ & 0x00080000) == 0x00080000); + } + + /** + * optional .pb.remote.ResponsePlaylists response_playlists = 17; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists getResponsePlaylists() { + return responsePlaylists_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists.getDefaultInstance() + : responsePlaylists_; + } + + /** + * optional .pb.remote.ResponsePlaylists response_playlists = 17; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistsOrBuilder getResponsePlaylistsOrBuilder() { + return responsePlaylists_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists.getDefaultInstance() + : responsePlaylists_; + } + + public static final int RESPONSE_PLAYLIST_SONGS_FIELD_NUMBER = 18; + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs responsePlaylistSongs_; + + /** + * optional .pb.remote.ResponsePlaylistSongs response_playlist_songs = 18; + */ + public boolean hasResponsePlaylistSongs() { + return ((bitField0_ & 0x00100000) == 0x00100000); + } + + /** + * optional .pb.remote.ResponsePlaylistSongs response_playlist_songs = 18; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs getResponsePlaylistSongs() { + return responsePlaylistSongs_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs.getDefaultInstance() + : responsePlaylistSongs_; + } + + /** + * optional .pb.remote.ResponsePlaylistSongs response_playlist_songs = 18; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongsOrBuilder getResponsePlaylistSongsOrBuilder() { + return responsePlaylistSongs_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs.getDefaultInstance() + : responsePlaylistSongs_; + } + + public static final int RESPONSE_ENGINE_STATE_CHANGED_FIELD_NUMBER = 19; + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged responseEngineStateChanged_; + + /** + * optional .pb.remote.ResponseEngineStateChanged response_engine_state_changed = 19; + */ + public boolean hasResponseEngineStateChanged() { + return ((bitField0_ & 0x00200000) == 0x00200000); + } + + /** + * optional .pb.remote.ResponseEngineStateChanged response_engine_state_changed = 19; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged getResponseEngineStateChanged() { + return responseEngineStateChanged_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged + .getDefaultInstance() + : responseEngineStateChanged_; + } + + /** + * optional .pb.remote.ResponseEngineStateChanged response_engine_state_changed = 19; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChangedOrBuilder getResponseEngineStateChangedOrBuilder() { + return responseEngineStateChanged_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged + .getDefaultInstance() + : responseEngineStateChanged_; + } + + public static final int RESPONSE_UPDATE_TRACK_POSITION_FIELD_NUMBER = 20; + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition responseUpdateTrackPosition_; + + /** + * optional .pb.remote.ResponseUpdateTrackPosition response_update_track_position = 20; + */ + public boolean hasResponseUpdateTrackPosition() { + return ((bitField0_ & 0x00400000) == 0x00400000); + } + + /** + * optional .pb.remote.ResponseUpdateTrackPosition response_update_track_position = 20; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition getResponseUpdateTrackPosition() { + return responseUpdateTrackPosition_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition + .getDefaultInstance() + : responseUpdateTrackPosition_; + } + + /** + * optional .pb.remote.ResponseUpdateTrackPosition response_update_track_position = 20; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPositionOrBuilder getResponseUpdateTrackPositionOrBuilder() { + return responseUpdateTrackPosition_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition + .getDefaultInstance() + : responseUpdateTrackPosition_; + } + + public static final int RESPONSE_DISCONNECT_FIELD_NUMBER = 22; + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect responseDisconnect_; + + /** + * optional .pb.remote.ResponseDisconnect response_disconnect = 22; + */ + public boolean hasResponseDisconnect() { + return ((bitField0_ & 0x00800000) == 0x00800000); + } + + /** + * optional .pb.remote.ResponseDisconnect response_disconnect = 22; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect getResponseDisconnect() { + return responseDisconnect_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect.getDefaultInstance() + : responseDisconnect_; + } + + /** + * optional .pb.remote.ResponseDisconnect response_disconnect = 22; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnectOrBuilder getResponseDisconnectOrBuilder() { + return responseDisconnect_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect.getDefaultInstance() + : responseDisconnect_; + } + + public static final int RESPONSE_ACTIVE_CHANGED_FIELD_NUMBER = 24; + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged responseActiveChanged_; + + /** + * optional .pb.remote.ResponseActiveChanged response_active_changed = 24; + */ + public boolean hasResponseActiveChanged() { + return ((bitField0_ & 0x01000000) == 0x01000000); + } + + /** + * optional .pb.remote.ResponseActiveChanged response_active_changed = 24; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged getResponseActiveChanged() { + return responseActiveChanged_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged.getDefaultInstance() + : responseActiveChanged_; + } + + /** + * optional .pb.remote.ResponseActiveChanged response_active_changed = 24; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChangedOrBuilder getResponseActiveChangedOrBuilder() { + return responseActiveChanged_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged.getDefaultInstance() + : responseActiveChanged_; + } + + public static final int RESPONSE_LYRICS_FIELD_NUMBER = 30; + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics responseLyrics_; + + /** + * optional .pb.remote.ResponseLyrics response_lyrics = 30; + */ + public boolean hasResponseLyrics() { + return ((bitField0_ & 0x02000000) == 0x02000000); + } + + /** + * optional .pb.remote.ResponseLyrics response_lyrics = 30; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics getResponseLyrics() { + return responseLyrics_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics.getDefaultInstance() + : responseLyrics_; + } + + /** + * optional .pb.remote.ResponseLyrics response_lyrics = 30; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyricsOrBuilder getResponseLyricsOrBuilder() { + return responseLyrics_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics.getDefaultInstance() + : responseLyrics_; + } + + public static final int RESPONSE_SONG_FILE_CHUNK_FIELD_NUMBER = 32; + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk responseSongFileChunk_; + + /** + * optional .pb.remote.ResponseSongFileChunk response_song_file_chunk = 32; + */ + public boolean hasResponseSongFileChunk() { + return ((bitField0_ & 0x04000000) == 0x04000000); + } + + /** + * optional .pb.remote.ResponseSongFileChunk response_song_file_chunk = 32; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk getResponseSongFileChunk() { + return responseSongFileChunk_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk.getDefaultInstance() + : responseSongFileChunk_; + } + + /** + * optional .pb.remote.ResponseSongFileChunk response_song_file_chunk = 32; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunkOrBuilder getResponseSongFileChunkOrBuilder() { + return responseSongFileChunk_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk.getDefaultInstance() + : responseSongFileChunk_; + } + + public static final int RESPONSE_SONG_OFFER_FIELD_NUMBER = 33; + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer responseSongOffer_; + + /** + * optional .pb.remote.ResponseSongOffer response_song_offer = 33; + */ + public boolean hasResponseSongOffer() { + return ((bitField0_ & 0x08000000) == 0x08000000); + } + + /** + * optional .pb.remote.ResponseSongOffer response_song_offer = 33; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer getResponseSongOffer() { + return responseSongOffer_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer.getDefaultInstance() + : responseSongOffer_; + } + + /** + * optional .pb.remote.ResponseSongOffer response_song_offer = 33; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOfferOrBuilder getResponseSongOfferOrBuilder() { + return responseSongOffer_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer.getDefaultInstance() + : responseSongOffer_; + } + + public static final int RESPONSE_LIBRARY_CHUNK_FIELD_NUMBER = 34; + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk responseLibraryChunk_; + + /** + * optional .pb.remote.ResponseLibraryChunk response_library_chunk = 34; + */ + public boolean hasResponseLibraryChunk() { + return ((bitField0_ & 0x10000000) == 0x10000000); + } + + /** + * optional .pb.remote.ResponseLibraryChunk response_library_chunk = 34; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk getResponseLibraryChunk() { + return responseLibraryChunk_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk.getDefaultInstance() + : responseLibraryChunk_; + } + + /** + * optional .pb.remote.ResponseLibraryChunk response_library_chunk = 34; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunkOrBuilder getResponseLibraryChunkOrBuilder() { + return responseLibraryChunk_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk.getDefaultInstance() + : responseLibraryChunk_; + } + + public static final int RESPONSE_DOWNLOAD_TOTAL_SIZE_FIELD_NUMBER = 36; + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize responseDownloadTotalSize_; + + /** + * optional .pb.remote.ResponseDownloadTotalSize response_download_total_size = 36; + */ + public boolean hasResponseDownloadTotalSize() { + return ((bitField0_ & 0x20000000) == 0x20000000); + } + + /** + * optional .pb.remote.ResponseDownloadTotalSize response_download_total_size = 36; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize getResponseDownloadTotalSize() { + return responseDownloadTotalSize_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize + .getDefaultInstance() + : responseDownloadTotalSize_; + } + + /** + * optional .pb.remote.ResponseDownloadTotalSize response_download_total_size = 36; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSizeOrBuilder getResponseDownloadTotalSizeOrBuilder() { + return responseDownloadTotalSize_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize + .getDefaultInstance() + : responseDownloadTotalSize_; + } + + public static final int RESPONSE_GLOBAL_SEARCH_FIELD_NUMBER = 38; + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch responseGlobalSearch_; + + /** + * optional .pb.remote.ResponseGlobalSearch response_global_search = 38; + */ + public boolean hasResponseGlobalSearch() { + return ((bitField0_ & 0x40000000) == 0x40000000); + } + + /** + * optional .pb.remote.ResponseGlobalSearch response_global_search = 38; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch getResponseGlobalSearch() { + return responseGlobalSearch_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch.getDefaultInstance() + : responseGlobalSearch_; + } + + /** + * optional .pb.remote.ResponseGlobalSearch response_global_search = 38; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchOrBuilder getResponseGlobalSearchOrBuilder() { + return responseGlobalSearch_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch.getDefaultInstance() + : responseGlobalSearch_; + } + + public static final int RESPONSE_TRANSCODER_STATUS_FIELD_NUMBER = 39; + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus responseTranscoderStatus_; + + /** + * optional .pb.remote.ResponseTranscoderStatus response_transcoder_status = 39; + */ + public boolean hasResponseTranscoderStatus() { + return ((bitField0_ & 0x80000000) == 0x80000000); + } + + /** + * optional .pb.remote.ResponseTranscoderStatus response_transcoder_status = 39; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus getResponseTranscoderStatus() { + return responseTranscoderStatus_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus + .getDefaultInstance() + : responseTranscoderStatus_; + } + + /** + * optional .pb.remote.ResponseTranscoderStatus response_transcoder_status = 39; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatusOrBuilder getResponseTranscoderStatusOrBuilder() { + return responseTranscoderStatus_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus + .getDefaultInstance() + : responseTranscoderStatus_; + } + + public static final int RESPONSE_GLOBAL_SEARCH_STATUS_FIELD_NUMBER = 40; + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus responseGlobalSearchStatus_; + + /** + * optional .pb.remote.ResponseGlobalSearchStatus response_global_search_status = 40; + */ + public boolean hasResponseGlobalSearchStatus() { + return ((bitField1_ & 0x00000001) == 0x00000001); + } + + /** + * optional .pb.remote.ResponseGlobalSearchStatus response_global_search_status = 40; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus getResponseGlobalSearchStatus() { + return responseGlobalSearchStatus_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus + .getDefaultInstance() + : responseGlobalSearchStatus_; + } + + /** + * optional .pb.remote.ResponseGlobalSearchStatus response_global_search_status = 40; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatusOrBuilder getResponseGlobalSearchStatusOrBuilder() { + return responseGlobalSearchStatus_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus + .getDefaultInstance() + : responseGlobalSearchStatus_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeInt32(1, version_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeEnum(2, type_); + } + if (((bitField0_ & 0x00000010) == 0x00000010)) { + output.writeMessage(10, getRequestPlaylistSongs()); + } + if (((bitField0_ & 0x00000020) == 0x00000020)) { + output.writeMessage(11, getRequestChangeSong()); + } + if (((bitField0_ & 0x00000040) == 0x00000040)) { + output.writeMessage(12, getRequestSetVolume()); + } + if (((bitField0_ & 0x00008000) == 0x00008000)) { + output.writeMessage(13, getRepeat()); + } + if (((bitField0_ & 0x00010000) == 0x00010000)) { + output.writeMessage(14, getShuffle()); + } + if (((bitField0_ & 0x00020000) == 0x00020000)) { + output.writeMessage(15, getResponseClementineInfo()); + } + if (((bitField0_ & 0x00040000) == 0x00040000)) { + output.writeMessage(16, getResponseCurrentMetadata()); + } + if (((bitField0_ & 0x00080000) == 0x00080000)) { + output.writeMessage(17, getResponsePlaylists()); + } + if (((bitField0_ & 0x00100000) == 0x00100000)) { + output.writeMessage(18, getResponsePlaylistSongs()); + } + if (((bitField0_ & 0x00200000) == 0x00200000)) { + output.writeMessage(19, getResponseEngineStateChanged()); + } + if (((bitField0_ & 0x00400000) == 0x00400000)) { + output.writeMessage(20, getResponseUpdateTrackPosition()); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeMessage(21, getRequestConnect()); + } + if (((bitField0_ & 0x00800000) == 0x00800000)) { + output.writeMessage(22, getResponseDisconnect()); + } + if (((bitField0_ & 0x00000080) == 0x00000080)) { + output.writeMessage(23, getRequestSetTrackPosition()); + } + if (((bitField0_ & 0x01000000) == 0x01000000)) { + output.writeMessage(24, getResponseActiveChanged()); + } + if (((bitField0_ & 0x00000100) == 0x00000100)) { + output.writeMessage(25, getRequestInsertUrls()); + } + if (((bitField0_ & 0x00000200) == 0x00000200)) { + output.writeMessage(26, getRequestRemoveSongs()); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + output.writeMessage(27, getRequestPlaylists()); + } + if (((bitField0_ & 0x00000400) == 0x00000400)) { + output.writeMessage(28, getRequestOpenPlaylist()); + } + if (((bitField0_ & 0x00000800) == 0x00000800)) { + output.writeMessage(29, getRequestClosePlaylist()); + } + if (((bitField0_ & 0x02000000) == 0x02000000)) { + output.writeMessage(30, getResponseLyrics()); + } + if (((bitField0_ & 0x00001000) == 0x00001000)) { + output.writeMessage(31, getRequestDownloadSongs()); + } + if (((bitField0_ & 0x04000000) == 0x04000000)) { + output.writeMessage(32, getResponseSongFileChunk()); + } + if (((bitField0_ & 0x08000000) == 0x08000000)) { + output.writeMessage(33, getResponseSongOffer()); + } + if (((bitField0_ & 0x10000000) == 0x10000000)) { + output.writeMessage(34, getResponseLibraryChunk()); + } + if (((bitField0_ & 0x00002000) == 0x00002000)) { + output.writeMessage(35, getRequestRateSong()); + } + if (((bitField0_ & 0x20000000) == 0x20000000)) { + output.writeMessage(36, getResponseDownloadTotalSize()); + } + if (((bitField0_ & 0x00004000) == 0x00004000)) { + output.writeMessage(37, getRequestGlobalSearch()); + } + if (((bitField0_ & 0x40000000) == 0x40000000)) { + output.writeMessage(38, getResponseGlobalSearch()); + } + if (((bitField0_ & 0x80000000) == 0x80000000)) { + output.writeMessage(39, getResponseTranscoderStatus()); + } + if (((bitField1_ & 0x00000001) == 0x00000001)) { + output.writeMessage(40, getResponseGlobalSearchStatus()); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, version_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, type_); + } + if (((bitField0_ & 0x00000010) == 0x00000010)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(10, getRequestPlaylistSongs()); + } + if (((bitField0_ & 0x00000020) == 0x00000020)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(11, getRequestChangeSong()); + } + if (((bitField0_ & 0x00000040) == 0x00000040)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(12, getRequestSetVolume()); + } + if (((bitField0_ & 0x00008000) == 0x00008000)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(13, getRepeat()); + } + if (((bitField0_ & 0x00010000) == 0x00010000)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(14, getShuffle()); + } + if (((bitField0_ & 0x00020000) == 0x00020000)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(15, getResponseClementineInfo()); + } + if (((bitField0_ & 0x00040000) == 0x00040000)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(16, getResponseCurrentMetadata()); + } + if (((bitField0_ & 0x00080000) == 0x00080000)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(17, getResponsePlaylists()); + } + if (((bitField0_ & 0x00100000) == 0x00100000)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(18, getResponsePlaylistSongs()); + } + if (((bitField0_ & 0x00200000) == 0x00200000)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(19, getResponseEngineStateChanged()); + } + if (((bitField0_ & 0x00400000) == 0x00400000)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(20, getResponseUpdateTrackPosition()); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(21, getRequestConnect()); + } + if (((bitField0_ & 0x00800000) == 0x00800000)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(22, getResponseDisconnect()); + } + if (((bitField0_ & 0x00000080) == 0x00000080)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(23, getRequestSetTrackPosition()); + } + if (((bitField0_ & 0x01000000) == 0x01000000)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(24, getResponseActiveChanged()); + } + if (((bitField0_ & 0x00000100) == 0x00000100)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(25, getRequestInsertUrls()); + } + if (((bitField0_ & 0x00000200) == 0x00000200)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(26, getRequestRemoveSongs()); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(27, getRequestPlaylists()); + } + if (((bitField0_ & 0x00000400) == 0x00000400)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(28, getRequestOpenPlaylist()); + } + if (((bitField0_ & 0x00000800) == 0x00000800)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(29, getRequestClosePlaylist()); + } + if (((bitField0_ & 0x02000000) == 0x02000000)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(30, getResponseLyrics()); + } + if (((bitField0_ & 0x00001000) == 0x00001000)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(31, getRequestDownloadSongs()); + } + if (((bitField0_ & 0x04000000) == 0x04000000)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(32, getResponseSongFileChunk()); + } + if (((bitField0_ & 0x08000000) == 0x08000000)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(33, getResponseSongOffer()); + } + if (((bitField0_ & 0x10000000) == 0x10000000)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(34, getResponseLibraryChunk()); + } + if (((bitField0_ & 0x00002000) == 0x00002000)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(35, getRequestRateSong()); + } + if (((bitField0_ & 0x20000000) == 0x20000000)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(36, getResponseDownloadTotalSize()); + } + if (((bitField0_ & 0x00004000) == 0x00004000)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(37, getRequestGlobalSearch()); + } + if (((bitField0_ & 0x40000000) == 0x40000000)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(38, getResponseGlobalSearch()); + } + if (((bitField0_ & 0x80000000) == 0x80000000)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(39, getResponseTranscoderStatus()); + } + if (((bitField1_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(40, getResponseGlobalSearchStatus()); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.Message)) { + return super.equals(obj); + } + de.qspool.clementineremote.backend.pb.ClementineRemote.Message other = (de.qspool.clementineremote.backend.pb.ClementineRemote.Message) obj; + + boolean result = true; + result = result && (hasVersion() == other.hasVersion()); + if (hasVersion()) { + result = result && (getVersion() == other.getVersion()); + } + result = result && (hasType() == other.hasType()); + if (hasType()) { + result = result && type_ == other.type_; + } + result = result && (hasRequestConnect() == other.hasRequestConnect()); + if (hasRequestConnect()) { + result = result && getRequestConnect().equals(other.getRequestConnect()); + } + result = result && (hasRequestPlaylists() == other.hasRequestPlaylists()); + if (hasRequestPlaylists()) { + result = result && getRequestPlaylists().equals(other.getRequestPlaylists()); + } + result = result && (hasRequestPlaylistSongs() == other.hasRequestPlaylistSongs()); + if (hasRequestPlaylistSongs()) { + result = result && getRequestPlaylistSongs().equals(other.getRequestPlaylistSongs()); + } + result = result && (hasRequestChangeSong() == other.hasRequestChangeSong()); + if (hasRequestChangeSong()) { + result = result && getRequestChangeSong().equals(other.getRequestChangeSong()); + } + result = result && (hasRequestSetVolume() == other.hasRequestSetVolume()); + if (hasRequestSetVolume()) { + result = result && getRequestSetVolume().equals(other.getRequestSetVolume()); + } + result = result && (hasRequestSetTrackPosition() == other.hasRequestSetTrackPosition()); + if (hasRequestSetTrackPosition()) { + result = result && getRequestSetTrackPosition().equals(other.getRequestSetTrackPosition()); + } + result = result && (hasRequestInsertUrls() == other.hasRequestInsertUrls()); + if (hasRequestInsertUrls()) { + result = result && getRequestInsertUrls().equals(other.getRequestInsertUrls()); + } + result = result && (hasRequestRemoveSongs() == other.hasRequestRemoveSongs()); + if (hasRequestRemoveSongs()) { + result = result && getRequestRemoveSongs().equals(other.getRequestRemoveSongs()); + } + result = result && (hasRequestOpenPlaylist() == other.hasRequestOpenPlaylist()); + if (hasRequestOpenPlaylist()) { + result = result && getRequestOpenPlaylist().equals(other.getRequestOpenPlaylist()); + } + result = result && (hasRequestClosePlaylist() == other.hasRequestClosePlaylist()); + if (hasRequestClosePlaylist()) { + result = result && getRequestClosePlaylist().equals(other.getRequestClosePlaylist()); + } + result = result && (hasRequestDownloadSongs() == other.hasRequestDownloadSongs()); + if (hasRequestDownloadSongs()) { + result = result && getRequestDownloadSongs().equals(other.getRequestDownloadSongs()); + } + result = result && (hasRequestRateSong() == other.hasRequestRateSong()); + if (hasRequestRateSong()) { + result = result && getRequestRateSong().equals(other.getRequestRateSong()); + } + result = result && (hasRequestGlobalSearch() == other.hasRequestGlobalSearch()); + if (hasRequestGlobalSearch()) { + result = result && getRequestGlobalSearch().equals(other.getRequestGlobalSearch()); + } + result = result && (hasRepeat() == other.hasRepeat()); + if (hasRepeat()) { + result = result && getRepeat().equals(other.getRepeat()); + } + result = result && (hasShuffle() == other.hasShuffle()); + if (hasShuffle()) { + result = result && getShuffle().equals(other.getShuffle()); + } + result = result && (hasResponseClementineInfo() == other.hasResponseClementineInfo()); + if (hasResponseClementineInfo()) { + result = result && getResponseClementineInfo().equals(other.getResponseClementineInfo()); + } + result = result && (hasResponseCurrentMetadata() == other.hasResponseCurrentMetadata()); + if (hasResponseCurrentMetadata()) { + result = result && getResponseCurrentMetadata().equals(other.getResponseCurrentMetadata()); + } + result = result && (hasResponsePlaylists() == other.hasResponsePlaylists()); + if (hasResponsePlaylists()) { + result = result && getResponsePlaylists().equals(other.getResponsePlaylists()); + } + result = result && (hasResponsePlaylistSongs() == other.hasResponsePlaylistSongs()); + if (hasResponsePlaylistSongs()) { + result = result && getResponsePlaylistSongs().equals(other.getResponsePlaylistSongs()); + } + result = result && (hasResponseEngineStateChanged() == other.hasResponseEngineStateChanged()); + if (hasResponseEngineStateChanged()) { + result = result && getResponseEngineStateChanged().equals(other.getResponseEngineStateChanged()); + } + result = result && (hasResponseUpdateTrackPosition() == other.hasResponseUpdateTrackPosition()); + if (hasResponseUpdateTrackPosition()) { + result = result && getResponseUpdateTrackPosition().equals(other.getResponseUpdateTrackPosition()); + } + result = result && (hasResponseDisconnect() == other.hasResponseDisconnect()); + if (hasResponseDisconnect()) { + result = result && getResponseDisconnect().equals(other.getResponseDisconnect()); + } + result = result && (hasResponseActiveChanged() == other.hasResponseActiveChanged()); + if (hasResponseActiveChanged()) { + result = result && getResponseActiveChanged().equals(other.getResponseActiveChanged()); + } + result = result && (hasResponseLyrics() == other.hasResponseLyrics()); + if (hasResponseLyrics()) { + result = result && getResponseLyrics().equals(other.getResponseLyrics()); + } + result = result && (hasResponseSongFileChunk() == other.hasResponseSongFileChunk()); + if (hasResponseSongFileChunk()) { + result = result && getResponseSongFileChunk().equals(other.getResponseSongFileChunk()); + } + result = result && (hasResponseSongOffer() == other.hasResponseSongOffer()); + if (hasResponseSongOffer()) { + result = result && getResponseSongOffer().equals(other.getResponseSongOffer()); + } + result = result && (hasResponseLibraryChunk() == other.hasResponseLibraryChunk()); + if (hasResponseLibraryChunk()) { + result = result && getResponseLibraryChunk().equals(other.getResponseLibraryChunk()); + } + result = result && (hasResponseDownloadTotalSize() == other.hasResponseDownloadTotalSize()); + if (hasResponseDownloadTotalSize()) { + result = result && getResponseDownloadTotalSize().equals(other.getResponseDownloadTotalSize()); + } + result = result && (hasResponseGlobalSearch() == other.hasResponseGlobalSearch()); + if (hasResponseGlobalSearch()) { + result = result && getResponseGlobalSearch().equals(other.getResponseGlobalSearch()); + } + result = result && (hasResponseTranscoderStatus() == other.hasResponseTranscoderStatus()); + if (hasResponseTranscoderStatus()) { + result = result && getResponseTranscoderStatus().equals(other.getResponseTranscoderStatus()); + } + result = result && (hasResponseGlobalSearchStatus() == other.hasResponseGlobalSearchStatus()); + if (hasResponseGlobalSearchStatus()) { + result = result && getResponseGlobalSearchStatus().equals(other.getResponseGlobalSearchStatus()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasVersion()) { + hash = (37 * hash) + VERSION_FIELD_NUMBER; + hash = (53 * hash) + getVersion(); + } + if (hasType()) { + hash = (37 * hash) + TYPE_FIELD_NUMBER; + hash = (53 * hash) + type_; + } + if (hasRequestConnect()) { + hash = (37 * hash) + REQUEST_CONNECT_FIELD_NUMBER; + hash = (53 * hash) + getRequestConnect().hashCode(); + } + if (hasRequestPlaylists()) { + hash = (37 * hash) + REQUEST_PLAYLISTS_FIELD_NUMBER; + hash = (53 * hash) + getRequestPlaylists().hashCode(); + } + if (hasRequestPlaylistSongs()) { + hash = (37 * hash) + REQUEST_PLAYLIST_SONGS_FIELD_NUMBER; + hash = (53 * hash) + getRequestPlaylistSongs().hashCode(); + } + if (hasRequestChangeSong()) { + hash = (37 * hash) + REQUEST_CHANGE_SONG_FIELD_NUMBER; + hash = (53 * hash) + getRequestChangeSong().hashCode(); + } + if (hasRequestSetVolume()) { + hash = (37 * hash) + REQUEST_SET_VOLUME_FIELD_NUMBER; + hash = (53 * hash) + getRequestSetVolume().hashCode(); + } + if (hasRequestSetTrackPosition()) { + hash = (37 * hash) + REQUEST_SET_TRACK_POSITION_FIELD_NUMBER; + hash = (53 * hash) + getRequestSetTrackPosition().hashCode(); + } + if (hasRequestInsertUrls()) { + hash = (37 * hash) + REQUEST_INSERT_URLS_FIELD_NUMBER; + hash = (53 * hash) + getRequestInsertUrls().hashCode(); + } + if (hasRequestRemoveSongs()) { + hash = (37 * hash) + REQUEST_REMOVE_SONGS_FIELD_NUMBER; + hash = (53 * hash) + getRequestRemoveSongs().hashCode(); + } + if (hasRequestOpenPlaylist()) { + hash = (37 * hash) + REQUEST_OPEN_PLAYLIST_FIELD_NUMBER; + hash = (53 * hash) + getRequestOpenPlaylist().hashCode(); + } + if (hasRequestClosePlaylist()) { + hash = (37 * hash) + REQUEST_CLOSE_PLAYLIST_FIELD_NUMBER; + hash = (53 * hash) + getRequestClosePlaylist().hashCode(); + } + if (hasRequestDownloadSongs()) { + hash = (37 * hash) + REQUEST_DOWNLOAD_SONGS_FIELD_NUMBER; + hash = (53 * hash) + getRequestDownloadSongs().hashCode(); + } + if (hasRequestRateSong()) { + hash = (37 * hash) + REQUEST_RATE_SONG_FIELD_NUMBER; + hash = (53 * hash) + getRequestRateSong().hashCode(); + } + if (hasRequestGlobalSearch()) { + hash = (37 * hash) + REQUEST_GLOBAL_SEARCH_FIELD_NUMBER; + hash = (53 * hash) + getRequestGlobalSearch().hashCode(); + } + if (hasRepeat()) { + hash = (37 * hash) + REPEAT_FIELD_NUMBER; + hash = (53 * hash) + getRepeat().hashCode(); + } + if (hasShuffle()) { + hash = (37 * hash) + SHUFFLE_FIELD_NUMBER; + hash = (53 * hash) + getShuffle().hashCode(); + } + if (hasResponseClementineInfo()) { + hash = (37 * hash) + RESPONSE_CLEMENTINE_INFO_FIELD_NUMBER; + hash = (53 * hash) + getResponseClementineInfo().hashCode(); + } + if (hasResponseCurrentMetadata()) { + hash = (37 * hash) + RESPONSE_CURRENT_METADATA_FIELD_NUMBER; + hash = (53 * hash) + getResponseCurrentMetadata().hashCode(); + } + if (hasResponsePlaylists()) { + hash = (37 * hash) + RESPONSE_PLAYLISTS_FIELD_NUMBER; + hash = (53 * hash) + getResponsePlaylists().hashCode(); + } + if (hasResponsePlaylistSongs()) { + hash = (37 * hash) + RESPONSE_PLAYLIST_SONGS_FIELD_NUMBER; + hash = (53 * hash) + getResponsePlaylistSongs().hashCode(); + } + if (hasResponseEngineStateChanged()) { + hash = (37 * hash) + RESPONSE_ENGINE_STATE_CHANGED_FIELD_NUMBER; + hash = (53 * hash) + getResponseEngineStateChanged().hashCode(); + } + if (hasResponseUpdateTrackPosition()) { + hash = (37 * hash) + RESPONSE_UPDATE_TRACK_POSITION_FIELD_NUMBER; + hash = (53 * hash) + getResponseUpdateTrackPosition().hashCode(); + } + if (hasResponseDisconnect()) { + hash = (37 * hash) + RESPONSE_DISCONNECT_FIELD_NUMBER; + hash = (53 * hash) + getResponseDisconnect().hashCode(); + } + if (hasResponseActiveChanged()) { + hash = (37 * hash) + RESPONSE_ACTIVE_CHANGED_FIELD_NUMBER; + hash = (53 * hash) + getResponseActiveChanged().hashCode(); + } + if (hasResponseLyrics()) { + hash = (37 * hash) + RESPONSE_LYRICS_FIELD_NUMBER; + hash = (53 * hash) + getResponseLyrics().hashCode(); + } + if (hasResponseSongFileChunk()) { + hash = (37 * hash) + RESPONSE_SONG_FILE_CHUNK_FIELD_NUMBER; + hash = (53 * hash) + getResponseSongFileChunk().hashCode(); + } + if (hasResponseSongOffer()) { + hash = (37 * hash) + RESPONSE_SONG_OFFER_FIELD_NUMBER; + hash = (53 * hash) + getResponseSongOffer().hashCode(); + } + if (hasResponseLibraryChunk()) { + hash = (37 * hash) + RESPONSE_LIBRARY_CHUNK_FIELD_NUMBER; + hash = (53 * hash) + getResponseLibraryChunk().hashCode(); + } + if (hasResponseDownloadTotalSize()) { + hash = (37 * hash) + RESPONSE_DOWNLOAD_TOTAL_SIZE_FIELD_NUMBER; + hash = (53 * hash) + getResponseDownloadTotalSize().hashCode(); + } + if (hasResponseGlobalSearch()) { + hash = (37 * hash) + RESPONSE_GLOBAL_SEARCH_FIELD_NUMBER; + hash = (53 * hash) + getResponseGlobalSearch().hashCode(); + } + if (hasResponseTranscoderStatus()) { + hash = (37 * hash) + RESPONSE_TRANSCODER_STATUS_FIELD_NUMBER; + hash = (53 * hash) + getResponseTranscoderStatus().hashCode(); + } + if (hasResponseGlobalSearchStatus()) { + hash = (37 * hash) + RESPONSE_GLOBAL_SEARCH_STATUS_FIELD_NUMBER; + hash = (53 * hash) + getResponseGlobalSearchStatus().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Message parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Message parseFrom(java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Message parseFrom( + com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Message parseFrom( + com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Message parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Message parseFrom(byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Message parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Message parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Message parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Message parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, + extensionRegistry); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Message parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Message parseFrom( + com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(de.qspool.clementineremote.backend.pb.ClementineRemote.Message prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+         * The message itself
+         * 
+ * + * Protobuf type {@code pb.remote.Message} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pb.remote.Message) + de.qspool.clementineremote.backend.pb.ClementineRemote.MessageOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_Message_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_Message_fieldAccessorTable + .ensureFieldAccessorsInitialized( + de.qspool.clementineremote.backend.pb.ClementineRemote.Message.class, + de.qspool.clementineremote.backend.pb.ClementineRemote.Message.Builder.class); + } + + // Construct using de.qspool.clementineremote.backend.pb.ClementineRemote.Message.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getRequestConnectFieldBuilder(); + getRequestPlaylistsFieldBuilder(); + getRequestPlaylistSongsFieldBuilder(); + getRequestChangeSongFieldBuilder(); + getRequestSetVolumeFieldBuilder(); + getRequestSetTrackPositionFieldBuilder(); + getRequestInsertUrlsFieldBuilder(); + getRequestRemoveSongsFieldBuilder(); + getRequestOpenPlaylistFieldBuilder(); + getRequestClosePlaylistFieldBuilder(); + getRequestDownloadSongsFieldBuilder(); + getRequestRateSongFieldBuilder(); + getRequestGlobalSearchFieldBuilder(); + getRepeatFieldBuilder(); + getShuffleFieldBuilder(); + getResponseClementineInfoFieldBuilder(); + getResponseCurrentMetadataFieldBuilder(); + getResponsePlaylistsFieldBuilder(); + getResponsePlaylistSongsFieldBuilder(); + getResponseEngineStateChangedFieldBuilder(); + getResponseUpdateTrackPositionFieldBuilder(); + getResponseDisconnectFieldBuilder(); + getResponseActiveChangedFieldBuilder(); + getResponseLyricsFieldBuilder(); + getResponseSongFileChunkFieldBuilder(); + getResponseSongOfferFieldBuilder(); + getResponseLibraryChunkFieldBuilder(); + getResponseDownloadTotalSizeFieldBuilder(); + getResponseGlobalSearchFieldBuilder(); + getResponseTranscoderStatusFieldBuilder(); + getResponseGlobalSearchStatusFieldBuilder(); + } + } + + @java.lang.Override + public Builder clear() { + super.clear(); + version_ = 21; + bitField0_ = (bitField0_ & ~0x00000001); + type_ = 0; + bitField0_ = (bitField0_ & ~0x00000002); + if (requestConnectBuilder_ == null) { + requestConnect_ = null; + } else { + requestConnectBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000004); + if (requestPlaylistsBuilder_ == null) { + requestPlaylists_ = null; + } else { + requestPlaylistsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000008); + if (requestPlaylistSongsBuilder_ == null) { + requestPlaylistSongs_ = null; + } else { + requestPlaylistSongsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000010); + if (requestChangeSongBuilder_ == null) { + requestChangeSong_ = null; + } else { + requestChangeSongBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000020); + if (requestSetVolumeBuilder_ == null) { + requestSetVolume_ = null; + } else { + requestSetVolumeBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000040); + if (requestSetTrackPositionBuilder_ == null) { + requestSetTrackPosition_ = null; + } else { + requestSetTrackPositionBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000080); + if (requestInsertUrlsBuilder_ == null) { + requestInsertUrls_ = null; + } else { + requestInsertUrlsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000100); + if (requestRemoveSongsBuilder_ == null) { + requestRemoveSongs_ = null; + } else { + requestRemoveSongsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000200); + if (requestOpenPlaylistBuilder_ == null) { + requestOpenPlaylist_ = null; + } else { + requestOpenPlaylistBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000400); + if (requestClosePlaylistBuilder_ == null) { + requestClosePlaylist_ = null; + } else { + requestClosePlaylistBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000800); + if (requestDownloadSongsBuilder_ == null) { + requestDownloadSongs_ = null; + } else { + requestDownloadSongsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00001000); + if (requestRateSongBuilder_ == null) { + requestRateSong_ = null; + } else { + requestRateSongBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00002000); + if (requestGlobalSearchBuilder_ == null) { + requestGlobalSearch_ = null; + } else { + requestGlobalSearchBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00004000); + if (repeatBuilder_ == null) { + repeat_ = null; + } else { + repeatBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00008000); + if (shuffleBuilder_ == null) { + shuffle_ = null; + } else { + shuffleBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00010000); + if (responseClementineInfoBuilder_ == null) { + responseClementineInfo_ = null; + } else { + responseClementineInfoBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00020000); + if (responseCurrentMetadataBuilder_ == null) { + responseCurrentMetadata_ = null; + } else { + responseCurrentMetadataBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00040000); + if (responsePlaylistsBuilder_ == null) { + responsePlaylists_ = null; + } else { + responsePlaylistsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00080000); + if (responsePlaylistSongsBuilder_ == null) { + responsePlaylistSongs_ = null; + } else { + responsePlaylistSongsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00100000); + if (responseEngineStateChangedBuilder_ == null) { + responseEngineStateChanged_ = null; + } else { + responseEngineStateChangedBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00200000); + if (responseUpdateTrackPositionBuilder_ == null) { + responseUpdateTrackPosition_ = null; + } else { + responseUpdateTrackPositionBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00400000); + if (responseDisconnectBuilder_ == null) { + responseDisconnect_ = null; + } else { + responseDisconnectBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00800000); + if (responseActiveChangedBuilder_ == null) { + responseActiveChanged_ = null; + } else { + responseActiveChangedBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x01000000); + if (responseLyricsBuilder_ == null) { + responseLyrics_ = null; + } else { + responseLyricsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x02000000); + if (responseSongFileChunkBuilder_ == null) { + responseSongFileChunk_ = null; + } else { + responseSongFileChunkBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x04000000); + if (responseSongOfferBuilder_ == null) { + responseSongOffer_ = null; + } else { + responseSongOfferBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x08000000); + if (responseLibraryChunkBuilder_ == null) { + responseLibraryChunk_ = null; + } else { + responseLibraryChunkBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x10000000); + if (responseDownloadTotalSizeBuilder_ == null) { + responseDownloadTotalSize_ = null; + } else { + responseDownloadTotalSizeBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x20000000); + if (responseGlobalSearchBuilder_ == null) { + responseGlobalSearch_ = null; + } else { + responseGlobalSearchBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x40000000); + if (responseTranscoderStatusBuilder_ == null) { + responseTranscoderStatus_ = null; + } else { + responseTranscoderStatusBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x80000000); + if (responseGlobalSearchStatusBuilder_ == null) { + responseGlobalSearchStatus_ = null; + } else { + responseGlobalSearchStatusBuilder_.clear(); + } + bitField1_ = (bitField1_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.internal_static_pb_remote_Message_descriptor; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.Message getDefaultInstanceForType() { + return de.qspool.clementineremote.backend.pb.ClementineRemote.Message.getDefaultInstance(); + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.Message build() { + de.qspool.clementineremote.backend.pb.ClementineRemote.Message result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.Message buildPartial() { + de.qspool.clementineremote.backend.pb.ClementineRemote.Message result = new de.qspool.clementineremote.backend.pb.ClementineRemote.Message( + this); + int from_bitField0_ = bitField0_; + int from_bitField1_ = bitField1_; + int to_bitField0_ = 0; + int to_bitField1_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.version_ = version_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.type_ = type_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + if (requestConnectBuilder_ == null) { + result.requestConnect_ = requestConnect_; + } else { + result.requestConnect_ = requestConnectBuilder_.build(); + } + if (((from_bitField0_ & 0x00000008) == 0x00000008)) { + to_bitField0_ |= 0x00000008; + } + if (requestPlaylistsBuilder_ == null) { + result.requestPlaylists_ = requestPlaylists_; + } else { + result.requestPlaylists_ = requestPlaylistsBuilder_.build(); + } + if (((from_bitField0_ & 0x00000010) == 0x00000010)) { + to_bitField0_ |= 0x00000010; + } + if (requestPlaylistSongsBuilder_ == null) { + result.requestPlaylistSongs_ = requestPlaylistSongs_; + } else { + result.requestPlaylistSongs_ = requestPlaylistSongsBuilder_.build(); + } + if (((from_bitField0_ & 0x00000020) == 0x00000020)) { + to_bitField0_ |= 0x00000020; + } + if (requestChangeSongBuilder_ == null) { + result.requestChangeSong_ = requestChangeSong_; + } else { + result.requestChangeSong_ = requestChangeSongBuilder_.build(); + } + if (((from_bitField0_ & 0x00000040) == 0x00000040)) { + to_bitField0_ |= 0x00000040; + } + if (requestSetVolumeBuilder_ == null) { + result.requestSetVolume_ = requestSetVolume_; + } else { + result.requestSetVolume_ = requestSetVolumeBuilder_.build(); + } + if (((from_bitField0_ & 0x00000080) == 0x00000080)) { + to_bitField0_ |= 0x00000080; + } + if (requestSetTrackPositionBuilder_ == null) { + result.requestSetTrackPosition_ = requestSetTrackPosition_; + } else { + result.requestSetTrackPosition_ = requestSetTrackPositionBuilder_.build(); + } + if (((from_bitField0_ & 0x00000100) == 0x00000100)) { + to_bitField0_ |= 0x00000100; + } + if (requestInsertUrlsBuilder_ == null) { + result.requestInsertUrls_ = requestInsertUrls_; + } else { + result.requestInsertUrls_ = requestInsertUrlsBuilder_.build(); + } + if (((from_bitField0_ & 0x00000200) == 0x00000200)) { + to_bitField0_ |= 0x00000200; + } + if (requestRemoveSongsBuilder_ == null) { + result.requestRemoveSongs_ = requestRemoveSongs_; + } else { + result.requestRemoveSongs_ = requestRemoveSongsBuilder_.build(); + } + if (((from_bitField0_ & 0x00000400) == 0x00000400)) { + to_bitField0_ |= 0x00000400; + } + if (requestOpenPlaylistBuilder_ == null) { + result.requestOpenPlaylist_ = requestOpenPlaylist_; + } else { + result.requestOpenPlaylist_ = requestOpenPlaylistBuilder_.build(); + } + if (((from_bitField0_ & 0x00000800) == 0x00000800)) { + to_bitField0_ |= 0x00000800; + } + if (requestClosePlaylistBuilder_ == null) { + result.requestClosePlaylist_ = requestClosePlaylist_; + } else { + result.requestClosePlaylist_ = requestClosePlaylistBuilder_.build(); + } + if (((from_bitField0_ & 0x00001000) == 0x00001000)) { + to_bitField0_ |= 0x00001000; + } + if (requestDownloadSongsBuilder_ == null) { + result.requestDownloadSongs_ = requestDownloadSongs_; + } else { + result.requestDownloadSongs_ = requestDownloadSongsBuilder_.build(); + } + if (((from_bitField0_ & 0x00002000) == 0x00002000)) { + to_bitField0_ |= 0x00002000; + } + if (requestRateSongBuilder_ == null) { + result.requestRateSong_ = requestRateSong_; + } else { + result.requestRateSong_ = requestRateSongBuilder_.build(); + } + if (((from_bitField0_ & 0x00004000) == 0x00004000)) { + to_bitField0_ |= 0x00004000; + } + if (requestGlobalSearchBuilder_ == null) { + result.requestGlobalSearch_ = requestGlobalSearch_; + } else { + result.requestGlobalSearch_ = requestGlobalSearchBuilder_.build(); + } + if (((from_bitField0_ & 0x00008000) == 0x00008000)) { + to_bitField0_ |= 0x00008000; + } + if (repeatBuilder_ == null) { + result.repeat_ = repeat_; + } else { + result.repeat_ = repeatBuilder_.build(); + } + if (((from_bitField0_ & 0x00010000) == 0x00010000)) { + to_bitField0_ |= 0x00010000; + } + if (shuffleBuilder_ == null) { + result.shuffle_ = shuffle_; + } else { + result.shuffle_ = shuffleBuilder_.build(); + } + if (((from_bitField0_ & 0x00020000) == 0x00020000)) { + to_bitField0_ |= 0x00020000; + } + if (responseClementineInfoBuilder_ == null) { + result.responseClementineInfo_ = responseClementineInfo_; + } else { + result.responseClementineInfo_ = responseClementineInfoBuilder_.build(); + } + if (((from_bitField0_ & 0x00040000) == 0x00040000)) { + to_bitField0_ |= 0x00040000; + } + if (responseCurrentMetadataBuilder_ == null) { + result.responseCurrentMetadata_ = responseCurrentMetadata_; + } else { + result.responseCurrentMetadata_ = responseCurrentMetadataBuilder_.build(); + } + if (((from_bitField0_ & 0x00080000) == 0x00080000)) { + to_bitField0_ |= 0x00080000; + } + if (responsePlaylistsBuilder_ == null) { + result.responsePlaylists_ = responsePlaylists_; + } else { + result.responsePlaylists_ = responsePlaylistsBuilder_.build(); + } + if (((from_bitField0_ & 0x00100000) == 0x00100000)) { + to_bitField0_ |= 0x00100000; + } + if (responsePlaylistSongsBuilder_ == null) { + result.responsePlaylistSongs_ = responsePlaylistSongs_; + } else { + result.responsePlaylistSongs_ = responsePlaylistSongsBuilder_.build(); + } + if (((from_bitField0_ & 0x00200000) == 0x00200000)) { + to_bitField0_ |= 0x00200000; + } + if (responseEngineStateChangedBuilder_ == null) { + result.responseEngineStateChanged_ = responseEngineStateChanged_; + } else { + result.responseEngineStateChanged_ = responseEngineStateChangedBuilder_.build(); + } + if (((from_bitField0_ & 0x00400000) == 0x00400000)) { + to_bitField0_ |= 0x00400000; + } + if (responseUpdateTrackPositionBuilder_ == null) { + result.responseUpdateTrackPosition_ = responseUpdateTrackPosition_; + } else { + result.responseUpdateTrackPosition_ = responseUpdateTrackPositionBuilder_.build(); + } + if (((from_bitField0_ & 0x00800000) == 0x00800000)) { + to_bitField0_ |= 0x00800000; + } + if (responseDisconnectBuilder_ == null) { + result.responseDisconnect_ = responseDisconnect_; + } else { + result.responseDisconnect_ = responseDisconnectBuilder_.build(); + } + if (((from_bitField0_ & 0x01000000) == 0x01000000)) { + to_bitField0_ |= 0x01000000; + } + if (responseActiveChangedBuilder_ == null) { + result.responseActiveChanged_ = responseActiveChanged_; + } else { + result.responseActiveChanged_ = responseActiveChangedBuilder_.build(); + } + if (((from_bitField0_ & 0x02000000) == 0x02000000)) { + to_bitField0_ |= 0x02000000; + } + if (responseLyricsBuilder_ == null) { + result.responseLyrics_ = responseLyrics_; + } else { + result.responseLyrics_ = responseLyricsBuilder_.build(); + } + if (((from_bitField0_ & 0x04000000) == 0x04000000)) { + to_bitField0_ |= 0x04000000; + } + if (responseSongFileChunkBuilder_ == null) { + result.responseSongFileChunk_ = responseSongFileChunk_; + } else { + result.responseSongFileChunk_ = responseSongFileChunkBuilder_.build(); + } + if (((from_bitField0_ & 0x08000000) == 0x08000000)) { + to_bitField0_ |= 0x08000000; + } + if (responseSongOfferBuilder_ == null) { + result.responseSongOffer_ = responseSongOffer_; + } else { + result.responseSongOffer_ = responseSongOfferBuilder_.build(); + } + if (((from_bitField0_ & 0x10000000) == 0x10000000)) { + to_bitField0_ |= 0x10000000; + } + if (responseLibraryChunkBuilder_ == null) { + result.responseLibraryChunk_ = responseLibraryChunk_; + } else { + result.responseLibraryChunk_ = responseLibraryChunkBuilder_.build(); + } + if (((from_bitField0_ & 0x20000000) == 0x20000000)) { + to_bitField0_ |= 0x20000000; + } + if (responseDownloadTotalSizeBuilder_ == null) { + result.responseDownloadTotalSize_ = responseDownloadTotalSize_; + } else { + result.responseDownloadTotalSize_ = responseDownloadTotalSizeBuilder_.build(); + } + if (((from_bitField0_ & 0x40000000) == 0x40000000)) { + to_bitField0_ |= 0x40000000; + } + if (responseGlobalSearchBuilder_ == null) { + result.responseGlobalSearch_ = responseGlobalSearch_; + } else { + result.responseGlobalSearch_ = responseGlobalSearchBuilder_.build(); + } + if (((from_bitField0_ & 0x80000000) == 0x80000000)) { + to_bitField0_ |= 0x80000000; + } + if (responseTranscoderStatusBuilder_ == null) { + result.responseTranscoderStatus_ = responseTranscoderStatus_; + } else { + result.responseTranscoderStatus_ = responseTranscoderStatusBuilder_.build(); + } + if (((from_bitField1_ & 0x00000001) == 0x00000001)) { + to_bitField1_ |= 0x00000001; + } + if (responseGlobalSearchStatusBuilder_ == null) { + result.responseGlobalSearchStatus_ = responseGlobalSearchStatus_; + } else { + result.responseGlobalSearchStatus_ = responseGlobalSearchStatusBuilder_.build(); + } + result.bitField0_ = to_bitField0_; + result.bitField1_ = to_bitField1_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + + @java.lang.Override + public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return (Builder) super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, + java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof de.qspool.clementineremote.backend.pb.ClementineRemote.Message) { + return mergeFrom((de.qspool.clementineremote.backend.pb.ClementineRemote.Message) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(de.qspool.clementineremote.backend.pb.ClementineRemote.Message other) { + if (other == de.qspool.clementineremote.backend.pb.ClementineRemote.Message.getDefaultInstance()) + return this; + if (other.hasVersion()) { + setVersion(other.getVersion()); + } + if (other.hasType()) { + setType(other.getType()); + } + if (other.hasRequestConnect()) { + mergeRequestConnect(other.getRequestConnect()); + } + if (other.hasRequestPlaylists()) { + mergeRequestPlaylists(other.getRequestPlaylists()); + } + if (other.hasRequestPlaylistSongs()) { + mergeRequestPlaylistSongs(other.getRequestPlaylistSongs()); + } + if (other.hasRequestChangeSong()) { + mergeRequestChangeSong(other.getRequestChangeSong()); + } + if (other.hasRequestSetVolume()) { + mergeRequestSetVolume(other.getRequestSetVolume()); + } + if (other.hasRequestSetTrackPosition()) { + mergeRequestSetTrackPosition(other.getRequestSetTrackPosition()); + } + if (other.hasRequestInsertUrls()) { + mergeRequestInsertUrls(other.getRequestInsertUrls()); + } + if (other.hasRequestRemoveSongs()) { + mergeRequestRemoveSongs(other.getRequestRemoveSongs()); + } + if (other.hasRequestOpenPlaylist()) { + mergeRequestOpenPlaylist(other.getRequestOpenPlaylist()); + } + if (other.hasRequestClosePlaylist()) { + mergeRequestClosePlaylist(other.getRequestClosePlaylist()); + } + if (other.hasRequestDownloadSongs()) { + mergeRequestDownloadSongs(other.getRequestDownloadSongs()); + } + if (other.hasRequestRateSong()) { + mergeRequestRateSong(other.getRequestRateSong()); + } + if (other.hasRequestGlobalSearch()) { + mergeRequestGlobalSearch(other.getRequestGlobalSearch()); + } + if (other.hasRepeat()) { + mergeRepeat(other.getRepeat()); + } + if (other.hasShuffle()) { + mergeShuffle(other.getShuffle()); + } + if (other.hasResponseClementineInfo()) { + mergeResponseClementineInfo(other.getResponseClementineInfo()); + } + if (other.hasResponseCurrentMetadata()) { + mergeResponseCurrentMetadata(other.getResponseCurrentMetadata()); + } + if (other.hasResponsePlaylists()) { + mergeResponsePlaylists(other.getResponsePlaylists()); + } + if (other.hasResponsePlaylistSongs()) { + mergeResponsePlaylistSongs(other.getResponsePlaylistSongs()); + } + if (other.hasResponseEngineStateChanged()) { + mergeResponseEngineStateChanged(other.getResponseEngineStateChanged()); + } + if (other.hasResponseUpdateTrackPosition()) { + mergeResponseUpdateTrackPosition(other.getResponseUpdateTrackPosition()); + } + if (other.hasResponseDisconnect()) { + mergeResponseDisconnect(other.getResponseDisconnect()); + } + if (other.hasResponseActiveChanged()) { + mergeResponseActiveChanged(other.getResponseActiveChanged()); + } + if (other.hasResponseLyrics()) { + mergeResponseLyrics(other.getResponseLyrics()); + } + if (other.hasResponseSongFileChunk()) { + mergeResponseSongFileChunk(other.getResponseSongFileChunk()); + } + if (other.hasResponseSongOffer()) { + mergeResponseSongOffer(other.getResponseSongOffer()); + } + if (other.hasResponseLibraryChunk()) { + mergeResponseLibraryChunk(other.getResponseLibraryChunk()); + } + if (other.hasResponseDownloadTotalSize()) { + mergeResponseDownloadTotalSize(other.getResponseDownloadTotalSize()); + } + if (other.hasResponseGlobalSearch()) { + mergeResponseGlobalSearch(other.getResponseGlobalSearch()); + } + if (other.hasResponseTranscoderStatus()) { + mergeResponseTranscoderStatus(other.getResponseTranscoderStatus()); + } + if (other.hasResponseGlobalSearchStatus()) { + mergeResponseGlobalSearchStatus(other.getResponseGlobalSearchStatus()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + de.qspool.clementineremote.backend.pb.ClementineRemote.Message parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (de.qspool.clementineremote.backend.pb.ClementineRemote.Message) e + .getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int bitField0_; + private int bitField1_; + + private int version_ = 21; + + /** + * optional int32 version = 1 [default = 21]; + */ + public boolean hasVersion() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + + /** + * optional int32 version = 1 [default = 21]; + */ + public int getVersion() { + return version_; + } + + /** + * optional int32 version = 1 [default = 21]; + */ + public Builder setVersion(int value) { + bitField0_ |= 0x00000001; + version_ = value; + onChanged(); + return this; + } + + /** + * optional int32 version = 1 [default = 21]; + */ + public Builder clearVersion() { + bitField0_ = (bitField0_ & ~0x00000001); + version_ = 21; + onChanged(); + return this; + } + + private int type_ = 0; + + /** + *
+             * What data is in the message?
+             * 
+ * + * optional .pb.remote.MsgType type = 2 [default = UNKNOWN]; + */ + public boolean hasType() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + + /** + *
+             * What data is in the message?
+             * 
+ * + * optional .pb.remote.MsgType type = 2 [default = UNKNOWN]; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.MsgType getType() { + @SuppressWarnings("deprecation") + de.qspool.clementineremote.backend.pb.ClementineRemote.MsgType result = de.qspool.clementineremote.backend.pb.ClementineRemote.MsgType + .valueOf(type_); + return result == null ? de.qspool.clementineremote.backend.pb.ClementineRemote.MsgType.UNKNOWN : result; + } + + /** + *
+             * What data is in the message?
+             * 
+ * + * optional .pb.remote.MsgType type = 2 [default = UNKNOWN]; + */ + public Builder setType(de.qspool.clementineremote.backend.pb.ClementineRemote.MsgType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + type_ = value.getNumber(); + onChanged(); + return this; + } + + /** + *
+             * What data is in the message?
+             * 
+ * + * optional .pb.remote.MsgType type = 2 [default = UNKNOWN]; + */ + public Builder clearType() { + bitField0_ = (bitField0_ & ~0x00000002); + type_ = 0; + onChanged(); + return this; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect requestConnect_ = null; + private com.google.protobuf.SingleFieldBuilderV3 requestConnectBuilder_; + + /** + * optional .pb.remote.RequestConnect request_connect = 21; + */ + public boolean hasRequestConnect() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + + /** + * optional .pb.remote.RequestConnect request_connect = 21; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect getRequestConnect() { + if (requestConnectBuilder_ == null) { + return requestConnect_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect.getDefaultInstance() + : requestConnect_; + } else { + return requestConnectBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.RequestConnect request_connect = 21; + */ + public Builder setRequestConnect( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect value) { + if (requestConnectBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + requestConnect_ = value; + onChanged(); + } else { + requestConnectBuilder_.setMessage(value); + } + bitField0_ |= 0x00000004; + return this; + } + + /** + * optional .pb.remote.RequestConnect request_connect = 21; + */ + public Builder setRequestConnect( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect.Builder builderForValue) { + if (requestConnectBuilder_ == null) { + requestConnect_ = builderForValue.build(); + onChanged(); + } else { + requestConnectBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; + return this; + } + + /** + * optional .pb.remote.RequestConnect request_connect = 21; + */ + public Builder mergeRequestConnect( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect value) { + if (requestConnectBuilder_ == null) { + if (((bitField0_ & 0x00000004) == 0x00000004) && requestConnect_ != null + && requestConnect_ != de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect + .getDefaultInstance()) { + requestConnect_ = de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect + .newBuilder(requestConnect_).mergeFrom(value).buildPartial(); + } else { + requestConnect_ = value; + } + onChanged(); + } else { + requestConnectBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000004; + return this; + } + + /** + * optional .pb.remote.RequestConnect request_connect = 21; + */ + public Builder clearRequestConnect() { + if (requestConnectBuilder_ == null) { + requestConnect_ = null; + onChanged(); + } else { + requestConnectBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + + /** + * optional .pb.remote.RequestConnect request_connect = 21; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect.Builder getRequestConnectBuilder() { + bitField0_ |= 0x00000004; + onChanged(); + return getRequestConnectFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.RequestConnect request_connect = 21; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnectOrBuilder getRequestConnectOrBuilder() { + if (requestConnectBuilder_ != null) { + return requestConnectBuilder_.getMessageOrBuilder(); + } else { + return requestConnect_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect.getDefaultInstance() + : requestConnect_; + } + } + + /** + * optional .pb.remote.RequestConnect request_connect = 21; + */ + private com.google.protobuf.SingleFieldBuilderV3 getRequestConnectFieldBuilder() { + if (requestConnectBuilder_ == null) { + requestConnectBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getRequestConnect(), getParentForChildren(), isClean()); + requestConnect_ = null; + } + return requestConnectBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists requestPlaylists_ = null; + private com.google.protobuf.SingleFieldBuilderV3 requestPlaylistsBuilder_; + + /** + * optional .pb.remote.RequestPlaylists request_playlists = 27; + */ + public boolean hasRequestPlaylists() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + + /** + * optional .pb.remote.RequestPlaylists request_playlists = 27; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists getRequestPlaylists() { + if (requestPlaylistsBuilder_ == null) { + return requestPlaylists_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists + .getDefaultInstance() + : requestPlaylists_; + } else { + return requestPlaylistsBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.RequestPlaylists request_playlists = 27; + */ + public Builder setRequestPlaylists( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists value) { + if (requestPlaylistsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + requestPlaylists_ = value; + onChanged(); + } else { + requestPlaylistsBuilder_.setMessage(value); + } + bitField0_ |= 0x00000008; + return this; + } + + /** + * optional .pb.remote.RequestPlaylists request_playlists = 27; + */ + public Builder setRequestPlaylists( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists.Builder builderForValue) { + if (requestPlaylistsBuilder_ == null) { + requestPlaylists_ = builderForValue.build(); + onChanged(); + } else { + requestPlaylistsBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000008; + return this; + } + + /** + * optional .pb.remote.RequestPlaylists request_playlists = 27; + */ + public Builder mergeRequestPlaylists( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists value) { + if (requestPlaylistsBuilder_ == null) { + if (((bitField0_ & 0x00000008) == 0x00000008) && requestPlaylists_ != null + && requestPlaylists_ != de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists + .getDefaultInstance()) { + requestPlaylists_ = de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists + .newBuilder(requestPlaylists_).mergeFrom(value).buildPartial(); + } else { + requestPlaylists_ = value; + } + onChanged(); + } else { + requestPlaylistsBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000008; + return this; + } + + /** + * optional .pb.remote.RequestPlaylists request_playlists = 27; + */ + public Builder clearRequestPlaylists() { + if (requestPlaylistsBuilder_ == null) { + requestPlaylists_ = null; + onChanged(); + } else { + requestPlaylistsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000008); + return this; + } + + /** + * optional .pb.remote.RequestPlaylists request_playlists = 27; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists.Builder getRequestPlaylistsBuilder() { + bitField0_ |= 0x00000008; + onChanged(); + return getRequestPlaylistsFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.RequestPlaylists request_playlists = 27; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistsOrBuilder getRequestPlaylistsOrBuilder() { + if (requestPlaylistsBuilder_ != null) { + return requestPlaylistsBuilder_.getMessageOrBuilder(); + } else { + return requestPlaylists_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylists + .getDefaultInstance() + : requestPlaylists_; + } + } + + /** + * optional .pb.remote.RequestPlaylists request_playlists = 27; + */ + private com.google.protobuf.SingleFieldBuilderV3 getRequestPlaylistsFieldBuilder() { + if (requestPlaylistsBuilder_ == null) { + requestPlaylistsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getRequestPlaylists(), getParentForChildren(), isClean()); + requestPlaylists_ = null; + } + return requestPlaylistsBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs requestPlaylistSongs_ = null; + private com.google.protobuf.SingleFieldBuilderV3 requestPlaylistSongsBuilder_; + + /** + * optional .pb.remote.RequestPlaylistSongs request_playlist_songs = 10; + */ + public boolean hasRequestPlaylistSongs() { + return ((bitField0_ & 0x00000010) == 0x00000010); + } + + /** + * optional .pb.remote.RequestPlaylistSongs request_playlist_songs = 10; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs getRequestPlaylistSongs() { + if (requestPlaylistSongsBuilder_ == null) { + return requestPlaylistSongs_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs + .getDefaultInstance() + : requestPlaylistSongs_; + } else { + return requestPlaylistSongsBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.RequestPlaylistSongs request_playlist_songs = 10; + */ + public Builder setRequestPlaylistSongs( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs value) { + if (requestPlaylistSongsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + requestPlaylistSongs_ = value; + onChanged(); + } else { + requestPlaylistSongsBuilder_.setMessage(value); + } + bitField0_ |= 0x00000010; + return this; + } + + /** + * optional .pb.remote.RequestPlaylistSongs request_playlist_songs = 10; + */ + public Builder setRequestPlaylistSongs( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs.Builder builderForValue) { + if (requestPlaylistSongsBuilder_ == null) { + requestPlaylistSongs_ = builderForValue.build(); + onChanged(); + } else { + requestPlaylistSongsBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000010; + return this; + } + + /** + * optional .pb.remote.RequestPlaylistSongs request_playlist_songs = 10; + */ + public Builder mergeRequestPlaylistSongs( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs value) { + if (requestPlaylistSongsBuilder_ == null) { + if (((bitField0_ & 0x00000010) == 0x00000010) && requestPlaylistSongs_ != null + && requestPlaylistSongs_ != de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs + .getDefaultInstance()) { + requestPlaylistSongs_ = de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs + .newBuilder(requestPlaylistSongs_).mergeFrom(value).buildPartial(); + } else { + requestPlaylistSongs_ = value; + } + onChanged(); + } else { + requestPlaylistSongsBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000010; + return this; + } + + /** + * optional .pb.remote.RequestPlaylistSongs request_playlist_songs = 10; + */ + public Builder clearRequestPlaylistSongs() { + if (requestPlaylistSongsBuilder_ == null) { + requestPlaylistSongs_ = null; + onChanged(); + } else { + requestPlaylistSongsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000010); + return this; + } + + /** + * optional .pb.remote.RequestPlaylistSongs request_playlist_songs = 10; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs.Builder getRequestPlaylistSongsBuilder() { + bitField0_ |= 0x00000010; + onChanged(); + return getRequestPlaylistSongsFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.RequestPlaylistSongs request_playlist_songs = 10; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongsOrBuilder getRequestPlaylistSongsOrBuilder() { + if (requestPlaylistSongsBuilder_ != null) { + return requestPlaylistSongsBuilder_.getMessageOrBuilder(); + } else { + return requestPlaylistSongs_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestPlaylistSongs + .getDefaultInstance() + : requestPlaylistSongs_; + } + } + + /** + * optional .pb.remote.RequestPlaylistSongs request_playlist_songs = 10; + */ + private com.google.protobuf.SingleFieldBuilderV3 getRequestPlaylistSongsFieldBuilder() { + if (requestPlaylistSongsBuilder_ == null) { + requestPlaylistSongsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getRequestPlaylistSongs(), getParentForChildren(), isClean()); + requestPlaylistSongs_ = null; + } + return requestPlaylistSongsBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong requestChangeSong_ = null; + private com.google.protobuf.SingleFieldBuilderV3 requestChangeSongBuilder_; + + /** + * optional .pb.remote.RequestChangeSong request_change_song = 11; + */ + public boolean hasRequestChangeSong() { + return ((bitField0_ & 0x00000020) == 0x00000020); + } + + /** + * optional .pb.remote.RequestChangeSong request_change_song = 11; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong getRequestChangeSong() { + if (requestChangeSongBuilder_ == null) { + return requestChangeSong_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong + .getDefaultInstance() + : requestChangeSong_; + } else { + return requestChangeSongBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.RequestChangeSong request_change_song = 11; + */ + public Builder setRequestChangeSong( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong value) { + if (requestChangeSongBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + requestChangeSong_ = value; + onChanged(); + } else { + requestChangeSongBuilder_.setMessage(value); + } + bitField0_ |= 0x00000020; + return this; + } + + /** + * optional .pb.remote.RequestChangeSong request_change_song = 11; + */ + public Builder setRequestChangeSong( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong.Builder builderForValue) { + if (requestChangeSongBuilder_ == null) { + requestChangeSong_ = builderForValue.build(); + onChanged(); + } else { + requestChangeSongBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000020; + return this; + } + + /** + * optional .pb.remote.RequestChangeSong request_change_song = 11; + */ + public Builder mergeRequestChangeSong( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong value) { + if (requestChangeSongBuilder_ == null) { + if (((bitField0_ & 0x00000020) == 0x00000020) && requestChangeSong_ != null + && requestChangeSong_ != de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong + .getDefaultInstance()) { + requestChangeSong_ = de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong + .newBuilder(requestChangeSong_).mergeFrom(value).buildPartial(); + } else { + requestChangeSong_ = value; + } + onChanged(); + } else { + requestChangeSongBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000020; + return this; + } + + /** + * optional .pb.remote.RequestChangeSong request_change_song = 11; + */ + public Builder clearRequestChangeSong() { + if (requestChangeSongBuilder_ == null) { + requestChangeSong_ = null; + onChanged(); + } else { + requestChangeSongBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000020); + return this; + } + + /** + * optional .pb.remote.RequestChangeSong request_change_song = 11; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong.Builder getRequestChangeSongBuilder() { + bitField0_ |= 0x00000020; + onChanged(); + return getRequestChangeSongFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.RequestChangeSong request_change_song = 11; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSongOrBuilder getRequestChangeSongOrBuilder() { + if (requestChangeSongBuilder_ != null) { + return requestChangeSongBuilder_.getMessageOrBuilder(); + } else { + return requestChangeSong_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestChangeSong + .getDefaultInstance() + : requestChangeSong_; + } + } + + /** + * optional .pb.remote.RequestChangeSong request_change_song = 11; + */ + private com.google.protobuf.SingleFieldBuilderV3 getRequestChangeSongFieldBuilder() { + if (requestChangeSongBuilder_ == null) { + requestChangeSongBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getRequestChangeSong(), getParentForChildren(), isClean()); + requestChangeSong_ = null; + } + return requestChangeSongBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume requestSetVolume_ = null; + private com.google.protobuf.SingleFieldBuilderV3 requestSetVolumeBuilder_; + + /** + * optional .pb.remote.RequestSetVolume request_set_volume = 12; + */ + public boolean hasRequestSetVolume() { + return ((bitField0_ & 0x00000040) == 0x00000040); + } + + /** + * optional .pb.remote.RequestSetVolume request_set_volume = 12; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume getRequestSetVolume() { + if (requestSetVolumeBuilder_ == null) { + return requestSetVolume_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume + .getDefaultInstance() + : requestSetVolume_; + } else { + return requestSetVolumeBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.RequestSetVolume request_set_volume = 12; + */ + public Builder setRequestSetVolume( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume value) { + if (requestSetVolumeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + requestSetVolume_ = value; + onChanged(); + } else { + requestSetVolumeBuilder_.setMessage(value); + } + bitField0_ |= 0x00000040; + return this; + } + + /** + * optional .pb.remote.RequestSetVolume request_set_volume = 12; + */ + public Builder setRequestSetVolume( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume.Builder builderForValue) { + if (requestSetVolumeBuilder_ == null) { + requestSetVolume_ = builderForValue.build(); + onChanged(); + } else { + requestSetVolumeBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000040; + return this; + } + + /** + * optional .pb.remote.RequestSetVolume request_set_volume = 12; + */ + public Builder mergeRequestSetVolume( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume value) { + if (requestSetVolumeBuilder_ == null) { + if (((bitField0_ & 0x00000040) == 0x00000040) && requestSetVolume_ != null + && requestSetVolume_ != de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume + .getDefaultInstance()) { + requestSetVolume_ = de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume + .newBuilder(requestSetVolume_).mergeFrom(value).buildPartial(); + } else { + requestSetVolume_ = value; + } + onChanged(); + } else { + requestSetVolumeBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000040; + return this; + } + + /** + * optional .pb.remote.RequestSetVolume request_set_volume = 12; + */ + public Builder clearRequestSetVolume() { + if (requestSetVolumeBuilder_ == null) { + requestSetVolume_ = null; + onChanged(); + } else { + requestSetVolumeBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000040); + return this; + } + + /** + * optional .pb.remote.RequestSetVolume request_set_volume = 12; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume.Builder getRequestSetVolumeBuilder() { + bitField0_ |= 0x00000040; + onChanged(); + return getRequestSetVolumeFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.RequestSetVolume request_set_volume = 12; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolumeOrBuilder getRequestSetVolumeOrBuilder() { + if (requestSetVolumeBuilder_ != null) { + return requestSetVolumeBuilder_.getMessageOrBuilder(); + } else { + return requestSetVolume_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume + .getDefaultInstance() + : requestSetVolume_; + } + } + + /** + * optional .pb.remote.RequestSetVolume request_set_volume = 12; + */ + private com.google.protobuf.SingleFieldBuilderV3 getRequestSetVolumeFieldBuilder() { + if (requestSetVolumeBuilder_ == null) { + requestSetVolumeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getRequestSetVolume(), getParentForChildren(), isClean()); + requestSetVolume_ = null; + } + return requestSetVolumeBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition requestSetTrackPosition_ = null; + private com.google.protobuf.SingleFieldBuilderV3 requestSetTrackPositionBuilder_; + + /** + * optional .pb.remote.RequestSetTrackPosition request_set_track_position = 23; + */ + public boolean hasRequestSetTrackPosition() { + return ((bitField0_ & 0x00000080) == 0x00000080); + } + + /** + * optional .pb.remote.RequestSetTrackPosition request_set_track_position = 23; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition getRequestSetTrackPosition() { + if (requestSetTrackPositionBuilder_ == null) { + return requestSetTrackPosition_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition + .getDefaultInstance() + : requestSetTrackPosition_; + } else { + return requestSetTrackPositionBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.RequestSetTrackPosition request_set_track_position = 23; + */ + public Builder setRequestSetTrackPosition( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition value) { + if (requestSetTrackPositionBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + requestSetTrackPosition_ = value; + onChanged(); + } else { + requestSetTrackPositionBuilder_.setMessage(value); + } + bitField0_ |= 0x00000080; + return this; + } + + /** + * optional .pb.remote.RequestSetTrackPosition request_set_track_position = 23; + */ + public Builder setRequestSetTrackPosition( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition.Builder builderForValue) { + if (requestSetTrackPositionBuilder_ == null) { + requestSetTrackPosition_ = builderForValue.build(); + onChanged(); + } else { + requestSetTrackPositionBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000080; + return this; + } + + /** + * optional .pb.remote.RequestSetTrackPosition request_set_track_position = 23; + */ + public Builder mergeRequestSetTrackPosition( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition value) { + if (requestSetTrackPositionBuilder_ == null) { + if (((bitField0_ & 0x00000080) == 0x00000080) && requestSetTrackPosition_ != null + && requestSetTrackPosition_ != de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition + .getDefaultInstance()) { + requestSetTrackPosition_ = de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition + .newBuilder(requestSetTrackPosition_).mergeFrom(value).buildPartial(); + } else { + requestSetTrackPosition_ = value; + } + onChanged(); + } else { + requestSetTrackPositionBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000080; + return this; + } + + /** + * optional .pb.remote.RequestSetTrackPosition request_set_track_position = 23; + */ + public Builder clearRequestSetTrackPosition() { + if (requestSetTrackPositionBuilder_ == null) { + requestSetTrackPosition_ = null; + onChanged(); + } else { + requestSetTrackPositionBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000080); + return this; + } + + /** + * optional .pb.remote.RequestSetTrackPosition request_set_track_position = 23; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition.Builder getRequestSetTrackPositionBuilder() { + bitField0_ |= 0x00000080; + onChanged(); + return getRequestSetTrackPositionFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.RequestSetTrackPosition request_set_track_position = 23; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPositionOrBuilder getRequestSetTrackPositionOrBuilder() { + if (requestSetTrackPositionBuilder_ != null) { + return requestSetTrackPositionBuilder_.getMessageOrBuilder(); + } else { + return requestSetTrackPosition_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition + .getDefaultInstance() + : requestSetTrackPosition_; + } + } + + /** + * optional .pb.remote.RequestSetTrackPosition request_set_track_position = 23; + */ + private com.google.protobuf.SingleFieldBuilderV3 getRequestSetTrackPositionFieldBuilder() { + if (requestSetTrackPositionBuilder_ == null) { + requestSetTrackPositionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getRequestSetTrackPosition(), getParentForChildren(), isClean()); + requestSetTrackPosition_ = null; + } + return requestSetTrackPositionBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls requestInsertUrls_ = null; + private com.google.protobuf.SingleFieldBuilderV3 requestInsertUrlsBuilder_; + + /** + * optional .pb.remote.RequestInsertUrls request_insert_urls = 25; + */ + public boolean hasRequestInsertUrls() { + return ((bitField0_ & 0x00000100) == 0x00000100); + } + + /** + * optional .pb.remote.RequestInsertUrls request_insert_urls = 25; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls getRequestInsertUrls() { + if (requestInsertUrlsBuilder_ == null) { + return requestInsertUrls_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls + .getDefaultInstance() + : requestInsertUrls_; + } else { + return requestInsertUrlsBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.RequestInsertUrls request_insert_urls = 25; + */ + public Builder setRequestInsertUrls( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls value) { + if (requestInsertUrlsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + requestInsertUrls_ = value; + onChanged(); + } else { + requestInsertUrlsBuilder_.setMessage(value); + } + bitField0_ |= 0x00000100; + return this; + } + + /** + * optional .pb.remote.RequestInsertUrls request_insert_urls = 25; + */ + public Builder setRequestInsertUrls( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls.Builder builderForValue) { + if (requestInsertUrlsBuilder_ == null) { + requestInsertUrls_ = builderForValue.build(); + onChanged(); + } else { + requestInsertUrlsBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000100; + return this; + } + + /** + * optional .pb.remote.RequestInsertUrls request_insert_urls = 25; + */ + public Builder mergeRequestInsertUrls( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls value) { + if (requestInsertUrlsBuilder_ == null) { + if (((bitField0_ & 0x00000100) == 0x00000100) && requestInsertUrls_ != null + && requestInsertUrls_ != de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls + .getDefaultInstance()) { + requestInsertUrls_ = de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls + .newBuilder(requestInsertUrls_).mergeFrom(value).buildPartial(); + } else { + requestInsertUrls_ = value; + } + onChanged(); + } else { + requestInsertUrlsBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000100; + return this; + } + + /** + * optional .pb.remote.RequestInsertUrls request_insert_urls = 25; + */ + public Builder clearRequestInsertUrls() { + if (requestInsertUrlsBuilder_ == null) { + requestInsertUrls_ = null; + onChanged(); + } else { + requestInsertUrlsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000100); + return this; + } + + /** + * optional .pb.remote.RequestInsertUrls request_insert_urls = 25; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls.Builder getRequestInsertUrlsBuilder() { + bitField0_ |= 0x00000100; + onChanged(); + return getRequestInsertUrlsFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.RequestInsertUrls request_insert_urls = 25; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrlsOrBuilder getRequestInsertUrlsOrBuilder() { + if (requestInsertUrlsBuilder_ != null) { + return requestInsertUrlsBuilder_.getMessageOrBuilder(); + } else { + return requestInsertUrls_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestInsertUrls + .getDefaultInstance() + : requestInsertUrls_; + } + } + + /** + * optional .pb.remote.RequestInsertUrls request_insert_urls = 25; + */ + private com.google.protobuf.SingleFieldBuilderV3 getRequestInsertUrlsFieldBuilder() { + if (requestInsertUrlsBuilder_ == null) { + requestInsertUrlsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getRequestInsertUrls(), getParentForChildren(), isClean()); + requestInsertUrls_ = null; + } + return requestInsertUrlsBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs requestRemoveSongs_ = null; + private com.google.protobuf.SingleFieldBuilderV3 requestRemoveSongsBuilder_; + + /** + * optional .pb.remote.RequestRemoveSongs request_remove_songs = 26; + */ + public boolean hasRequestRemoveSongs() { + return ((bitField0_ & 0x00000200) == 0x00000200); + } + + /** + * optional .pb.remote.RequestRemoveSongs request_remove_songs = 26; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs getRequestRemoveSongs() { + if (requestRemoveSongsBuilder_ == null) { + return requestRemoveSongs_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs + .getDefaultInstance() + : requestRemoveSongs_; + } else { + return requestRemoveSongsBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.RequestRemoveSongs request_remove_songs = 26; + */ + public Builder setRequestRemoveSongs( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs value) { + if (requestRemoveSongsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + requestRemoveSongs_ = value; + onChanged(); + } else { + requestRemoveSongsBuilder_.setMessage(value); + } + bitField0_ |= 0x00000200; + return this; + } + + /** + * optional .pb.remote.RequestRemoveSongs request_remove_songs = 26; + */ + public Builder setRequestRemoveSongs( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs.Builder builderForValue) { + if (requestRemoveSongsBuilder_ == null) { + requestRemoveSongs_ = builderForValue.build(); + onChanged(); + } else { + requestRemoveSongsBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000200; + return this; + } + + /** + * optional .pb.remote.RequestRemoveSongs request_remove_songs = 26; + */ + public Builder mergeRequestRemoveSongs( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs value) { + if (requestRemoveSongsBuilder_ == null) { + if (((bitField0_ & 0x00000200) == 0x00000200) && requestRemoveSongs_ != null + && requestRemoveSongs_ != de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs + .getDefaultInstance()) { + requestRemoveSongs_ = de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs + .newBuilder(requestRemoveSongs_).mergeFrom(value).buildPartial(); + } else { + requestRemoveSongs_ = value; + } + onChanged(); + } else { + requestRemoveSongsBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000200; + return this; + } + + /** + * optional .pb.remote.RequestRemoveSongs request_remove_songs = 26; + */ + public Builder clearRequestRemoveSongs() { + if (requestRemoveSongsBuilder_ == null) { + requestRemoveSongs_ = null; + onChanged(); + } else { + requestRemoveSongsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000200); + return this; + } + + /** + * optional .pb.remote.RequestRemoveSongs request_remove_songs = 26; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs.Builder getRequestRemoveSongsBuilder() { + bitField0_ |= 0x00000200; + onChanged(); + return getRequestRemoveSongsFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.RequestRemoveSongs request_remove_songs = 26; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongsOrBuilder getRequestRemoveSongsOrBuilder() { + if (requestRemoveSongsBuilder_ != null) { + return requestRemoveSongsBuilder_.getMessageOrBuilder(); + } else { + return requestRemoveSongs_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRemoveSongs + .getDefaultInstance() + : requestRemoveSongs_; + } + } + + /** + * optional .pb.remote.RequestRemoveSongs request_remove_songs = 26; + */ + private com.google.protobuf.SingleFieldBuilderV3 getRequestRemoveSongsFieldBuilder() { + if (requestRemoveSongsBuilder_ == null) { + requestRemoveSongsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getRequestRemoveSongs(), getParentForChildren(), isClean()); + requestRemoveSongs_ = null; + } + return requestRemoveSongsBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist requestOpenPlaylist_ = null; + private com.google.protobuf.SingleFieldBuilderV3 requestOpenPlaylistBuilder_; + + /** + * optional .pb.remote.RequestOpenPlaylist request_open_playlist = 28; + */ + public boolean hasRequestOpenPlaylist() { + return ((bitField0_ & 0x00000400) == 0x00000400); + } + + /** + * optional .pb.remote.RequestOpenPlaylist request_open_playlist = 28; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist getRequestOpenPlaylist() { + if (requestOpenPlaylistBuilder_ == null) { + return requestOpenPlaylist_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist + .getDefaultInstance() + : requestOpenPlaylist_; + } else { + return requestOpenPlaylistBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.RequestOpenPlaylist request_open_playlist = 28; + */ + public Builder setRequestOpenPlaylist( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist value) { + if (requestOpenPlaylistBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + requestOpenPlaylist_ = value; + onChanged(); + } else { + requestOpenPlaylistBuilder_.setMessage(value); + } + bitField0_ |= 0x00000400; + return this; + } + + /** + * optional .pb.remote.RequestOpenPlaylist request_open_playlist = 28; + */ + public Builder setRequestOpenPlaylist( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist.Builder builderForValue) { + if (requestOpenPlaylistBuilder_ == null) { + requestOpenPlaylist_ = builderForValue.build(); + onChanged(); + } else { + requestOpenPlaylistBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000400; + return this; + } + + /** + * optional .pb.remote.RequestOpenPlaylist request_open_playlist = 28; + */ + public Builder mergeRequestOpenPlaylist( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist value) { + if (requestOpenPlaylistBuilder_ == null) { + if (((bitField0_ & 0x00000400) == 0x00000400) && requestOpenPlaylist_ != null + && requestOpenPlaylist_ != de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist + .getDefaultInstance()) { + requestOpenPlaylist_ = de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist + .newBuilder(requestOpenPlaylist_).mergeFrom(value).buildPartial(); + } else { + requestOpenPlaylist_ = value; + } + onChanged(); + } else { + requestOpenPlaylistBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000400; + return this; + } + + /** + * optional .pb.remote.RequestOpenPlaylist request_open_playlist = 28; + */ + public Builder clearRequestOpenPlaylist() { + if (requestOpenPlaylistBuilder_ == null) { + requestOpenPlaylist_ = null; + onChanged(); + } else { + requestOpenPlaylistBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000400); + return this; + } + + /** + * optional .pb.remote.RequestOpenPlaylist request_open_playlist = 28; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist.Builder getRequestOpenPlaylistBuilder() { + bitField0_ |= 0x00000400; + onChanged(); + return getRequestOpenPlaylistFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.RequestOpenPlaylist request_open_playlist = 28; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylistOrBuilder getRequestOpenPlaylistOrBuilder() { + if (requestOpenPlaylistBuilder_ != null) { + return requestOpenPlaylistBuilder_.getMessageOrBuilder(); + } else { + return requestOpenPlaylist_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestOpenPlaylist + .getDefaultInstance() + : requestOpenPlaylist_; + } + } + + /** + * optional .pb.remote.RequestOpenPlaylist request_open_playlist = 28; + */ + private com.google.protobuf.SingleFieldBuilderV3 getRequestOpenPlaylistFieldBuilder() { + if (requestOpenPlaylistBuilder_ == null) { + requestOpenPlaylistBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getRequestOpenPlaylist(), getParentForChildren(), isClean()); + requestOpenPlaylist_ = null; + } + return requestOpenPlaylistBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist requestClosePlaylist_ = null; + private com.google.protobuf.SingleFieldBuilderV3 requestClosePlaylistBuilder_; + + /** + * optional .pb.remote.RequestClosePlaylist request_close_playlist = 29; + */ + public boolean hasRequestClosePlaylist() { + return ((bitField0_ & 0x00000800) == 0x00000800); + } + + /** + * optional .pb.remote.RequestClosePlaylist request_close_playlist = 29; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist getRequestClosePlaylist() { + if (requestClosePlaylistBuilder_ == null) { + return requestClosePlaylist_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist + .getDefaultInstance() + : requestClosePlaylist_; + } else { + return requestClosePlaylistBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.RequestClosePlaylist request_close_playlist = 29; + */ + public Builder setRequestClosePlaylist( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist value) { + if (requestClosePlaylistBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + requestClosePlaylist_ = value; + onChanged(); + } else { + requestClosePlaylistBuilder_.setMessage(value); + } + bitField0_ |= 0x00000800; + return this; + } + + /** + * optional .pb.remote.RequestClosePlaylist request_close_playlist = 29; + */ + public Builder setRequestClosePlaylist( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist.Builder builderForValue) { + if (requestClosePlaylistBuilder_ == null) { + requestClosePlaylist_ = builderForValue.build(); + onChanged(); + } else { + requestClosePlaylistBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000800; + return this; + } + + /** + * optional .pb.remote.RequestClosePlaylist request_close_playlist = 29; + */ + public Builder mergeRequestClosePlaylist( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist value) { + if (requestClosePlaylistBuilder_ == null) { + if (((bitField0_ & 0x00000800) == 0x00000800) && requestClosePlaylist_ != null + && requestClosePlaylist_ != de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist + .getDefaultInstance()) { + requestClosePlaylist_ = de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist + .newBuilder(requestClosePlaylist_).mergeFrom(value).buildPartial(); + } else { + requestClosePlaylist_ = value; + } + onChanged(); + } else { + requestClosePlaylistBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000800; + return this; + } + + /** + * optional .pb.remote.RequestClosePlaylist request_close_playlist = 29; + */ + public Builder clearRequestClosePlaylist() { + if (requestClosePlaylistBuilder_ == null) { + requestClosePlaylist_ = null; + onChanged(); + } else { + requestClosePlaylistBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000800); + return this; + } + + /** + * optional .pb.remote.RequestClosePlaylist request_close_playlist = 29; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist.Builder getRequestClosePlaylistBuilder() { + bitField0_ |= 0x00000800; + onChanged(); + return getRequestClosePlaylistFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.RequestClosePlaylist request_close_playlist = 29; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylistOrBuilder getRequestClosePlaylistOrBuilder() { + if (requestClosePlaylistBuilder_ != null) { + return requestClosePlaylistBuilder_.getMessageOrBuilder(); + } else { + return requestClosePlaylist_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestClosePlaylist + .getDefaultInstance() + : requestClosePlaylist_; + } + } + + /** + * optional .pb.remote.RequestClosePlaylist request_close_playlist = 29; + */ + private com.google.protobuf.SingleFieldBuilderV3 getRequestClosePlaylistFieldBuilder() { + if (requestClosePlaylistBuilder_ == null) { + requestClosePlaylistBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getRequestClosePlaylist(), getParentForChildren(), isClean()); + requestClosePlaylist_ = null; + } + return requestClosePlaylistBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs requestDownloadSongs_ = null; + private com.google.protobuf.SingleFieldBuilderV3 requestDownloadSongsBuilder_; + + /** + * optional .pb.remote.RequestDownloadSongs request_download_songs = 31; + */ + public boolean hasRequestDownloadSongs() { + return ((bitField0_ & 0x00001000) == 0x00001000); + } + + /** + * optional .pb.remote.RequestDownloadSongs request_download_songs = 31; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs getRequestDownloadSongs() { + if (requestDownloadSongsBuilder_ == null) { + return requestDownloadSongs_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs + .getDefaultInstance() + : requestDownloadSongs_; + } else { + return requestDownloadSongsBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.RequestDownloadSongs request_download_songs = 31; + */ + public Builder setRequestDownloadSongs( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs value) { + if (requestDownloadSongsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + requestDownloadSongs_ = value; + onChanged(); + } else { + requestDownloadSongsBuilder_.setMessage(value); + } + bitField0_ |= 0x00001000; + return this; + } + + /** + * optional .pb.remote.RequestDownloadSongs request_download_songs = 31; + */ + public Builder setRequestDownloadSongs( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs.Builder builderForValue) { + if (requestDownloadSongsBuilder_ == null) { + requestDownloadSongs_ = builderForValue.build(); + onChanged(); + } else { + requestDownloadSongsBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00001000; + return this; + } + + /** + * optional .pb.remote.RequestDownloadSongs request_download_songs = 31; + */ + public Builder mergeRequestDownloadSongs( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs value) { + if (requestDownloadSongsBuilder_ == null) { + if (((bitField0_ & 0x00001000) == 0x00001000) && requestDownloadSongs_ != null + && requestDownloadSongs_ != de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs + .getDefaultInstance()) { + requestDownloadSongs_ = de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs + .newBuilder(requestDownloadSongs_).mergeFrom(value).buildPartial(); + } else { + requestDownloadSongs_ = value; + } + onChanged(); + } else { + requestDownloadSongsBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00001000; + return this; + } + + /** + * optional .pb.remote.RequestDownloadSongs request_download_songs = 31; + */ + public Builder clearRequestDownloadSongs() { + if (requestDownloadSongsBuilder_ == null) { + requestDownloadSongs_ = null; + onChanged(); + } else { + requestDownloadSongsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00001000); + return this; + } + + /** + * optional .pb.remote.RequestDownloadSongs request_download_songs = 31; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs.Builder getRequestDownloadSongsBuilder() { + bitField0_ |= 0x00001000; + onChanged(); + return getRequestDownloadSongsFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.RequestDownloadSongs request_download_songs = 31; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongsOrBuilder getRequestDownloadSongsOrBuilder() { + if (requestDownloadSongsBuilder_ != null) { + return requestDownloadSongsBuilder_.getMessageOrBuilder(); + } else { + return requestDownloadSongs_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestDownloadSongs + .getDefaultInstance() + : requestDownloadSongs_; + } + } + + /** + * optional .pb.remote.RequestDownloadSongs request_download_songs = 31; + */ + private com.google.protobuf.SingleFieldBuilderV3 getRequestDownloadSongsFieldBuilder() { + if (requestDownloadSongsBuilder_ == null) { + requestDownloadSongsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getRequestDownloadSongs(), getParentForChildren(), isClean()); + requestDownloadSongs_ = null; + } + return requestDownloadSongsBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong requestRateSong_ = null; + private com.google.protobuf.SingleFieldBuilderV3 requestRateSongBuilder_; + + /** + * optional .pb.remote.RequestRateSong request_rate_song = 35; + */ + public boolean hasRequestRateSong() { + return ((bitField0_ & 0x00002000) == 0x00002000); + } + + /** + * optional .pb.remote.RequestRateSong request_rate_song = 35; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong getRequestRateSong() { + if (requestRateSongBuilder_ == null) { + return requestRateSong_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong + .getDefaultInstance() + : requestRateSong_; + } else { + return requestRateSongBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.RequestRateSong request_rate_song = 35; + */ + public Builder setRequestRateSong( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong value) { + if (requestRateSongBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + requestRateSong_ = value; + onChanged(); + } else { + requestRateSongBuilder_.setMessage(value); + } + bitField0_ |= 0x00002000; + return this; + } + + /** + * optional .pb.remote.RequestRateSong request_rate_song = 35; + */ + public Builder setRequestRateSong( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong.Builder builderForValue) { + if (requestRateSongBuilder_ == null) { + requestRateSong_ = builderForValue.build(); + onChanged(); + } else { + requestRateSongBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00002000; + return this; + } + + /** + * optional .pb.remote.RequestRateSong request_rate_song = 35; + */ + public Builder mergeRequestRateSong( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong value) { + if (requestRateSongBuilder_ == null) { + if (((bitField0_ & 0x00002000) == 0x00002000) && requestRateSong_ != null + && requestRateSong_ != de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong + .getDefaultInstance()) { + requestRateSong_ = de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong + .newBuilder(requestRateSong_).mergeFrom(value).buildPartial(); + } else { + requestRateSong_ = value; + } + onChanged(); + } else { + requestRateSongBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00002000; + return this; + } + + /** + * optional .pb.remote.RequestRateSong request_rate_song = 35; + */ + public Builder clearRequestRateSong() { + if (requestRateSongBuilder_ == null) { + requestRateSong_ = null; + onChanged(); + } else { + requestRateSongBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00002000); + return this; + } + + /** + * optional .pb.remote.RequestRateSong request_rate_song = 35; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong.Builder getRequestRateSongBuilder() { + bitField0_ |= 0x00002000; + onChanged(); + return getRequestRateSongFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.RequestRateSong request_rate_song = 35; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSongOrBuilder getRequestRateSongOrBuilder() { + if (requestRateSongBuilder_ != null) { + return requestRateSongBuilder_.getMessageOrBuilder(); + } else { + return requestRateSong_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestRateSong + .getDefaultInstance() + : requestRateSong_; + } + } + + /** + * optional .pb.remote.RequestRateSong request_rate_song = 35; + */ + private com.google.protobuf.SingleFieldBuilderV3 getRequestRateSongFieldBuilder() { + if (requestRateSongBuilder_ == null) { + requestRateSongBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getRequestRateSong(), getParentForChildren(), isClean()); + requestRateSong_ = null; + } + return requestRateSongBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch requestGlobalSearch_ = null; + private com.google.protobuf.SingleFieldBuilderV3 requestGlobalSearchBuilder_; + + /** + * optional .pb.remote.RequestGlobalSearch request_global_search = 37; + */ + public boolean hasRequestGlobalSearch() { + return ((bitField0_ & 0x00004000) == 0x00004000); + } + + /** + * optional .pb.remote.RequestGlobalSearch request_global_search = 37; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch getRequestGlobalSearch() { + if (requestGlobalSearchBuilder_ == null) { + return requestGlobalSearch_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch + .getDefaultInstance() + : requestGlobalSearch_; + } else { + return requestGlobalSearchBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.RequestGlobalSearch request_global_search = 37; + */ + public Builder setRequestGlobalSearch( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch value) { + if (requestGlobalSearchBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + requestGlobalSearch_ = value; + onChanged(); + } else { + requestGlobalSearchBuilder_.setMessage(value); + } + bitField0_ |= 0x00004000; + return this; + } + + /** + * optional .pb.remote.RequestGlobalSearch request_global_search = 37; + */ + public Builder setRequestGlobalSearch( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch.Builder builderForValue) { + if (requestGlobalSearchBuilder_ == null) { + requestGlobalSearch_ = builderForValue.build(); + onChanged(); + } else { + requestGlobalSearchBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00004000; + return this; + } + + /** + * optional .pb.remote.RequestGlobalSearch request_global_search = 37; + */ + public Builder mergeRequestGlobalSearch( + de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch value) { + if (requestGlobalSearchBuilder_ == null) { + if (((bitField0_ & 0x00004000) == 0x00004000) && requestGlobalSearch_ != null + && requestGlobalSearch_ != de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch + .getDefaultInstance()) { + requestGlobalSearch_ = de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch + .newBuilder(requestGlobalSearch_).mergeFrom(value).buildPartial(); + } else { + requestGlobalSearch_ = value; + } + onChanged(); + } else { + requestGlobalSearchBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00004000; + return this; + } + + /** + * optional .pb.remote.RequestGlobalSearch request_global_search = 37; + */ + public Builder clearRequestGlobalSearch() { + if (requestGlobalSearchBuilder_ == null) { + requestGlobalSearch_ = null; + onChanged(); + } else { + requestGlobalSearchBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00004000); + return this; + } + + /** + * optional .pb.remote.RequestGlobalSearch request_global_search = 37; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch.Builder getRequestGlobalSearchBuilder() { + bitField0_ |= 0x00004000; + onChanged(); + return getRequestGlobalSearchFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.RequestGlobalSearch request_global_search = 37; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearchOrBuilder getRequestGlobalSearchOrBuilder() { + if (requestGlobalSearchBuilder_ != null) { + return requestGlobalSearchBuilder_.getMessageOrBuilder(); + } else { + return requestGlobalSearch_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.RequestGlobalSearch + .getDefaultInstance() + : requestGlobalSearch_; + } + } + + /** + * optional .pb.remote.RequestGlobalSearch request_global_search = 37; + */ + private com.google.protobuf.SingleFieldBuilderV3 getRequestGlobalSearchFieldBuilder() { + if (requestGlobalSearchBuilder_ == null) { + requestGlobalSearchBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getRequestGlobalSearch(), getParentForChildren(), isClean()); + requestGlobalSearch_ = null; + } + return requestGlobalSearchBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat repeat_ = null; + private com.google.protobuf.SingleFieldBuilderV3 repeatBuilder_; + + /** + * optional .pb.remote.Repeat repeat = 13; + */ + public boolean hasRepeat() { + return ((bitField0_ & 0x00008000) == 0x00008000); + } + + /** + * optional .pb.remote.Repeat repeat = 13; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat getRepeat() { + if (repeatBuilder_ == null) { + return repeat_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat.getDefaultInstance() + : repeat_; + } else { + return repeatBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.Repeat repeat = 13; + */ + public Builder setRepeat(de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat value) { + if (repeatBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + repeat_ = value; + onChanged(); + } else { + repeatBuilder_.setMessage(value); + } + bitField0_ |= 0x00008000; + return this; + } + + /** + * optional .pb.remote.Repeat repeat = 13; + */ + public Builder setRepeat( + de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat.Builder builderForValue) { + if (repeatBuilder_ == null) { + repeat_ = builderForValue.build(); + onChanged(); + } else { + repeatBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00008000; + return this; + } + + /** + * optional .pb.remote.Repeat repeat = 13; + */ + public Builder mergeRepeat(de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat value) { + if (repeatBuilder_ == null) { + if (((bitField0_ & 0x00008000) == 0x00008000) && repeat_ != null + && repeat_ != de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat + .getDefaultInstance()) { + repeat_ = de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat.newBuilder(repeat_) + .mergeFrom(value).buildPartial(); + } else { + repeat_ = value; + } + onChanged(); + } else { + repeatBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00008000; + return this; + } + + /** + * optional .pb.remote.Repeat repeat = 13; + */ + public Builder clearRepeat() { + if (repeatBuilder_ == null) { + repeat_ = null; + onChanged(); + } else { + repeatBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00008000); + return this; + } + + /** + * optional .pb.remote.Repeat repeat = 13; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat.Builder getRepeatBuilder() { + bitField0_ |= 0x00008000; + onChanged(); + return getRepeatFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.Repeat repeat = 13; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.RepeatOrBuilder getRepeatOrBuilder() { + if (repeatBuilder_ != null) { + return repeatBuilder_.getMessageOrBuilder(); + } else { + return repeat_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.Repeat.getDefaultInstance() + : repeat_; + } + } + + /** + * optional .pb.remote.Repeat repeat = 13; + */ + private com.google.protobuf.SingleFieldBuilderV3 getRepeatFieldBuilder() { + if (repeatBuilder_ == null) { + repeatBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getRepeat(), getParentForChildren(), isClean()); + repeat_ = null; + } + return repeatBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle shuffle_ = null; + private com.google.protobuf.SingleFieldBuilderV3 shuffleBuilder_; + + /** + * optional .pb.remote.Shuffle shuffle = 14; + */ + public boolean hasShuffle() { + return ((bitField0_ & 0x00010000) == 0x00010000); + } + + /** + * optional .pb.remote.Shuffle shuffle = 14; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle getShuffle() { + if (shuffleBuilder_ == null) { + return shuffle_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle.getDefaultInstance() + : shuffle_; + } else { + return shuffleBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.Shuffle shuffle = 14; + */ + public Builder setShuffle(de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle value) { + if (shuffleBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + shuffle_ = value; + onChanged(); + } else { + shuffleBuilder_.setMessage(value); + } + bitField0_ |= 0x00010000; + return this; + } + + /** + * optional .pb.remote.Shuffle shuffle = 14; + */ + public Builder setShuffle( + de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle.Builder builderForValue) { + if (shuffleBuilder_ == null) { + shuffle_ = builderForValue.build(); + onChanged(); + } else { + shuffleBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00010000; + return this; + } + + /** + * optional .pb.remote.Shuffle shuffle = 14; + */ + public Builder mergeShuffle(de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle value) { + if (shuffleBuilder_ == null) { + if (((bitField0_ & 0x00010000) == 0x00010000) && shuffle_ != null + && shuffle_ != de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle + .getDefaultInstance()) { + shuffle_ = de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle.newBuilder(shuffle_) + .mergeFrom(value).buildPartial(); + } else { + shuffle_ = value; + } + onChanged(); + } else { + shuffleBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00010000; + return this; + } + + /** + * optional .pb.remote.Shuffle shuffle = 14; + */ + public Builder clearShuffle() { + if (shuffleBuilder_ == null) { + shuffle_ = null; + onChanged(); + } else { + shuffleBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00010000); + return this; + } + + /** + * optional .pb.remote.Shuffle shuffle = 14; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle.Builder getShuffleBuilder() { + bitField0_ |= 0x00010000; + onChanged(); + return getShuffleFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.Shuffle shuffle = 14; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ShuffleOrBuilder getShuffleOrBuilder() { + if (shuffleBuilder_ != null) { + return shuffleBuilder_.getMessageOrBuilder(); + } else { + return shuffle_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.Shuffle.getDefaultInstance() + : shuffle_; + } + } + + /** + * optional .pb.remote.Shuffle shuffle = 14; + */ + private com.google.protobuf.SingleFieldBuilderV3 getShuffleFieldBuilder() { + if (shuffleBuilder_ == null) { + shuffleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getShuffle(), getParentForChildren(), isClean()); + shuffle_ = null; + } + return shuffleBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo responseClementineInfo_ = null; + private com.google.protobuf.SingleFieldBuilderV3 responseClementineInfoBuilder_; + + /** + * optional .pb.remote.ResponseClementineInfo response_clementine_info = 15; + */ + public boolean hasResponseClementineInfo() { + return ((bitField0_ & 0x00020000) == 0x00020000); + } + + /** + * optional .pb.remote.ResponseClementineInfo response_clementine_info = 15; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo getResponseClementineInfo() { + if (responseClementineInfoBuilder_ == null) { + return responseClementineInfo_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo + .getDefaultInstance() + : responseClementineInfo_; + } else { + return responseClementineInfoBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.ResponseClementineInfo response_clementine_info = 15; + */ + public Builder setResponseClementineInfo( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo value) { + if (responseClementineInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + responseClementineInfo_ = value; + onChanged(); + } else { + responseClementineInfoBuilder_.setMessage(value); + } + bitField0_ |= 0x00020000; + return this; + } + + /** + * optional .pb.remote.ResponseClementineInfo response_clementine_info = 15; + */ + public Builder setResponseClementineInfo( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo.Builder builderForValue) { + if (responseClementineInfoBuilder_ == null) { + responseClementineInfo_ = builderForValue.build(); + onChanged(); + } else { + responseClementineInfoBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00020000; + return this; + } + + /** + * optional .pb.remote.ResponseClementineInfo response_clementine_info = 15; + */ + public Builder mergeResponseClementineInfo( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo value) { + if (responseClementineInfoBuilder_ == null) { + if (((bitField0_ & 0x00020000) == 0x00020000) && responseClementineInfo_ != null + && responseClementineInfo_ != de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo + .getDefaultInstance()) { + responseClementineInfo_ = de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo + .newBuilder(responseClementineInfo_).mergeFrom(value).buildPartial(); + } else { + responseClementineInfo_ = value; + } + onChanged(); + } else { + responseClementineInfoBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00020000; + return this; + } + + /** + * optional .pb.remote.ResponseClementineInfo response_clementine_info = 15; + */ + public Builder clearResponseClementineInfo() { + if (responseClementineInfoBuilder_ == null) { + responseClementineInfo_ = null; + onChanged(); + } else { + responseClementineInfoBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00020000); + return this; + } + + /** + * optional .pb.remote.ResponseClementineInfo response_clementine_info = 15; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo.Builder getResponseClementineInfoBuilder() { + bitField0_ |= 0x00020000; + onChanged(); + return getResponseClementineInfoFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.ResponseClementineInfo response_clementine_info = 15; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfoOrBuilder getResponseClementineInfoOrBuilder() { + if (responseClementineInfoBuilder_ != null) { + return responseClementineInfoBuilder_.getMessageOrBuilder(); + } else { + return responseClementineInfo_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseClementineInfo + .getDefaultInstance() + : responseClementineInfo_; + } + } + + /** + * optional .pb.remote.ResponseClementineInfo response_clementine_info = 15; + */ + private com.google.protobuf.SingleFieldBuilderV3 getResponseClementineInfoFieldBuilder() { + if (responseClementineInfoBuilder_ == null) { + responseClementineInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getResponseClementineInfo(), getParentForChildren(), isClean()); + responseClementineInfo_ = null; + } + return responseClementineInfoBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata responseCurrentMetadata_ = null; + private com.google.protobuf.SingleFieldBuilderV3 responseCurrentMetadataBuilder_; + + /** + * optional .pb.remote.ResponseCurrentMetadata response_current_metadata = 16; + */ + public boolean hasResponseCurrentMetadata() { + return ((bitField0_ & 0x00040000) == 0x00040000); + } + + /** + * optional .pb.remote.ResponseCurrentMetadata response_current_metadata = 16; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata getResponseCurrentMetadata() { + if (responseCurrentMetadataBuilder_ == null) { + return responseCurrentMetadata_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata + .getDefaultInstance() + : responseCurrentMetadata_; + } else { + return responseCurrentMetadataBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.ResponseCurrentMetadata response_current_metadata = 16; + */ + public Builder setResponseCurrentMetadata( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata value) { + if (responseCurrentMetadataBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + responseCurrentMetadata_ = value; + onChanged(); + } else { + responseCurrentMetadataBuilder_.setMessage(value); + } + bitField0_ |= 0x00040000; + return this; + } + + /** + * optional .pb.remote.ResponseCurrentMetadata response_current_metadata = 16; + */ + public Builder setResponseCurrentMetadata( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata.Builder builderForValue) { + if (responseCurrentMetadataBuilder_ == null) { + responseCurrentMetadata_ = builderForValue.build(); + onChanged(); + } else { + responseCurrentMetadataBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00040000; + return this; + } + + /** + * optional .pb.remote.ResponseCurrentMetadata response_current_metadata = 16; + */ + public Builder mergeResponseCurrentMetadata( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata value) { + if (responseCurrentMetadataBuilder_ == null) { + if (((bitField0_ & 0x00040000) == 0x00040000) && responseCurrentMetadata_ != null + && responseCurrentMetadata_ != de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata + .getDefaultInstance()) { + responseCurrentMetadata_ = de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata + .newBuilder(responseCurrentMetadata_).mergeFrom(value).buildPartial(); + } else { + responseCurrentMetadata_ = value; + } + onChanged(); + } else { + responseCurrentMetadataBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00040000; + return this; + } + + /** + * optional .pb.remote.ResponseCurrentMetadata response_current_metadata = 16; + */ + public Builder clearResponseCurrentMetadata() { + if (responseCurrentMetadataBuilder_ == null) { + responseCurrentMetadata_ = null; + onChanged(); + } else { + responseCurrentMetadataBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00040000); + return this; + } + + /** + * optional .pb.remote.ResponseCurrentMetadata response_current_metadata = 16; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata.Builder getResponseCurrentMetadataBuilder() { + bitField0_ |= 0x00040000; + onChanged(); + return getResponseCurrentMetadataFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.ResponseCurrentMetadata response_current_metadata = 16; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadataOrBuilder getResponseCurrentMetadataOrBuilder() { + if (responseCurrentMetadataBuilder_ != null) { + return responseCurrentMetadataBuilder_.getMessageOrBuilder(); + } else { + return responseCurrentMetadata_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata + .getDefaultInstance() + : responseCurrentMetadata_; + } + } + + /** + * optional .pb.remote.ResponseCurrentMetadata response_current_metadata = 16; + */ + private com.google.protobuf.SingleFieldBuilderV3 getResponseCurrentMetadataFieldBuilder() { + if (responseCurrentMetadataBuilder_ == null) { + responseCurrentMetadataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getResponseCurrentMetadata(), getParentForChildren(), isClean()); + responseCurrentMetadata_ = null; + } + return responseCurrentMetadataBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists responsePlaylists_ = null; + private com.google.protobuf.SingleFieldBuilderV3 responsePlaylistsBuilder_; + + /** + * optional .pb.remote.ResponsePlaylists response_playlists = 17; + */ + public boolean hasResponsePlaylists() { + return ((bitField0_ & 0x00080000) == 0x00080000); + } + + /** + * optional .pb.remote.ResponsePlaylists response_playlists = 17; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists getResponsePlaylists() { + if (responsePlaylistsBuilder_ == null) { + return responsePlaylists_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists + .getDefaultInstance() + : responsePlaylists_; + } else { + return responsePlaylistsBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.ResponsePlaylists response_playlists = 17; + */ + public Builder setResponsePlaylists( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists value) { + if (responsePlaylistsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + responsePlaylists_ = value; + onChanged(); + } else { + responsePlaylistsBuilder_.setMessage(value); + } + bitField0_ |= 0x00080000; + return this; + } + + /** + * optional .pb.remote.ResponsePlaylists response_playlists = 17; + */ + public Builder setResponsePlaylists( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists.Builder builderForValue) { + if (responsePlaylistsBuilder_ == null) { + responsePlaylists_ = builderForValue.build(); + onChanged(); + } else { + responsePlaylistsBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00080000; + return this; + } + + /** + * optional .pb.remote.ResponsePlaylists response_playlists = 17; + */ + public Builder mergeResponsePlaylists( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists value) { + if (responsePlaylistsBuilder_ == null) { + if (((bitField0_ & 0x00080000) == 0x00080000) && responsePlaylists_ != null + && responsePlaylists_ != de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists + .getDefaultInstance()) { + responsePlaylists_ = de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists + .newBuilder(responsePlaylists_).mergeFrom(value).buildPartial(); + } else { + responsePlaylists_ = value; + } + onChanged(); + } else { + responsePlaylistsBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00080000; + return this; + } + + /** + * optional .pb.remote.ResponsePlaylists response_playlists = 17; + */ + public Builder clearResponsePlaylists() { + if (responsePlaylistsBuilder_ == null) { + responsePlaylists_ = null; + onChanged(); + } else { + responsePlaylistsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00080000); + return this; + } + + /** + * optional .pb.remote.ResponsePlaylists response_playlists = 17; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists.Builder getResponsePlaylistsBuilder() { + bitField0_ |= 0x00080000; + onChanged(); + return getResponsePlaylistsFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.ResponsePlaylists response_playlists = 17; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistsOrBuilder getResponsePlaylistsOrBuilder() { + if (responsePlaylistsBuilder_ != null) { + return responsePlaylistsBuilder_.getMessageOrBuilder(); + } else { + return responsePlaylists_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylists + .getDefaultInstance() + : responsePlaylists_; + } + } + + /** + * optional .pb.remote.ResponsePlaylists response_playlists = 17; + */ + private com.google.protobuf.SingleFieldBuilderV3 getResponsePlaylistsFieldBuilder() { + if (responsePlaylistsBuilder_ == null) { + responsePlaylistsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getResponsePlaylists(), getParentForChildren(), isClean()); + responsePlaylists_ = null; + } + return responsePlaylistsBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs responsePlaylistSongs_ = null; + private com.google.protobuf.SingleFieldBuilderV3 responsePlaylistSongsBuilder_; + + /** + * optional .pb.remote.ResponsePlaylistSongs response_playlist_songs = 18; + */ + public boolean hasResponsePlaylistSongs() { + return ((bitField0_ & 0x00100000) == 0x00100000); + } + + /** + * optional .pb.remote.ResponsePlaylistSongs response_playlist_songs = 18; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs getResponsePlaylistSongs() { + if (responsePlaylistSongsBuilder_ == null) { + return responsePlaylistSongs_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs + .getDefaultInstance() + : responsePlaylistSongs_; + } else { + return responsePlaylistSongsBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.ResponsePlaylistSongs response_playlist_songs = 18; + */ + public Builder setResponsePlaylistSongs( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs value) { + if (responsePlaylistSongsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + responsePlaylistSongs_ = value; + onChanged(); + } else { + responsePlaylistSongsBuilder_.setMessage(value); + } + bitField0_ |= 0x00100000; + return this; + } + + /** + * optional .pb.remote.ResponsePlaylistSongs response_playlist_songs = 18; + */ + public Builder setResponsePlaylistSongs( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs.Builder builderForValue) { + if (responsePlaylistSongsBuilder_ == null) { + responsePlaylistSongs_ = builderForValue.build(); + onChanged(); + } else { + responsePlaylistSongsBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00100000; + return this; + } + + /** + * optional .pb.remote.ResponsePlaylistSongs response_playlist_songs = 18; + */ + public Builder mergeResponsePlaylistSongs( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs value) { + if (responsePlaylistSongsBuilder_ == null) { + if (((bitField0_ & 0x00100000) == 0x00100000) && responsePlaylistSongs_ != null + && responsePlaylistSongs_ != de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs + .getDefaultInstance()) { + responsePlaylistSongs_ = de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs + .newBuilder(responsePlaylistSongs_).mergeFrom(value).buildPartial(); + } else { + responsePlaylistSongs_ = value; + } + onChanged(); + } else { + responsePlaylistSongsBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00100000; + return this; + } + + /** + * optional .pb.remote.ResponsePlaylistSongs response_playlist_songs = 18; + */ + public Builder clearResponsePlaylistSongs() { + if (responsePlaylistSongsBuilder_ == null) { + responsePlaylistSongs_ = null; + onChanged(); + } else { + responsePlaylistSongsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00100000); + return this; + } + + /** + * optional .pb.remote.ResponsePlaylistSongs response_playlist_songs = 18; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs.Builder getResponsePlaylistSongsBuilder() { + bitField0_ |= 0x00100000; + onChanged(); + return getResponsePlaylistSongsFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.ResponsePlaylistSongs response_playlist_songs = 18; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongsOrBuilder getResponsePlaylistSongsOrBuilder() { + if (responsePlaylistSongsBuilder_ != null) { + return responsePlaylistSongsBuilder_.getMessageOrBuilder(); + } else { + return responsePlaylistSongs_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponsePlaylistSongs + .getDefaultInstance() + : responsePlaylistSongs_; + } + } + + /** + * optional .pb.remote.ResponsePlaylistSongs response_playlist_songs = 18; + */ + private com.google.protobuf.SingleFieldBuilderV3 getResponsePlaylistSongsFieldBuilder() { + if (responsePlaylistSongsBuilder_ == null) { + responsePlaylistSongsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getResponsePlaylistSongs(), getParentForChildren(), isClean()); + responsePlaylistSongs_ = null; + } + return responsePlaylistSongsBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged responseEngineStateChanged_ = null; + private com.google.protobuf.SingleFieldBuilderV3 responseEngineStateChangedBuilder_; + + /** + * optional .pb.remote.ResponseEngineStateChanged response_engine_state_changed = 19; + */ + public boolean hasResponseEngineStateChanged() { + return ((bitField0_ & 0x00200000) == 0x00200000); + } + + /** + * optional .pb.remote.ResponseEngineStateChanged response_engine_state_changed = 19; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged getResponseEngineStateChanged() { + if (responseEngineStateChangedBuilder_ == null) { + return responseEngineStateChanged_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged + .getDefaultInstance() + : responseEngineStateChanged_; + } else { + return responseEngineStateChangedBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.ResponseEngineStateChanged response_engine_state_changed = 19; + */ + public Builder setResponseEngineStateChanged( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged value) { + if (responseEngineStateChangedBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + responseEngineStateChanged_ = value; + onChanged(); + } else { + responseEngineStateChangedBuilder_.setMessage(value); + } + bitField0_ |= 0x00200000; + return this; + } + + /** + * optional .pb.remote.ResponseEngineStateChanged response_engine_state_changed = 19; + */ + public Builder setResponseEngineStateChanged( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged.Builder builderForValue) { + if (responseEngineStateChangedBuilder_ == null) { + responseEngineStateChanged_ = builderForValue.build(); + onChanged(); + } else { + responseEngineStateChangedBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00200000; + return this; + } + + /** + * optional .pb.remote.ResponseEngineStateChanged response_engine_state_changed = 19; + */ + public Builder mergeResponseEngineStateChanged( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged value) { + if (responseEngineStateChangedBuilder_ == null) { + if (((bitField0_ & 0x00200000) == 0x00200000) && responseEngineStateChanged_ != null + && responseEngineStateChanged_ != de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged + .getDefaultInstance()) { + responseEngineStateChanged_ = de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged + .newBuilder(responseEngineStateChanged_).mergeFrom(value).buildPartial(); + } else { + responseEngineStateChanged_ = value; + } + onChanged(); + } else { + responseEngineStateChangedBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00200000; + return this; + } + + /** + * optional .pb.remote.ResponseEngineStateChanged response_engine_state_changed = 19; + */ + public Builder clearResponseEngineStateChanged() { + if (responseEngineStateChangedBuilder_ == null) { + responseEngineStateChanged_ = null; + onChanged(); + } else { + responseEngineStateChangedBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00200000); + return this; + } + + /** + * optional .pb.remote.ResponseEngineStateChanged response_engine_state_changed = 19; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged.Builder getResponseEngineStateChangedBuilder() { + bitField0_ |= 0x00200000; + onChanged(); + return getResponseEngineStateChangedFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.ResponseEngineStateChanged response_engine_state_changed = 19; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChangedOrBuilder getResponseEngineStateChangedOrBuilder() { + if (responseEngineStateChangedBuilder_ != null) { + return responseEngineStateChangedBuilder_.getMessageOrBuilder(); + } else { + return responseEngineStateChanged_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseEngineStateChanged + .getDefaultInstance() + : responseEngineStateChanged_; + } + } + + /** + * optional .pb.remote.ResponseEngineStateChanged response_engine_state_changed = 19; + */ + private com.google.protobuf.SingleFieldBuilderV3 getResponseEngineStateChangedFieldBuilder() { + if (responseEngineStateChangedBuilder_ == null) { + responseEngineStateChangedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getResponseEngineStateChanged(), getParentForChildren(), isClean()); + responseEngineStateChanged_ = null; + } + return responseEngineStateChangedBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition responseUpdateTrackPosition_ = null; + private com.google.protobuf.SingleFieldBuilderV3 responseUpdateTrackPositionBuilder_; + + /** + * optional .pb.remote.ResponseUpdateTrackPosition response_update_track_position = 20; + */ + public boolean hasResponseUpdateTrackPosition() { + return ((bitField0_ & 0x00400000) == 0x00400000); + } + + /** + * optional .pb.remote.ResponseUpdateTrackPosition response_update_track_position = 20; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition getResponseUpdateTrackPosition() { + if (responseUpdateTrackPositionBuilder_ == null) { + return responseUpdateTrackPosition_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition + .getDefaultInstance() + : responseUpdateTrackPosition_; + } else { + return responseUpdateTrackPositionBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.ResponseUpdateTrackPosition response_update_track_position = 20; + */ + public Builder setResponseUpdateTrackPosition( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition value) { + if (responseUpdateTrackPositionBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + responseUpdateTrackPosition_ = value; + onChanged(); + } else { + responseUpdateTrackPositionBuilder_.setMessage(value); + } + bitField0_ |= 0x00400000; + return this; + } + + /** + * optional .pb.remote.ResponseUpdateTrackPosition response_update_track_position = 20; + */ + public Builder setResponseUpdateTrackPosition( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition.Builder builderForValue) { + if (responseUpdateTrackPositionBuilder_ == null) { + responseUpdateTrackPosition_ = builderForValue.build(); + onChanged(); + } else { + responseUpdateTrackPositionBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00400000; + return this; + } + + /** + * optional .pb.remote.ResponseUpdateTrackPosition response_update_track_position = 20; + */ + public Builder mergeResponseUpdateTrackPosition( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition value) { + if (responseUpdateTrackPositionBuilder_ == null) { + if (((bitField0_ & 0x00400000) == 0x00400000) && responseUpdateTrackPosition_ != null + && responseUpdateTrackPosition_ != de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition + .getDefaultInstance()) { + responseUpdateTrackPosition_ = de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition + .newBuilder(responseUpdateTrackPosition_).mergeFrom(value).buildPartial(); + } else { + responseUpdateTrackPosition_ = value; + } + onChanged(); + } else { + responseUpdateTrackPositionBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00400000; + return this; + } + + /** + * optional .pb.remote.ResponseUpdateTrackPosition response_update_track_position = 20; + */ + public Builder clearResponseUpdateTrackPosition() { + if (responseUpdateTrackPositionBuilder_ == null) { + responseUpdateTrackPosition_ = null; + onChanged(); + } else { + responseUpdateTrackPositionBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00400000); + return this; + } + + /** + * optional .pb.remote.ResponseUpdateTrackPosition response_update_track_position = 20; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition.Builder getResponseUpdateTrackPositionBuilder() { + bitField0_ |= 0x00400000; + onChanged(); + return getResponseUpdateTrackPositionFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.ResponseUpdateTrackPosition response_update_track_position = 20; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPositionOrBuilder getResponseUpdateTrackPositionOrBuilder() { + if (responseUpdateTrackPositionBuilder_ != null) { + return responseUpdateTrackPositionBuilder_.getMessageOrBuilder(); + } else { + return responseUpdateTrackPosition_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition + .getDefaultInstance() + : responseUpdateTrackPosition_; + } + } + + /** + * optional .pb.remote.ResponseUpdateTrackPosition response_update_track_position = 20; + */ + private com.google.protobuf.SingleFieldBuilderV3 getResponseUpdateTrackPositionFieldBuilder() { + if (responseUpdateTrackPositionBuilder_ == null) { + responseUpdateTrackPositionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getResponseUpdateTrackPosition(), getParentForChildren(), isClean()); + responseUpdateTrackPosition_ = null; + } + return responseUpdateTrackPositionBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect responseDisconnect_ = null; + private com.google.protobuf.SingleFieldBuilderV3 responseDisconnectBuilder_; + + /** + * optional .pb.remote.ResponseDisconnect response_disconnect = 22; + */ + public boolean hasResponseDisconnect() { + return ((bitField0_ & 0x00800000) == 0x00800000); + } + + /** + * optional .pb.remote.ResponseDisconnect response_disconnect = 22; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect getResponseDisconnect() { + if (responseDisconnectBuilder_ == null) { + return responseDisconnect_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect + .getDefaultInstance() + : responseDisconnect_; + } else { + return responseDisconnectBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.ResponseDisconnect response_disconnect = 22; + */ + public Builder setResponseDisconnect( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect value) { + if (responseDisconnectBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + responseDisconnect_ = value; + onChanged(); + } else { + responseDisconnectBuilder_.setMessage(value); + } + bitField0_ |= 0x00800000; + return this; + } + + /** + * optional .pb.remote.ResponseDisconnect response_disconnect = 22; + */ + public Builder setResponseDisconnect( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect.Builder builderForValue) { + if (responseDisconnectBuilder_ == null) { + responseDisconnect_ = builderForValue.build(); + onChanged(); + } else { + responseDisconnectBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00800000; + return this; + } + + /** + * optional .pb.remote.ResponseDisconnect response_disconnect = 22; + */ + public Builder mergeResponseDisconnect( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect value) { + if (responseDisconnectBuilder_ == null) { + if (((bitField0_ & 0x00800000) == 0x00800000) && responseDisconnect_ != null + && responseDisconnect_ != de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect + .getDefaultInstance()) { + responseDisconnect_ = de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect + .newBuilder(responseDisconnect_).mergeFrom(value).buildPartial(); + } else { + responseDisconnect_ = value; + } + onChanged(); + } else { + responseDisconnectBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00800000; + return this; + } + + /** + * optional .pb.remote.ResponseDisconnect response_disconnect = 22; + */ + public Builder clearResponseDisconnect() { + if (responseDisconnectBuilder_ == null) { + responseDisconnect_ = null; + onChanged(); + } else { + responseDisconnectBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00800000); + return this; + } + + /** + * optional .pb.remote.ResponseDisconnect response_disconnect = 22; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect.Builder getResponseDisconnectBuilder() { + bitField0_ |= 0x00800000; + onChanged(); + return getResponseDisconnectFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.ResponseDisconnect response_disconnect = 22; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnectOrBuilder getResponseDisconnectOrBuilder() { + if (responseDisconnectBuilder_ != null) { + return responseDisconnectBuilder_.getMessageOrBuilder(); + } else { + return responseDisconnect_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDisconnect + .getDefaultInstance() + : responseDisconnect_; + } + } + + /** + * optional .pb.remote.ResponseDisconnect response_disconnect = 22; + */ + private com.google.protobuf.SingleFieldBuilderV3 getResponseDisconnectFieldBuilder() { + if (responseDisconnectBuilder_ == null) { + responseDisconnectBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getResponseDisconnect(), getParentForChildren(), isClean()); + responseDisconnect_ = null; + } + return responseDisconnectBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged responseActiveChanged_ = null; + private com.google.protobuf.SingleFieldBuilderV3 responseActiveChangedBuilder_; + + /** + * optional .pb.remote.ResponseActiveChanged response_active_changed = 24; + */ + public boolean hasResponseActiveChanged() { + return ((bitField0_ & 0x01000000) == 0x01000000); + } + + /** + * optional .pb.remote.ResponseActiveChanged response_active_changed = 24; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged getResponseActiveChanged() { + if (responseActiveChangedBuilder_ == null) { + return responseActiveChanged_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged + .getDefaultInstance() + : responseActiveChanged_; + } else { + return responseActiveChangedBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.ResponseActiveChanged response_active_changed = 24; + */ + public Builder setResponseActiveChanged( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged value) { + if (responseActiveChangedBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + responseActiveChanged_ = value; + onChanged(); + } else { + responseActiveChangedBuilder_.setMessage(value); + } + bitField0_ |= 0x01000000; + return this; + } + + /** + * optional .pb.remote.ResponseActiveChanged response_active_changed = 24; + */ + public Builder setResponseActiveChanged( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged.Builder builderForValue) { + if (responseActiveChangedBuilder_ == null) { + responseActiveChanged_ = builderForValue.build(); + onChanged(); + } else { + responseActiveChangedBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x01000000; + return this; + } + + /** + * optional .pb.remote.ResponseActiveChanged response_active_changed = 24; + */ + public Builder mergeResponseActiveChanged( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged value) { + if (responseActiveChangedBuilder_ == null) { + if (((bitField0_ & 0x01000000) == 0x01000000) && responseActiveChanged_ != null + && responseActiveChanged_ != de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged + .getDefaultInstance()) { + responseActiveChanged_ = de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged + .newBuilder(responseActiveChanged_).mergeFrom(value).buildPartial(); + } else { + responseActiveChanged_ = value; + } + onChanged(); + } else { + responseActiveChangedBuilder_.mergeFrom(value); + } + bitField0_ |= 0x01000000; + return this; + } + + /** + * optional .pb.remote.ResponseActiveChanged response_active_changed = 24; + */ + public Builder clearResponseActiveChanged() { + if (responseActiveChangedBuilder_ == null) { + responseActiveChanged_ = null; + onChanged(); + } else { + responseActiveChangedBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x01000000); + return this; + } + + /** + * optional .pb.remote.ResponseActiveChanged response_active_changed = 24; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged.Builder getResponseActiveChangedBuilder() { + bitField0_ |= 0x01000000; + onChanged(); + return getResponseActiveChangedFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.ResponseActiveChanged response_active_changed = 24; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChangedOrBuilder getResponseActiveChangedOrBuilder() { + if (responseActiveChangedBuilder_ != null) { + return responseActiveChangedBuilder_.getMessageOrBuilder(); + } else { + return responseActiveChanged_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseActiveChanged + .getDefaultInstance() + : responseActiveChanged_; + } + } + + /** + * optional .pb.remote.ResponseActiveChanged response_active_changed = 24; + */ + private com.google.protobuf.SingleFieldBuilderV3 getResponseActiveChangedFieldBuilder() { + if (responseActiveChangedBuilder_ == null) { + responseActiveChangedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getResponseActiveChanged(), getParentForChildren(), isClean()); + responseActiveChanged_ = null; + } + return responseActiveChangedBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics responseLyrics_ = null; + private com.google.protobuf.SingleFieldBuilderV3 responseLyricsBuilder_; + + /** + * optional .pb.remote.ResponseLyrics response_lyrics = 30; + */ + public boolean hasResponseLyrics() { + return ((bitField0_ & 0x02000000) == 0x02000000); + } + + /** + * optional .pb.remote.ResponseLyrics response_lyrics = 30; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics getResponseLyrics() { + if (responseLyricsBuilder_ == null) { + return responseLyrics_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics.getDefaultInstance() + : responseLyrics_; + } else { + return responseLyricsBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.ResponseLyrics response_lyrics = 30; + */ + public Builder setResponseLyrics( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics value) { + if (responseLyricsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + responseLyrics_ = value; + onChanged(); + } else { + responseLyricsBuilder_.setMessage(value); + } + bitField0_ |= 0x02000000; + return this; + } + + /** + * optional .pb.remote.ResponseLyrics response_lyrics = 30; + */ + public Builder setResponseLyrics( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics.Builder builderForValue) { + if (responseLyricsBuilder_ == null) { + responseLyrics_ = builderForValue.build(); + onChanged(); + } else { + responseLyricsBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x02000000; + return this; + } + + /** + * optional .pb.remote.ResponseLyrics response_lyrics = 30; + */ + public Builder mergeResponseLyrics( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics value) { + if (responseLyricsBuilder_ == null) { + if (((bitField0_ & 0x02000000) == 0x02000000) && responseLyrics_ != null + && responseLyrics_ != de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics + .getDefaultInstance()) { + responseLyrics_ = de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics + .newBuilder(responseLyrics_).mergeFrom(value).buildPartial(); + } else { + responseLyrics_ = value; + } + onChanged(); + } else { + responseLyricsBuilder_.mergeFrom(value); + } + bitField0_ |= 0x02000000; + return this; + } + + /** + * optional .pb.remote.ResponseLyrics response_lyrics = 30; + */ + public Builder clearResponseLyrics() { + if (responseLyricsBuilder_ == null) { + responseLyrics_ = null; + onChanged(); + } else { + responseLyricsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x02000000); + return this; + } + + /** + * optional .pb.remote.ResponseLyrics response_lyrics = 30; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics.Builder getResponseLyricsBuilder() { + bitField0_ |= 0x02000000; + onChanged(); + return getResponseLyricsFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.ResponseLyrics response_lyrics = 30; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyricsOrBuilder getResponseLyricsOrBuilder() { + if (responseLyricsBuilder_ != null) { + return responseLyricsBuilder_.getMessageOrBuilder(); + } else { + return responseLyrics_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLyrics.getDefaultInstance() + : responseLyrics_; + } + } + + /** + * optional .pb.remote.ResponseLyrics response_lyrics = 30; + */ + private com.google.protobuf.SingleFieldBuilderV3 getResponseLyricsFieldBuilder() { + if (responseLyricsBuilder_ == null) { + responseLyricsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getResponseLyrics(), getParentForChildren(), isClean()); + responseLyrics_ = null; + } + return responseLyricsBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk responseSongFileChunk_ = null; + private com.google.protobuf.SingleFieldBuilderV3 responseSongFileChunkBuilder_; + + /** + * optional .pb.remote.ResponseSongFileChunk response_song_file_chunk = 32; + */ + public boolean hasResponseSongFileChunk() { + return ((bitField0_ & 0x04000000) == 0x04000000); + } + + /** + * optional .pb.remote.ResponseSongFileChunk response_song_file_chunk = 32; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk getResponseSongFileChunk() { + if (responseSongFileChunkBuilder_ == null) { + return responseSongFileChunk_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk + .getDefaultInstance() + : responseSongFileChunk_; + } else { + return responseSongFileChunkBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.ResponseSongFileChunk response_song_file_chunk = 32; + */ + public Builder setResponseSongFileChunk( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk value) { + if (responseSongFileChunkBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + responseSongFileChunk_ = value; + onChanged(); + } else { + responseSongFileChunkBuilder_.setMessage(value); + } + bitField0_ |= 0x04000000; + return this; + } + + /** + * optional .pb.remote.ResponseSongFileChunk response_song_file_chunk = 32; + */ + public Builder setResponseSongFileChunk( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk.Builder builderForValue) { + if (responseSongFileChunkBuilder_ == null) { + responseSongFileChunk_ = builderForValue.build(); + onChanged(); + } else { + responseSongFileChunkBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x04000000; + return this; + } + + /** + * optional .pb.remote.ResponseSongFileChunk response_song_file_chunk = 32; + */ + public Builder mergeResponseSongFileChunk( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk value) { + if (responseSongFileChunkBuilder_ == null) { + if (((bitField0_ & 0x04000000) == 0x04000000) && responseSongFileChunk_ != null + && responseSongFileChunk_ != de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk + .getDefaultInstance()) { + responseSongFileChunk_ = de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk + .newBuilder(responseSongFileChunk_).mergeFrom(value).buildPartial(); + } else { + responseSongFileChunk_ = value; + } + onChanged(); + } else { + responseSongFileChunkBuilder_.mergeFrom(value); + } + bitField0_ |= 0x04000000; + return this; + } + + /** + * optional .pb.remote.ResponseSongFileChunk response_song_file_chunk = 32; + */ + public Builder clearResponseSongFileChunk() { + if (responseSongFileChunkBuilder_ == null) { + responseSongFileChunk_ = null; + onChanged(); + } else { + responseSongFileChunkBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x04000000); + return this; + } + + /** + * optional .pb.remote.ResponseSongFileChunk response_song_file_chunk = 32; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk.Builder getResponseSongFileChunkBuilder() { + bitField0_ |= 0x04000000; + onChanged(); + return getResponseSongFileChunkFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.ResponseSongFileChunk response_song_file_chunk = 32; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunkOrBuilder getResponseSongFileChunkOrBuilder() { + if (responseSongFileChunkBuilder_ != null) { + return responseSongFileChunkBuilder_.getMessageOrBuilder(); + } else { + return responseSongFileChunk_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongFileChunk + .getDefaultInstance() + : responseSongFileChunk_; + } + } + + /** + * optional .pb.remote.ResponseSongFileChunk response_song_file_chunk = 32; + */ + private com.google.protobuf.SingleFieldBuilderV3 getResponseSongFileChunkFieldBuilder() { + if (responseSongFileChunkBuilder_ == null) { + responseSongFileChunkBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getResponseSongFileChunk(), getParentForChildren(), isClean()); + responseSongFileChunk_ = null; + } + return responseSongFileChunkBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer responseSongOffer_ = null; + private com.google.protobuf.SingleFieldBuilderV3 responseSongOfferBuilder_; + + /** + * optional .pb.remote.ResponseSongOffer response_song_offer = 33; + */ + public boolean hasResponseSongOffer() { + return ((bitField0_ & 0x08000000) == 0x08000000); + } + + /** + * optional .pb.remote.ResponseSongOffer response_song_offer = 33; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer getResponseSongOffer() { + if (responseSongOfferBuilder_ == null) { + return responseSongOffer_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer + .getDefaultInstance() + : responseSongOffer_; + } else { + return responseSongOfferBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.ResponseSongOffer response_song_offer = 33; + */ + public Builder setResponseSongOffer( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer value) { + if (responseSongOfferBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + responseSongOffer_ = value; + onChanged(); + } else { + responseSongOfferBuilder_.setMessage(value); + } + bitField0_ |= 0x08000000; + return this; + } + + /** + * optional .pb.remote.ResponseSongOffer response_song_offer = 33; + */ + public Builder setResponseSongOffer( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer.Builder builderForValue) { + if (responseSongOfferBuilder_ == null) { + responseSongOffer_ = builderForValue.build(); + onChanged(); + } else { + responseSongOfferBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x08000000; + return this; + } + + /** + * optional .pb.remote.ResponseSongOffer response_song_offer = 33; + */ + public Builder mergeResponseSongOffer( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer value) { + if (responseSongOfferBuilder_ == null) { + if (((bitField0_ & 0x08000000) == 0x08000000) && responseSongOffer_ != null + && responseSongOffer_ != de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer + .getDefaultInstance()) { + responseSongOffer_ = de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer + .newBuilder(responseSongOffer_).mergeFrom(value).buildPartial(); + } else { + responseSongOffer_ = value; + } + onChanged(); + } else { + responseSongOfferBuilder_.mergeFrom(value); + } + bitField0_ |= 0x08000000; + return this; + } + + /** + * optional .pb.remote.ResponseSongOffer response_song_offer = 33; + */ + public Builder clearResponseSongOffer() { + if (responseSongOfferBuilder_ == null) { + responseSongOffer_ = null; + onChanged(); + } else { + responseSongOfferBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x08000000); + return this; + } + + /** + * optional .pb.remote.ResponseSongOffer response_song_offer = 33; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer.Builder getResponseSongOfferBuilder() { + bitField0_ |= 0x08000000; + onChanged(); + return getResponseSongOfferFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.ResponseSongOffer response_song_offer = 33; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOfferOrBuilder getResponseSongOfferOrBuilder() { + if (responseSongOfferBuilder_ != null) { + return responseSongOfferBuilder_.getMessageOrBuilder(); + } else { + return responseSongOffer_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseSongOffer + .getDefaultInstance() + : responseSongOffer_; + } + } + + /** + * optional .pb.remote.ResponseSongOffer response_song_offer = 33; + */ + private com.google.protobuf.SingleFieldBuilderV3 getResponseSongOfferFieldBuilder() { + if (responseSongOfferBuilder_ == null) { + responseSongOfferBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getResponseSongOffer(), getParentForChildren(), isClean()); + responseSongOffer_ = null; + } + return responseSongOfferBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk responseLibraryChunk_ = null; + private com.google.protobuf.SingleFieldBuilderV3 responseLibraryChunkBuilder_; + + /** + * optional .pb.remote.ResponseLibraryChunk response_library_chunk = 34; + */ + public boolean hasResponseLibraryChunk() { + return ((bitField0_ & 0x10000000) == 0x10000000); + } + + /** + * optional .pb.remote.ResponseLibraryChunk response_library_chunk = 34; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk getResponseLibraryChunk() { + if (responseLibraryChunkBuilder_ == null) { + return responseLibraryChunk_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk + .getDefaultInstance() + : responseLibraryChunk_; + } else { + return responseLibraryChunkBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.ResponseLibraryChunk response_library_chunk = 34; + */ + public Builder setResponseLibraryChunk( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk value) { + if (responseLibraryChunkBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + responseLibraryChunk_ = value; + onChanged(); + } else { + responseLibraryChunkBuilder_.setMessage(value); + } + bitField0_ |= 0x10000000; + return this; + } + + /** + * optional .pb.remote.ResponseLibraryChunk response_library_chunk = 34; + */ + public Builder setResponseLibraryChunk( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk.Builder builderForValue) { + if (responseLibraryChunkBuilder_ == null) { + responseLibraryChunk_ = builderForValue.build(); + onChanged(); + } else { + responseLibraryChunkBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x10000000; + return this; + } + + /** + * optional .pb.remote.ResponseLibraryChunk response_library_chunk = 34; + */ + public Builder mergeResponseLibraryChunk( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk value) { + if (responseLibraryChunkBuilder_ == null) { + if (((bitField0_ & 0x10000000) == 0x10000000) && responseLibraryChunk_ != null + && responseLibraryChunk_ != de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk + .getDefaultInstance()) { + responseLibraryChunk_ = de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk + .newBuilder(responseLibraryChunk_).mergeFrom(value).buildPartial(); + } else { + responseLibraryChunk_ = value; + } + onChanged(); + } else { + responseLibraryChunkBuilder_.mergeFrom(value); + } + bitField0_ |= 0x10000000; + return this; + } + + /** + * optional .pb.remote.ResponseLibraryChunk response_library_chunk = 34; + */ + public Builder clearResponseLibraryChunk() { + if (responseLibraryChunkBuilder_ == null) { + responseLibraryChunk_ = null; + onChanged(); + } else { + responseLibraryChunkBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x10000000); + return this; + } + + /** + * optional .pb.remote.ResponseLibraryChunk response_library_chunk = 34; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk.Builder getResponseLibraryChunkBuilder() { + bitField0_ |= 0x10000000; + onChanged(); + return getResponseLibraryChunkFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.ResponseLibraryChunk response_library_chunk = 34; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunkOrBuilder getResponseLibraryChunkOrBuilder() { + if (responseLibraryChunkBuilder_ != null) { + return responseLibraryChunkBuilder_.getMessageOrBuilder(); + } else { + return responseLibraryChunk_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseLibraryChunk + .getDefaultInstance() + : responseLibraryChunk_; + } + } + + /** + * optional .pb.remote.ResponseLibraryChunk response_library_chunk = 34; + */ + private com.google.protobuf.SingleFieldBuilderV3 getResponseLibraryChunkFieldBuilder() { + if (responseLibraryChunkBuilder_ == null) { + responseLibraryChunkBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getResponseLibraryChunk(), getParentForChildren(), isClean()); + responseLibraryChunk_ = null; + } + return responseLibraryChunkBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize responseDownloadTotalSize_ = null; + private com.google.protobuf.SingleFieldBuilderV3 responseDownloadTotalSizeBuilder_; + + /** + * optional .pb.remote.ResponseDownloadTotalSize response_download_total_size = 36; + */ + public boolean hasResponseDownloadTotalSize() { + return ((bitField0_ & 0x20000000) == 0x20000000); + } + + /** + * optional .pb.remote.ResponseDownloadTotalSize response_download_total_size = 36; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize getResponseDownloadTotalSize() { + if (responseDownloadTotalSizeBuilder_ == null) { + return responseDownloadTotalSize_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize + .getDefaultInstance() + : responseDownloadTotalSize_; + } else { + return responseDownloadTotalSizeBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.ResponseDownloadTotalSize response_download_total_size = 36; + */ + public Builder setResponseDownloadTotalSize( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize value) { + if (responseDownloadTotalSizeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + responseDownloadTotalSize_ = value; + onChanged(); + } else { + responseDownloadTotalSizeBuilder_.setMessage(value); + } + bitField0_ |= 0x20000000; + return this; + } + + /** + * optional .pb.remote.ResponseDownloadTotalSize response_download_total_size = 36; + */ + public Builder setResponseDownloadTotalSize( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize.Builder builderForValue) { + if (responseDownloadTotalSizeBuilder_ == null) { + responseDownloadTotalSize_ = builderForValue.build(); + onChanged(); + } else { + responseDownloadTotalSizeBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x20000000; + return this; + } + + /** + * optional .pb.remote.ResponseDownloadTotalSize response_download_total_size = 36; + */ + public Builder mergeResponseDownloadTotalSize( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize value) { + if (responseDownloadTotalSizeBuilder_ == null) { + if (((bitField0_ & 0x20000000) == 0x20000000) && responseDownloadTotalSize_ != null + && responseDownloadTotalSize_ != de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize + .getDefaultInstance()) { + responseDownloadTotalSize_ = de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize + .newBuilder(responseDownloadTotalSize_).mergeFrom(value).buildPartial(); + } else { + responseDownloadTotalSize_ = value; + } + onChanged(); + } else { + responseDownloadTotalSizeBuilder_.mergeFrom(value); + } + bitField0_ |= 0x20000000; + return this; + } + + /** + * optional .pb.remote.ResponseDownloadTotalSize response_download_total_size = 36; + */ + public Builder clearResponseDownloadTotalSize() { + if (responseDownloadTotalSizeBuilder_ == null) { + responseDownloadTotalSize_ = null; + onChanged(); + } else { + responseDownloadTotalSizeBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x20000000); + return this; + } + + /** + * optional .pb.remote.ResponseDownloadTotalSize response_download_total_size = 36; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize.Builder getResponseDownloadTotalSizeBuilder() { + bitField0_ |= 0x20000000; + onChanged(); + return getResponseDownloadTotalSizeFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.ResponseDownloadTotalSize response_download_total_size = 36; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSizeOrBuilder getResponseDownloadTotalSizeOrBuilder() { + if (responseDownloadTotalSizeBuilder_ != null) { + return responseDownloadTotalSizeBuilder_.getMessageOrBuilder(); + } else { + return responseDownloadTotalSize_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseDownloadTotalSize + .getDefaultInstance() + : responseDownloadTotalSize_; + } + } + + /** + * optional .pb.remote.ResponseDownloadTotalSize response_download_total_size = 36; + */ + private com.google.protobuf.SingleFieldBuilderV3 getResponseDownloadTotalSizeFieldBuilder() { + if (responseDownloadTotalSizeBuilder_ == null) { + responseDownloadTotalSizeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getResponseDownloadTotalSize(), getParentForChildren(), isClean()); + responseDownloadTotalSize_ = null; + } + return responseDownloadTotalSizeBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch responseGlobalSearch_ = null; + private com.google.protobuf.SingleFieldBuilderV3 responseGlobalSearchBuilder_; + + /** + * optional .pb.remote.ResponseGlobalSearch response_global_search = 38; + */ + public boolean hasResponseGlobalSearch() { + return ((bitField0_ & 0x40000000) == 0x40000000); + } + + /** + * optional .pb.remote.ResponseGlobalSearch response_global_search = 38; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch getResponseGlobalSearch() { + if (responseGlobalSearchBuilder_ == null) { + return responseGlobalSearch_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch + .getDefaultInstance() + : responseGlobalSearch_; + } else { + return responseGlobalSearchBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.ResponseGlobalSearch response_global_search = 38; + */ + public Builder setResponseGlobalSearch( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch value) { + if (responseGlobalSearchBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + responseGlobalSearch_ = value; + onChanged(); + } else { + responseGlobalSearchBuilder_.setMessage(value); + } + bitField0_ |= 0x40000000; + return this; + } + + /** + * optional .pb.remote.ResponseGlobalSearch response_global_search = 38; + */ + public Builder setResponseGlobalSearch( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch.Builder builderForValue) { + if (responseGlobalSearchBuilder_ == null) { + responseGlobalSearch_ = builderForValue.build(); + onChanged(); + } else { + responseGlobalSearchBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x40000000; + return this; + } + + /** + * optional .pb.remote.ResponseGlobalSearch response_global_search = 38; + */ + public Builder mergeResponseGlobalSearch( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch value) { + if (responseGlobalSearchBuilder_ == null) { + if (((bitField0_ & 0x40000000) == 0x40000000) && responseGlobalSearch_ != null + && responseGlobalSearch_ != de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch + .getDefaultInstance()) { + responseGlobalSearch_ = de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch + .newBuilder(responseGlobalSearch_).mergeFrom(value).buildPartial(); + } else { + responseGlobalSearch_ = value; + } + onChanged(); + } else { + responseGlobalSearchBuilder_.mergeFrom(value); + } + bitField0_ |= 0x40000000; + return this; + } + + /** + * optional .pb.remote.ResponseGlobalSearch response_global_search = 38; + */ + public Builder clearResponseGlobalSearch() { + if (responseGlobalSearchBuilder_ == null) { + responseGlobalSearch_ = null; + onChanged(); + } else { + responseGlobalSearchBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x40000000); + return this; + } + + /** + * optional .pb.remote.ResponseGlobalSearch response_global_search = 38; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch.Builder getResponseGlobalSearchBuilder() { + bitField0_ |= 0x40000000; + onChanged(); + return getResponseGlobalSearchFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.ResponseGlobalSearch response_global_search = 38; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchOrBuilder getResponseGlobalSearchOrBuilder() { + if (responseGlobalSearchBuilder_ != null) { + return responseGlobalSearchBuilder_.getMessageOrBuilder(); + } else { + return responseGlobalSearch_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearch + .getDefaultInstance() + : responseGlobalSearch_; + } + } + + /** + * optional .pb.remote.ResponseGlobalSearch response_global_search = 38; + */ + private com.google.protobuf.SingleFieldBuilderV3 getResponseGlobalSearchFieldBuilder() { + if (responseGlobalSearchBuilder_ == null) { + responseGlobalSearchBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getResponseGlobalSearch(), getParentForChildren(), isClean()); + responseGlobalSearch_ = null; + } + return responseGlobalSearchBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus responseTranscoderStatus_ = null; + private com.google.protobuf.SingleFieldBuilderV3 responseTranscoderStatusBuilder_; + + /** + * optional .pb.remote.ResponseTranscoderStatus response_transcoder_status = 39; + */ + public boolean hasResponseTranscoderStatus() { + return ((bitField0_ & 0x80000000) == 0x80000000); + } + + /** + * optional .pb.remote.ResponseTranscoderStatus response_transcoder_status = 39; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus getResponseTranscoderStatus() { + if (responseTranscoderStatusBuilder_ == null) { + return responseTranscoderStatus_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus + .getDefaultInstance() + : responseTranscoderStatus_; + } else { + return responseTranscoderStatusBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.ResponseTranscoderStatus response_transcoder_status = 39; + */ + public Builder setResponseTranscoderStatus( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus value) { + if (responseTranscoderStatusBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + responseTranscoderStatus_ = value; + onChanged(); + } else { + responseTranscoderStatusBuilder_.setMessage(value); + } + bitField0_ |= 0x80000000; + return this; + } + + /** + * optional .pb.remote.ResponseTranscoderStatus response_transcoder_status = 39; + */ + public Builder setResponseTranscoderStatus( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus.Builder builderForValue) { + if (responseTranscoderStatusBuilder_ == null) { + responseTranscoderStatus_ = builderForValue.build(); + onChanged(); + } else { + responseTranscoderStatusBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x80000000; + return this; + } + + /** + * optional .pb.remote.ResponseTranscoderStatus response_transcoder_status = 39; + */ + public Builder mergeResponseTranscoderStatus( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus value) { + if (responseTranscoderStatusBuilder_ == null) { + if (((bitField0_ & 0x80000000) == 0x80000000) && responseTranscoderStatus_ != null + && responseTranscoderStatus_ != de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus + .getDefaultInstance()) { + responseTranscoderStatus_ = de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus + .newBuilder(responseTranscoderStatus_).mergeFrom(value).buildPartial(); + } else { + responseTranscoderStatus_ = value; + } + onChanged(); + } else { + responseTranscoderStatusBuilder_.mergeFrom(value); + } + bitField0_ |= 0x80000000; + return this; + } + + /** + * optional .pb.remote.ResponseTranscoderStatus response_transcoder_status = 39; + */ + public Builder clearResponseTranscoderStatus() { + if (responseTranscoderStatusBuilder_ == null) { + responseTranscoderStatus_ = null; + onChanged(); + } else { + responseTranscoderStatusBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x80000000); + return this; + } + + /** + * optional .pb.remote.ResponseTranscoderStatus response_transcoder_status = 39; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus.Builder getResponseTranscoderStatusBuilder() { + bitField0_ |= 0x80000000; + onChanged(); + return getResponseTranscoderStatusFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.ResponseTranscoderStatus response_transcoder_status = 39; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatusOrBuilder getResponseTranscoderStatusOrBuilder() { + if (responseTranscoderStatusBuilder_ != null) { + return responseTranscoderStatusBuilder_.getMessageOrBuilder(); + } else { + return responseTranscoderStatus_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseTranscoderStatus + .getDefaultInstance() + : responseTranscoderStatus_; + } + } + + /** + * optional .pb.remote.ResponseTranscoderStatus response_transcoder_status = 39; + */ + private com.google.protobuf.SingleFieldBuilderV3 getResponseTranscoderStatusFieldBuilder() { + if (responseTranscoderStatusBuilder_ == null) { + responseTranscoderStatusBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getResponseTranscoderStatus(), getParentForChildren(), isClean()); + responseTranscoderStatus_ = null; + } + return responseTranscoderStatusBuilder_; + } + + private de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus responseGlobalSearchStatus_ = null; + private com.google.protobuf.SingleFieldBuilderV3 responseGlobalSearchStatusBuilder_; + + /** + * optional .pb.remote.ResponseGlobalSearchStatus response_global_search_status = 40; + */ + public boolean hasResponseGlobalSearchStatus() { + return ((bitField1_ & 0x00000001) == 0x00000001); + } + + /** + * optional .pb.remote.ResponseGlobalSearchStatus response_global_search_status = 40; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus getResponseGlobalSearchStatus() { + if (responseGlobalSearchStatusBuilder_ == null) { + return responseGlobalSearchStatus_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus + .getDefaultInstance() + : responseGlobalSearchStatus_; + } else { + return responseGlobalSearchStatusBuilder_.getMessage(); + } + } + + /** + * optional .pb.remote.ResponseGlobalSearchStatus response_global_search_status = 40; + */ + public Builder setResponseGlobalSearchStatus( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus value) { + if (responseGlobalSearchStatusBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + responseGlobalSearchStatus_ = value; + onChanged(); + } else { + responseGlobalSearchStatusBuilder_.setMessage(value); + } + bitField1_ |= 0x00000001; + return this; + } + + /** + * optional .pb.remote.ResponseGlobalSearchStatus response_global_search_status = 40; + */ + public Builder setResponseGlobalSearchStatus( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus.Builder builderForValue) { + if (responseGlobalSearchStatusBuilder_ == null) { + responseGlobalSearchStatus_ = builderForValue.build(); + onChanged(); + } else { + responseGlobalSearchStatusBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x00000001; + return this; + } + + /** + * optional .pb.remote.ResponseGlobalSearchStatus response_global_search_status = 40; + */ + public Builder mergeResponseGlobalSearchStatus( + de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus value) { + if (responseGlobalSearchStatusBuilder_ == null) { + if (((bitField1_ & 0x00000001) == 0x00000001) && responseGlobalSearchStatus_ != null + && responseGlobalSearchStatus_ != de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus + .getDefaultInstance()) { + responseGlobalSearchStatus_ = de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus + .newBuilder(responseGlobalSearchStatus_).mergeFrom(value).buildPartial(); + } else { + responseGlobalSearchStatus_ = value; + } + onChanged(); + } else { + responseGlobalSearchStatusBuilder_.mergeFrom(value); + } + bitField1_ |= 0x00000001; + return this; + } + + /** + * optional .pb.remote.ResponseGlobalSearchStatus response_global_search_status = 40; + */ + public Builder clearResponseGlobalSearchStatus() { + if (responseGlobalSearchStatusBuilder_ == null) { + responseGlobalSearchStatus_ = null; + onChanged(); + } else { + responseGlobalSearchStatusBuilder_.clear(); + } + bitField1_ = (bitField1_ & ~0x00000001); + return this; + } + + /** + * optional .pb.remote.ResponseGlobalSearchStatus response_global_search_status = 40; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus.Builder getResponseGlobalSearchStatusBuilder() { + bitField1_ |= 0x00000001; + onChanged(); + return getResponseGlobalSearchStatusFieldBuilder().getBuilder(); + } + + /** + * optional .pb.remote.ResponseGlobalSearchStatus response_global_search_status = 40; + */ + public de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatusOrBuilder getResponseGlobalSearchStatusOrBuilder() { + if (responseGlobalSearchStatusBuilder_ != null) { + return responseGlobalSearchStatusBuilder_.getMessageOrBuilder(); + } else { + return responseGlobalSearchStatus_ == null + ? de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseGlobalSearchStatus + .getDefaultInstance() + : responseGlobalSearchStatus_; + } + } + + /** + * optional .pb.remote.ResponseGlobalSearchStatus response_global_search_status = 40; + */ + private com.google.protobuf.SingleFieldBuilderV3 getResponseGlobalSearchStatusFieldBuilder() { + if (responseGlobalSearchStatusBuilder_ == null) { + responseGlobalSearchStatusBuilder_ = new com.google.protobuf.SingleFieldBuilderV3( + getResponseGlobalSearchStatus(), getParentForChildren(), isClean()); + responseGlobalSearchStatus_ = null; + } + return responseGlobalSearchStatusBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:pb.remote.Message) + } + + // @@protoc_insertion_point(class_scope:pb.remote.Message) + private static final de.qspool.clementineremote.backend.pb.ClementineRemote.Message DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new de.qspool.clementineremote.backend.pb.ClementineRemote.Message(); + } + + public static de.qspool.clementineremote.backend.pb.ClementineRemote.Message getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated + public static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Message parsePartialFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new Message(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public de.qspool.clementineremote.backend.pb.ClementineRemote.Message getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_SongMetadata_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_SongMetadata_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_Playlist_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_Playlist_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_RequestPlaylists_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_RequestPlaylists_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_RequestPlaylistSongs_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_RequestPlaylistSongs_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_RequestChangeSong_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_RequestChangeSong_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_RequestSetVolume_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_RequestSetVolume_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_Repeat_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_Repeat_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_Shuffle_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_Shuffle_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_ResponseClementineInfo_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_ResponseClementineInfo_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_ResponseCurrentMetadata_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_ResponseCurrentMetadata_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_ResponsePlaylists_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_ResponsePlaylists_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_ResponsePlaylistSongs_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_ResponsePlaylistSongs_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_ResponseEngineStateChanged_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_ResponseEngineStateChanged_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_ResponseUpdateTrackPosition_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_ResponseUpdateTrackPosition_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_RequestConnect_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_RequestConnect_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_ResponseDisconnect_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_ResponseDisconnect_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_ResponseActiveChanged_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_ResponseActiveChanged_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_RequestSetTrackPosition_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_RequestSetTrackPosition_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_RequestInsertUrls_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_RequestInsertUrls_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_RequestRemoveSongs_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_RequestRemoveSongs_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_RequestOpenPlaylist_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_RequestOpenPlaylist_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_RequestClosePlaylist_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_RequestClosePlaylist_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_ResponseLyrics_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_ResponseLyrics_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_Lyric_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_Lyric_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_RequestDownloadSongs_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_RequestDownloadSongs_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_ResponseSongFileChunk_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_ResponseSongFileChunk_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_ResponseLibraryChunk_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_ResponseLibraryChunk_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_ResponseSongOffer_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_ResponseSongOffer_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_RequestRateSong_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_RequestRateSong_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_ResponseDownloadTotalSize_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_ResponseDownloadTotalSize_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_RequestGlobalSearch_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_RequestGlobalSearch_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_ResponseGlobalSearch_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_ResponseGlobalSearch_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_ResponseTranscoderStatus_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_ResponseTranscoderStatus_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_ResponseGlobalSearchStatus_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_ResponseGlobalSearchStatus_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_pb_remote_Message_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pb_remote_Message_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + return descriptor; + } + + private static com.google.protobuf.Descriptors.FileDescriptor descriptor; + static { + java.lang.String[] descriptorData = { "\n!proto/remotecontrolmessages.proto\022\tpb." + + "remote\"\323\004\n\014SongMetadata\022\n\n\002id\030\001 \001(\005\022\r\n\005i" + + "ndex\030\002 \001(\005\022\r\n\005title\030\003 \001(\t\022\r\n\005album\030\004 \001(\t" + + "\022\016\n\006artist\030\005 \001(\t\022\023\n\013albumartist\030\006 \001(\t\022\r\n" + + "\005track\030\007 \001(\005\022\014\n\004disc\030\010 \001(\005\022\023\n\013pretty_yea" + + "r\030\t \001(\t\022\r\n\005genre\030\n \001(\t\022\021\n\tplaycount\030\013 \001(" + + "\005\022\025\n\rpretty_length\030\014 \001(\t\022\013\n\003art\030\r \001(\014\022\016\n" + + "\006length\030\016 \001(\005\022\020\n\010is_local\030\017 \001(\010\022\020\n\010filen" + + "ame\030\020 \001(\t\022\021\n\tfile_size\030\021 \001(\005\022\016\n\006rating\030\022" + + " \001(\002\022\013\n\003url\030\023 \001(\t\022\025\n\rart_automatic\030\024 \001(\t" + + "\022\022\n\nart_manual\030\025 \001(\t\022*\n\004type\030\026 \001(\0162\034.pb." + + "remote.SongMetadata.Type\"\261\001\n\004Type\022\013\n\007UNK" + + "NOWN\020\000\022\007\n\003ASF\020\001\022\010\n\004FLAC\020\002\022\007\n\003MP4\020\003\022\007\n\003MP" + + "C\020\004\022\010\n\004MPEG\020\005\022\013\n\007OGGFLAC\020\006\022\014\n\010OGGSPEEX\020\007" + + "\022\r\n\tOGGVORBIS\020\010\022\010\n\004AIFF\020\t\022\007\n\003WAV\020\n\022\r\n\tTR" + + "UEAUDIO\020\013\022\010\n\004CDDA\020\014\022\013\n\007OGGOPUS\020\r\022\n\n\006STRE" + + "AM\020c\"X\n\010Playlist\022\n\n\002id\030\001 \001(\005\022\014\n\004name\030\002 \001" + + "(\t\022\022\n\nitem_count\030\003 \001(\005\022\016\n\006active\030\004 \001(\010\022\016" + + "\n\006closed\030\005 \001(\010\"*\n\020RequestPlaylists\022\026\n\016in" + + "clude_closed\030\001 \001(\010\"\"\n\024RequestPlaylistSon" + + "gs\022\n\n\002id\030\001 \001(\005\"<\n\021RequestChangeSong\022\023\n\013p" + + "laylist_id\030\001 \001(\005\022\022\n\nsong_index\030\002 \001(\005\"\"\n\020" + + "RequestSetVolume\022\016\n\006volume\030\001 \001(\005\"4\n\006Repe" + + "at\022*\n\013repeat_mode\030\001 \001(\0162\025.pb.remote.Repe" + + "atMode\"7\n\007Shuffle\022,\n\014shuffle_mode\030\001 \001(\0162" + + "\026.pb.remote.ShuffleMode\"P\n\026ResponseCleme" + + "ntineInfo\022\017\n\007version\030\001 \001(\t\022%\n\005state\030\002 \001(" + + "\0162\026.pb.remote.EngineState\"I\n\027ResponseCur" + + "rentMetadata\022.\n\rsong_metadata\030\001 \001(\0132\027.pb" + + ".remote.SongMetadata\":\n\021ResponsePlaylist" + + "s\022%\n\010playlist\030\001 \003(\0132\023.pb.remote.Playlist" + + "\"p\n\025ResponsePlaylistSongs\022/\n\022requested_p" + + "laylist\030\001 \001(\0132\023.pb.remote.Playlist\022&\n\005so" + + "ngs\030\002 \003(\0132\027.pb.remote.SongMetadata\"C\n\032Re" + + "sponseEngineStateChanged\022%\n\005state\030\001 \001(\0162" + + "\026.pb.remote.EngineState\"/\n\033ResponseUpdat" + + "eTrackPosition\022\020\n\010position\030\001 \001(\005\"T\n\016Requ" + + "estConnect\022\021\n\tauth_code\030\001 \001(\005\022\033\n\023send_pl" + + "aylist_songs\030\002 \001(\010\022\022\n\ndownloader\030\003 \001(\010\"L" + + "\n\022ResponseDisconnect\0226\n\021reason_disconnec" + + "t\030\001 \001(\0162\033.pb.remote.ReasonDisconnect\"#\n\025" + + "ResponseActiveChanged\022\n\n\002id\030\001 \001(\005\"+\n\027Req" + + "uestSetTrackPosition\022\020\n\010position\030\001 \001(\005\"\245" + + "\001\n\021RequestInsertUrls\022\023\n\013playlist_id\030\001 \001(" + + "\005\022\014\n\004urls\030\002 \003(\t\022\024\n\010position\030\003 \001(\005:\002-1\022\027\n" + + "\010play_now\030\004 \001(\010:\005false\022\026\n\007enqueue\030\005 \001(\010:" + + "\005false\022&\n\005songs\030\006 \003(\0132\027.pb.remote.SongMe" + + "tadata\"8\n\022RequestRemoveSongs\022\023\n\013playlist" + + "_id\030\001 \001(\005\022\r\n\005songs\030\002 \003(\005\"*\n\023RequestOpenP" + + "laylist\022\023\n\013playlist_id\030\001 \001(\005\"+\n\024RequestC" + + "losePlaylist\022\023\n\013playlist_id\030\001 \001(\005\"2\n\016Res" + + "ponseLyrics\022 \n\006lyrics\030\001 \003(\0132\020.pb.remote." + + "Lyric\"3\n\005Lyric\022\n\n\002id\030\001 \001(\t\022\r\n\005title\030\002 \001(" + + "\t\022\017\n\007content\030\003 \001(\t\"i\n\024RequestDownloadSon" + + "gs\022.\n\rdownload_item\030\001 \001(\0162\027.pb.remote.Do" + + "wnloadItem\022\023\n\013playlist_id\030\002 \001(\005\022\014\n\004urls\030" + + "\003 \003(\t\"\312\001\n\025ResponseSongFileChunk\022\024\n\014chunk" + + "_number\030\001 \001(\005\022\023\n\013chunk_count\030\002 \001(\005\022\023\n\013fi" + + "le_number\030\003 \001(\005\022\022\n\nfile_count\030\004 \001(\005\022.\n\rs" + + "ong_metadata\030\006 \001(\0132\027.pb.remote.SongMetad" + + "ata\022\014\n\004data\030\007 \001(\014\022\014\n\004size\030\010 \001(\005\022\021\n\tfile_" + + "hash\030\t \001(\014\"p\n\024ResponseLibraryChunk\022\024\n\014ch" + + "unk_number\030\001 \001(\005\022\023\n\013chunk_count\030\002 \001(\005\022\014\n" + + "\004data\030\003 \001(\014\022\014\n\004size\030\004 \001(\005\022\021\n\tfile_hash\030\005" + + " \001(\014\"%\n\021ResponseSongOffer\022\020\n\010accepted\030\001 " + + "\001(\010\"!\n\017RequestRateSong\022\016\n\006rating\030\001 \001(\002\"C" + + "\n\031ResponseDownloadTotalSize\022\022\n\ntotal_siz" + + "e\030\001 \001(\005\022\022\n\nfile_count\030\002 \001(\005\"$\n\023RequestGl" + + "obalSearch\022\r\n\005query\030\001 \001(\t\"\230\001\n\024ResponseGl" + + "obalSearch\022\n\n\002id\030\001 \001(\005\022\r\n\005query\030\002 \001(\t\022\027\n" + + "\017search_provider\030\003 \001(\t\022.\n\rsong_metadata\030" + + "\004 \003(\0132\027.pb.remote.SongMetadata\022\034\n\024search" + + "_provider_icon\030\005 \001(\014\"<\n\030ResponseTranscod" + + "erStatus\022\021\n\tprocessed\030\001 \001(\005\022\r\n\005total\030\002 \001" + + "(\005\"f\n\032ResponseGlobalSearchStatus\022\n\n\002id\030\001" + + " \001(\005\022\r\n\005query\030\002 \001(\t\022-\n\006status\030\003 \001(\0162\035.pb" + + ".remote.GlobalSearchStatus\"\347\017\n\007Message\022\023" + + "\n\007version\030\001 \001(\005:\00221\022)\n\004type\030\002 \001(\0162\022.pb.r" + + "emote.MsgType:\007UNKNOWN\0222\n\017request_connec" + + "t\030\025 \001(\0132\031.pb.remote.RequestConnect\0226\n\021re" + + "quest_playlists\030\033 \001(\0132\033.pb.remote.Reques" + + "tPlaylists\022?\n\026request_playlist_songs\030\n \001" + + "(\0132\037.pb.remote.RequestPlaylistSongs\0229\n\023r" + + "equest_change_song\030\013 \001(\0132\034.pb.remote.Req" + + "uestChangeSong\0227\n\022request_set_volume\030\014 \001" + + "(\0132\033.pb.remote.RequestSetVolume\022F\n\032reque" + + "st_set_track_position\030\027 \001(\0132\".pb.remote." + + "RequestSetTrackPosition\0229\n\023request_inser" + + "t_urls\030\031 \001(\0132\034.pb.remote.RequestInsertUr" + + "ls\022;\n\024request_remove_songs\030\032 \001(\0132\035.pb.re" + + "mote.RequestRemoveSongs\022=\n\025request_open_" + + "playlist\030\034 \001(\0132\036.pb.remote.RequestOpenPl" + + "aylist\022?\n\026request_close_playlist\030\035 \001(\0132\037" + + ".pb.remote.RequestClosePlaylist\022?\n\026reque" + + "st_download_songs\030\037 \001(\0132\037.pb.remote.Requ" + + "estDownloadSongs\0225\n\021request_rate_song\030# " + + "\001(\0132\032.pb.remote.RequestRateSong\022=\n\025reque" + + "st_global_search\030% \001(\0132\036.pb.remote.Reque" + + "stGlobalSearch\022!\n\006repeat\030\r \001(\0132\021.pb.remo" + + "te.Repeat\022#\n\007shuffle\030\016 \001(\0132\022.pb.remote.S" + + "huffle\022C\n\030response_clementine_info\030\017 \001(\013" + + "2!.pb.remote.ResponseClementineInfo\022E\n\031r" + + "esponse_current_metadata\030\020 \001(\0132\".pb.remo" + + "te.ResponseCurrentMetadata\0228\n\022response_p" + + "laylists\030\021 \001(\0132\034.pb.remote.ResponsePlayl" + + "ists\022A\n\027response_playlist_songs\030\022 \001(\0132 ." + + "pb.remote.ResponsePlaylistSongs\022L\n\035respo" + + "nse_engine_state_changed\030\023 \001(\0132%.pb.remo" + + "te.ResponseEngineStateChanged\022N\n\036respons" + + "e_update_track_position\030\024 \001(\0132&.pb.remot" + + "e.ResponseUpdateTrackPosition\022:\n\023respons" + + "e_disconnect\030\026 \001(\0132\035.pb.remote.ResponseD" + + "isconnect\022A\n\027response_active_changed\030\030 \001" + + "(\0132 .pb.remote.ResponseActiveChanged\0222\n\017" + + "response_lyrics\030\036 \001(\0132\031.pb.remote.Respon" + + "seLyrics\022B\n\030response_song_file_chunk\030 \001" + + "(\0132 .pb.remote.ResponseSongFileChunk\0229\n\023" + + "response_song_offer\030! \001(\0132\034.pb.remote.Re" + + "sponseSongOffer\022?\n\026response_library_chun" + + "k\030\" \001(\0132\037.pb.remote.ResponseLibraryChunk" + + "\022J\n\034response_download_total_size\030$ \001(\0132$" + + ".pb.remote.ResponseDownloadTotalSize\022?\n\026" + + "response_global_search\030& \001(\0132\037.pb.remote" + + ".ResponseGlobalSearch\022G\n\032response_transc" + + "oder_status\030\' \001(\0132#.pb.remote.ResponseTr" + + "anscoderStatus\022L\n\035response_global_search" + + "_status\030( \001(\0132%.pb.remote.ResponseGlobal" + + "SearchStatus*\346\006\n\007MsgType\022\013\n\007UNKNOWN\020\000\022\013\n" + + "\007CONNECT\020\001\022\025\n\021REQUEST_PLAYLISTS\020\003\022\032\n\026REQ" + + "UEST_PLAYLIST_SONGS\020\004\022\017\n\013CHANGE_SONG\020\005\022\016" + + "\n\nSET_VOLUME\020\006\022\026\n\022SET_TRACK_POSITION\020\007\022\017" + + "\n\013INSERT_URLS\020\010\022\020\n\014REMOVE_SONGS\020\t\022\021\n\rOPE" + + "N_PLAYLIST\020\n\022\022\n\016CLOSE_PLAYLIST\020\013\022\016\n\nGET_" + + "LYRICS\020\016\022\022\n\016DOWNLOAD_SONGS\020\017\022\027\n\023SONG_OFF" + + "ER_RESPONSE\020\020\022\010\n\004LOVE\020\014\022\007\n\003BAN\020\r\022\016\n\nSTOP" + + "_AFTER\020\021\022\017\n\013GET_LIBRARY\020\022\022\r\n\tRATE_SONG\020\023" + + "\022\021\n\rGLOBAL_SEARCH\020d\022\016\n\nDISCONNECT\020\002\022\010\n\004P" + + "LAY\020\024\022\r\n\tPLAYPAUSE\020\025\022\t\n\005PAUSE\020\026\022\010\n\004STOP\020" + + "\027\022\010\n\004NEXT\020\030\022\014\n\010PREVIOUS\020\031\022\024\n\020SHUFFLE_PLA" + + "YLIST\020\032\022\n\n\006REPEAT\020\033\022\013\n\007SHUFFLE\020\034\022\010\n\004INFO" + + "\020(\022\024\n\020CURRENT_METAINFO\020)\022\r\n\tPLAYLISTS\020*\022" + + "\022\n\016PLAYLIST_SONGS\020+\022\030\n\024ENGINE_STATE_CHAN" + + "GED\020,\022\016\n\nKEEP_ALIVE\020-\022\031\n\025UPDATE_TRACK_PO" + + "SITION\020.\022\033\n\027ACTIVE_PLAYLIST_CHANGED\020/\022\034\n" + + "\030FIRST_DATA_SENT_COMPLETE\0200\022\n\n\006LYRICS\0201\022" + + "\023\n\017SONG_FILE_CHUNK\0202\022\030\n\024DOWNLOAD_QUEUE_E" + + "MPTY\0203\022\021\n\rLIBRARY_CHUNK\0204\022\027\n\023DOWNLOAD_TO" + + "TAL_SIZE\0205\022\030\n\024GLOBAL_SEARCH_RESULT\0206\022\025\n\021" + + "TRANSCODING_FILES\0207\022\030\n\024GLOBAL_SEARCH_STA" + + "TUS\0208*;\n\013EngineState\022\t\n\005Empty\020\000\022\010\n\004Idle\020" + + "\001\022\013\n\007Playing\020\002\022\n\n\006Paused\020\003*U\n\nRepeatMode" + + "\022\016\n\nRepeat_Off\020\000\022\020\n\014Repeat_Track\020\001\022\020\n\014Re" + + "peat_Album\020\002\022\023\n\017Repeat_Playlist\020\003*\\\n\013Shu" + + "ffleMode\022\017\n\013Shuffle_Off\020\000\022\017\n\013Shuffle_All" + + "\020\001\022\027\n\023Shuffle_InsideAlbum\020\002\022\022\n\016Shuffle_A" + + "lbums\020\003*k\n\020ReasonDisconnect\022\023\n\017Server_Sh" + + "utdown\020\001\022\023\n\017Wrong_Auth_Code\020\002\022\025\n\021Not_Aut" + + "henticated\020\003\022\026\n\022Download_Forbidden\020\004*G\n\014" + + "DownloadItem\022\017\n\013CurrentItem\020\001\022\r\n\tItemAlb" + + "um\020\002\022\r\n\tAPlaylist\020\003\022\010\n\004Urls\020\004*G\n\022GlobalS" + + "earchStatus\022\027\n\023GlobalSearchStarted\020\001\022\030\n\024" + + "GlobalSearchFinished\020\002B9\n%de.qspool.clem" + "entineremote.backend.pbB\020ClementineRemot" + + "e" }; + com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() { + public com.google.protobuf.ExtensionRegistry assignDescriptors( + com.google.protobuf.Descriptors.FileDescriptor root) { + descriptor = root; + return null; + } + }; + com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] {}, assigner); + internal_static_pb_remote_SongMetadata_descriptor = getDescriptor().getMessageTypes().get(0); + internal_static_pb_remote_SongMetadata_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_SongMetadata_descriptor, + new java.lang.String[] { "Id", "Index", "Title", "Album", "Artist", "Albumartist", "Track", "Disc", + "PrettyYear", "Genre", "Playcount", "PrettyLength", "Art", "Length", "IsLocal", "Filename", + "FileSize", "Rating", "Url", "ArtAutomatic", "ArtManual", "Type", }); + internal_static_pb_remote_Playlist_descriptor = getDescriptor().getMessageTypes().get(1); + internal_static_pb_remote_Playlist_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_Playlist_descriptor, + new java.lang.String[] { "Id", "Name", "ItemCount", "Active", "Closed", }); + internal_static_pb_remote_RequestPlaylists_descriptor = getDescriptor().getMessageTypes().get(2); + internal_static_pb_remote_RequestPlaylists_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_RequestPlaylists_descriptor, new java.lang.String[] { "IncludeClosed", }); + internal_static_pb_remote_RequestPlaylistSongs_descriptor = getDescriptor().getMessageTypes().get(3); + internal_static_pb_remote_RequestPlaylistSongs_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_RequestPlaylistSongs_descriptor, new java.lang.String[] { "Id", }); + internal_static_pb_remote_RequestChangeSong_descriptor = getDescriptor().getMessageTypes().get(4); + internal_static_pb_remote_RequestChangeSong_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_RequestChangeSong_descriptor, + new java.lang.String[] { "PlaylistId", "SongIndex", }); + internal_static_pb_remote_RequestSetVolume_descriptor = getDescriptor().getMessageTypes().get(5); + internal_static_pb_remote_RequestSetVolume_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_RequestSetVolume_descriptor, new java.lang.String[] { "Volume", }); + internal_static_pb_remote_Repeat_descriptor = getDescriptor().getMessageTypes().get(6); + internal_static_pb_remote_Repeat_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_Repeat_descriptor, new java.lang.String[] { "RepeatMode", }); + internal_static_pb_remote_Shuffle_descriptor = getDescriptor().getMessageTypes().get(7); + internal_static_pb_remote_Shuffle_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_Shuffle_descriptor, new java.lang.String[] { "ShuffleMode", }); + internal_static_pb_remote_ResponseClementineInfo_descriptor = getDescriptor().getMessageTypes().get(8); + internal_static_pb_remote_ResponseClementineInfo_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_ResponseClementineInfo_descriptor, + new java.lang.String[] { "Version", "State", }); + internal_static_pb_remote_ResponseCurrentMetadata_descriptor = getDescriptor().getMessageTypes().get(9); + internal_static_pb_remote_ResponseCurrentMetadata_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_ResponseCurrentMetadata_descriptor, + new java.lang.String[] { "SongMetadata", }); + internal_static_pb_remote_ResponsePlaylists_descriptor = getDescriptor().getMessageTypes().get(10); + internal_static_pb_remote_ResponsePlaylists_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_ResponsePlaylists_descriptor, new java.lang.String[] { "Playlist", }); + internal_static_pb_remote_ResponsePlaylistSongs_descriptor = getDescriptor().getMessageTypes().get(11); + internal_static_pb_remote_ResponsePlaylistSongs_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_ResponsePlaylistSongs_descriptor, + new java.lang.String[] { "RequestedPlaylist", "Songs", }); + internal_static_pb_remote_ResponseEngineStateChanged_descriptor = getDescriptor().getMessageTypes().get(12); + internal_static_pb_remote_ResponseEngineStateChanged_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_ResponseEngineStateChanged_descriptor, new java.lang.String[] { "State", }); + internal_static_pb_remote_ResponseUpdateTrackPosition_descriptor = getDescriptor().getMessageTypes().get(13); + internal_static_pb_remote_ResponseUpdateTrackPosition_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_ResponseUpdateTrackPosition_descriptor, + new java.lang.String[] { "Position", }); + internal_static_pb_remote_RequestConnect_descriptor = getDescriptor().getMessageTypes().get(14); + internal_static_pb_remote_RequestConnect_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_RequestConnect_descriptor, + new java.lang.String[] { "AuthCode", "SendPlaylistSongs", "Downloader", }); + internal_static_pb_remote_ResponseDisconnect_descriptor = getDescriptor().getMessageTypes().get(15); + internal_static_pb_remote_ResponseDisconnect_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_ResponseDisconnect_descriptor, + new java.lang.String[] { "ReasonDisconnect", }); + internal_static_pb_remote_ResponseActiveChanged_descriptor = getDescriptor().getMessageTypes().get(16); + internal_static_pb_remote_ResponseActiveChanged_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_ResponseActiveChanged_descriptor, new java.lang.String[] { "Id", }); + internal_static_pb_remote_RequestSetTrackPosition_descriptor = getDescriptor().getMessageTypes().get(17); + internal_static_pb_remote_RequestSetTrackPosition_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_RequestSetTrackPosition_descriptor, new java.lang.String[] { "Position", }); + internal_static_pb_remote_RequestInsertUrls_descriptor = getDescriptor().getMessageTypes().get(18); + internal_static_pb_remote_RequestInsertUrls_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_RequestInsertUrls_descriptor, + new java.lang.String[] { "PlaylistId", "Urls", "Position", "PlayNow", "Enqueue", "Songs", }); + internal_static_pb_remote_RequestRemoveSongs_descriptor = getDescriptor().getMessageTypes().get(19); + internal_static_pb_remote_RequestRemoveSongs_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_RequestRemoveSongs_descriptor, + new java.lang.String[] { "PlaylistId", "Songs", }); + internal_static_pb_remote_RequestOpenPlaylist_descriptor = getDescriptor().getMessageTypes().get(20); + internal_static_pb_remote_RequestOpenPlaylist_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_RequestOpenPlaylist_descriptor, new java.lang.String[] { "PlaylistId", }); + internal_static_pb_remote_RequestClosePlaylist_descriptor = getDescriptor().getMessageTypes().get(21); + internal_static_pb_remote_RequestClosePlaylist_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_RequestClosePlaylist_descriptor, new java.lang.String[] { "PlaylistId", }); + internal_static_pb_remote_ResponseLyrics_descriptor = getDescriptor().getMessageTypes().get(22); + internal_static_pb_remote_ResponseLyrics_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_ResponseLyrics_descriptor, new java.lang.String[] { "Lyrics", }); + internal_static_pb_remote_Lyric_descriptor = getDescriptor().getMessageTypes().get(23); + internal_static_pb_remote_Lyric_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_Lyric_descriptor, new java.lang.String[] { "Id", "Title", "Content", }); + internal_static_pb_remote_RequestDownloadSongs_descriptor = getDescriptor().getMessageTypes().get(24); + internal_static_pb_remote_RequestDownloadSongs_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_RequestDownloadSongs_descriptor, + new java.lang.String[] { "DownloadItem", "PlaylistId", "Urls", }); + internal_static_pb_remote_ResponseSongFileChunk_descriptor = getDescriptor().getMessageTypes().get(25); + internal_static_pb_remote_ResponseSongFileChunk_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_ResponseSongFileChunk_descriptor, new java.lang.String[] { "ChunkNumber", + "ChunkCount", "FileNumber", "FileCount", "SongMetadata", "Data", "Size", "FileHash", }); + internal_static_pb_remote_ResponseLibraryChunk_descriptor = getDescriptor().getMessageTypes().get(26); + internal_static_pb_remote_ResponseLibraryChunk_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_ResponseLibraryChunk_descriptor, + new java.lang.String[] { "ChunkNumber", "ChunkCount", "Data", "Size", "FileHash", }); + internal_static_pb_remote_ResponseSongOffer_descriptor = getDescriptor().getMessageTypes().get(27); + internal_static_pb_remote_ResponseSongOffer_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_ResponseSongOffer_descriptor, new java.lang.String[] { "Accepted", }); + internal_static_pb_remote_RequestRateSong_descriptor = getDescriptor().getMessageTypes().get(28); + internal_static_pb_remote_RequestRateSong_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_RequestRateSong_descriptor, new java.lang.String[] { "Rating", }); + internal_static_pb_remote_ResponseDownloadTotalSize_descriptor = getDescriptor().getMessageTypes().get(29); + internal_static_pb_remote_ResponseDownloadTotalSize_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_ResponseDownloadTotalSize_descriptor, + new java.lang.String[] { "TotalSize", "FileCount", }); + internal_static_pb_remote_RequestGlobalSearch_descriptor = getDescriptor().getMessageTypes().get(30); + internal_static_pb_remote_RequestGlobalSearch_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_RequestGlobalSearch_descriptor, new java.lang.String[] { "Query", }); + internal_static_pb_remote_ResponseGlobalSearch_descriptor = getDescriptor().getMessageTypes().get(31); + internal_static_pb_remote_ResponseGlobalSearch_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_ResponseGlobalSearch_descriptor, + new java.lang.String[] { "Id", "Query", "SearchProvider", "SongMetadata", "SearchProviderIcon", }); + internal_static_pb_remote_ResponseTranscoderStatus_descriptor = getDescriptor().getMessageTypes().get(32); + internal_static_pb_remote_ResponseTranscoderStatus_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_ResponseTranscoderStatus_descriptor, + new java.lang.String[] { "Processed", "Total", }); + internal_static_pb_remote_ResponseGlobalSearchStatus_descriptor = getDescriptor().getMessageTypes().get(33); + internal_static_pb_remote_ResponseGlobalSearchStatus_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_ResponseGlobalSearchStatus_descriptor, + new java.lang.String[] { "Id", "Query", "Status", }); + internal_static_pb_remote_Message_descriptor = getDescriptor().getMessageTypes().get(34); + internal_static_pb_remote_Message_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pb_remote_Message_descriptor, + new java.lang.String[] { "Version", "Type", "RequestConnect", "RequestPlaylists", + "RequestPlaylistSongs", "RequestChangeSong", "RequestSetVolume", "RequestSetTrackPosition", + "RequestInsertUrls", "RequestRemoveSongs", "RequestOpenPlaylist", "RequestClosePlaylist", + "RequestDownloadSongs", "RequestRateSong", "RequestGlobalSearch", "Repeat", "Shuffle", + "ResponseClementineInfo", "ResponseCurrentMetadata", "ResponsePlaylists", + "ResponsePlaylistSongs", "ResponseEngineStateChanged", "ResponseUpdateTrackPosition", + "ResponseDisconnect", "ResponseActiveChanged", "ResponseLyrics", "ResponseSongFileChunk", + "ResponseSongOffer", "ResponseLibraryChunk", "ResponseDownloadTotalSize", + "ResponseGlobalSearch", "ResponseTranscoderStatus", "ResponseGlobalSearchStatus", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/bundles/org.openhab.binding.clementineremote/src/main/java/org/openhab/binding/clementineremote/internal/ClementineRemoteBindingConstants.java b/bundles/org.openhab.binding.clementineremote/src/main/java/org/openhab/binding/clementineremote/internal/ClementineRemoteBindingConstants.java new file mode 100644 index 0000000000000..d76349ae32f76 --- /dev/null +++ b/bundles/org.openhab.binding.clementineremote/src/main/java/org/openhab/binding/clementineremote/internal/ClementineRemoteBindingConstants.java @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2010-2022 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.clementineremote.internal; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.openhab.core.thing.ThingTypeUID; + +/** + * The {@link ClementineRemoteBindingConstants} class defines common constants, which are + * used across the whole binding. + * + * @author Stephan Richter - Initial contribution + */ +@NonNullByDefault +public class ClementineRemoteBindingConstants { + + private static final String BINDING_ID = "clementineremote"; + + // List of all Thing Type UIDs + public static final ThingTypeUID THING_TYPE_CLEMENTINE = new ThingTypeUID(BINDING_ID, "clementine"); + + // List of all Channel ids + public static final String CHANNEL_ALBUM = "album"; + public static final String CHANNEL_ARTIST = "artist"; + + public static final String CHANNEL_PLAYBACK = "playback-control"; + public static final String CHANNEL_VOLUME = "volume-control"; + public static final String CHANNEL_COVER = "cover"; + public static final String CHANNEL_POSITION = "position"; + public static final String CHANNEL_STATE = "state"; + public static final String CHANNEL_TITLE = "title"; + public static final String CHANNEL_TRACK = "track"; + + public static final String CMD_FORWARD = "FASTFORWARD"; + public static final String CMD_NEXT = "NEXT"; + public static final String CMD_PAUSE = "PAUSE"; + public static final String CMD_PLAY = "PLAY"; + public static final String CMD_PREVIOUS = "PREVIOUS"; + public static final String CMD_REWIND = "REWIND"; + public static final String CMD_STOP = "STOP"; + + public static final String DEFAULT_HOST = "localhost"; + public static final int DEFAULT_PORT = 5500; + + public static final int MAX_SIZE = 52428800; // TODO: where does this come from? +} diff --git a/bundles/org.openhab.binding.clementineremote/src/main/java/org/openhab/binding/clementineremote/internal/ClementineRemoteConfiguration.java b/bundles/org.openhab.binding.clementineremote/src/main/java/org/openhab/binding/clementineremote/internal/ClementineRemoteConfiguration.java new file mode 100644 index 0000000000000..2c3d8c2228c72 --- /dev/null +++ b/bundles/org.openhab.binding.clementineremote/src/main/java/org/openhab/binding/clementineremote/internal/ClementineRemoteConfiguration.java @@ -0,0 +1,33 @@ +/** + * Copyright (c) 2010-2022 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.clementineremote.internal; + +import static org.openhab.binding.clementineremote.internal.ClementineRemoteBindingConstants.*; + +import org.eclipse.jdt.annotation.NonNullByDefault; + +/** + * The {@link ClementineRemoteConfiguration} class contains fields mapping thing configuration parameters. + * + * @author Stephan Richter - Initial contribution + */ +@NonNullByDefault +public class ClementineRemoteConfiguration { + + /** + * Sample configuration parameters. Replace with your own. + */ + public String hostname = DEFAULT_HOST; + public String password = ""; + public int port = DEFAULT_PORT; +} diff --git a/bundles/org.openhab.binding.clementineremote/src/main/java/org/openhab/binding/clementineremote/internal/ClementineRemoteHandler.java b/bundles/org.openhab.binding.clementineremote/src/main/java/org/openhab/binding/clementineremote/internal/ClementineRemoteHandler.java new file mode 100644 index 0000000000000..e62ef43301dda --- /dev/null +++ b/bundles/org.openhab.binding.clementineremote/src/main/java/org/openhab/binding/clementineremote/internal/ClementineRemoteHandler.java @@ -0,0 +1,409 @@ +/** + * Copyright (c) 2010-2022 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.clementineremote.internal; + +import static java.lang.Thread.sleep; +import static org.openhab.binding.clementineremote.internal.ClementineRemoteBindingConstants.*; + +import java.io.*; +import java.net.InetSocketAddress; +import java.net.Socket; +import java.net.URLConnection; +import java.util.Optional; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; +import org.openhab.core.config.core.Configuration; +import org.openhab.core.library.types.*; +import org.openhab.core.thing.ChannelUID; +import org.openhab.core.thing.Thing; +import org.openhab.core.thing.ThingStatus; +import org.openhab.core.thing.binding.BaseThingHandler; +import org.openhab.core.types.Command; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import de.qspool.clementineremote.backend.pb.ClementineRemote.Message; +import de.qspool.clementineremote.backend.pb.ClementineRemote.MsgType; +import de.qspool.clementineremote.backend.pb.ClementineRemote.RequestConnect; +import de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetTrackPosition; +import de.qspool.clementineremote.backend.pb.ClementineRemote.RequestSetVolume; +import de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseCurrentMetadata; +import de.qspool.clementineremote.backend.pb.ClementineRemote.ResponseUpdateTrackPosition; +import de.qspool.clementineremote.backend.pb.ClementineRemote.SongMetadata; +import tech.units.indriya.unit.Units; + +/** + * The {@link ClementineRemoteHandler} is responsible for handling commands, which are + * sent to one of the channels. + * + * @author Stephan Richter - Initial contribution + */ +@NonNullByDefault +public class ClementineRemoteHandler extends BaseThingHandler { + + private int currentPos = 0; + private int volume = 50; + + /** + * used to track the current state of the player + */ + private enum State { + unknown, + playing, + paused, + skipping, + stopped + } + + private final Logger logger = LoggerFactory.getLogger(ClementineRemoteHandler.class); + + private @Nullable ClementineRemoteConfiguration config; + private @Nullable Socket socket = null; + private boolean enabled = true; + private @Nullable DataOutputStream out = null; + private @Nullable SongMetadata song = null; + + private Message.Builder builder = Message.newBuilder(); + private State state = State.unknown; + + public ClementineRemoteHandler(Thing thing) { + super(thing); + } + + /** + * Try to establish a connection to the Clementine instance. + * If the connection breaks: wait 15s, then try again + */ + private void connect() { + enabled = true; + while (enabled) { + try { + sleep(15000); + } catch (InterruptedException e) { + logger.warn("sleep interrupted: {}", e.getMessage()); + } + connectionStart(); + if (enabled) { + logger.debug("Connection broken. Reconnectiong in 15 secs…"); + } + } + } + + /** + * Try to start a new connection: + *
    + *
  • open socket
  • + *
  • connect output stream
  • + *
  • send connect message
  • + *
  • wait for incoming messages
  • + *
+ * When the connection breaks: try to disconnect gracefully. + */ + private void connectionStart() { + try { + if (socket == null || socket.isClosed()) { + var address = new InetSocketAddress(config.hostname, config.port); + socket = new Socket(); + socket.connect(address); + } + out = new DataOutputStream(socket.getOutputStream()); + sendConnectMessage(); + handleMessages(); + } catch (IOException e) { + logger.debug("openConnection() failed: {}", e.getMessage()); + } + disconnect(); + } + + private static Optional detectMime(byte[] bytes) { + try { + InputStream is = new BufferedInputStream(new ByteArrayInputStream(bytes)); + return Optional.of(URLConnection.guessContentTypeFromStream(is)); + } catch (IOException e) { + return Optional.empty(); + } + } + + /** + * disconnect from clementine/clean up remains of broken connection + */ + private void disconnect() { + updateStatus(ThingStatus.OFFLINE); + setState(State.unknown); + + if (out != null) { // try to close the output stream + try { + out.close(); + } catch (IOException e) { + logger.warn("disconnect(): failed to close output stream socket: {}", e.getMessage()); + } + out = null; + } + if (socket != null) { // try to close the connection + try { + socket.close(); + } catch (IOException e) { + logger.warn("disconnect(): failed to close clementine protobuf socket: {}", e.getMessage()); + } + socket = null; + } + } + + /** + * Discard the component. Disables the component and disconnects from player + */ + @Override + public void dispose() { + enabled = false; + disconnect(); + } + + @Override + public void handleCommand(ChannelUID channelUID, Command command) { + var channel = channelUID.getId(); + switch (channel) { + case CHANNEL_PLAYBACK: + case CHANNEL_VOLUME: + handleControlCommand(command); + return; + } + logger.debug("No handler for command \"{}\" on channel {}", command, channel); + return; + } + + /** + * handles commands from the writable channels + * + * @param command + * @return + */ + private boolean handleControlCommand(Command command) { + if (command instanceof StringType) { + var cmd = ((StringType) command).toString(); + switch (cmd) { + case CMD_FORWARD: + return sendSkip(+15); + case CMD_NEXT: + return sendMessage(MsgType.NEXT); + case CMD_PAUSE: + return sendMessage(MsgType.PAUSE); + case CMD_PLAY: + return sendMessage(MsgType.PLAY); + case CMD_PREVIOUS: + return sendMessage(MsgType.PREVIOUS); + case CMD_REWIND: + return sendSkip(-15); + case CMD_STOP: + return sendMessage(MsgType.STOP); + } + } + if (command instanceof PercentType) { + return sendVolume(((PercentType) command).intValue()); + } + logger.warn("Unknown command \"{}\" cannot be handled.", command); + return false; + } + + private void handleCurrentMeta(ResponseCurrentMetadata meta) { + song = meta.getSongMetadata(); + var bytes = song.getArt().toByteArray(); + detectMime(bytes).ifPresent(mime -> updateState(CHANNEL_COVER, new RawType(bytes, mime))); + updateState(CHANNEL_ALBUM, new StringType(song.getAlbum())); + updateState(CHANNEL_ARTIST, new StringType(song.getArtist())); + updateState(CHANNEL_TRACK, new StringType(song.getTrack() + "")); + updateState(CHANNEL_TITLE, new StringType(song.getTitle())); + } + + private void handleMessages() throws IOException { + DataInputStream in = new DataInputStream(socket.getInputStream()); + while (enabled) { + var len = in.readInt(); + if (len < 0 || len > MAX_SIZE) { + logger.debug("handleMessages() ignoring data: len = {}", len); + continue; + } + byte[] buf = new byte[len]; + in.readFully(buf); + updateStatus(ThingStatus.ONLINE); + handleMessageFromClementine(Message.parseFrom(buf)); + } + } + + private void handleMessageFromClementine(Message message) { + MsgType type = message.getType(); + switch (type) { + case CURRENT_METAINFO: + handleCurrentMeta(message.getResponseCurrentMetadata()); + break; + case PAUSE: + setState(State.paused); + break; + case PLAY: + setState(State.playing); + break; + case SET_VOLUME: + handleVolume(message.getRequestSetVolume()); + break; + case STOP: + handleStop(); + break; + case UPDATE_TRACK_POSITION: + handleTrackPos(message.getResponseUpdateTrackPosition()); + break; + case KEEP_ALIVE: + break; + default: + logger.info("handleMessageFromClementine(): received {} message from clementine: {}", type, message); + } + } + + private void handleStop() { + setTrack("-", "-", "-", "-"); + setState(State.stopped); + handleNullableTrackPos(null); + } + + private void handleNullableTrackPos(@Nullable Integer newPos) { + if (newPos != null) { + setState(State.playing); + currentPos = newPos; + } else { + currentPos = 0; + } + + updateState(CHANNEL_POSITION, new QuantityType<>(currentPos, Units.SECOND)); + } + + private void handleTrackPos(ResponseUpdateTrackPosition message) { + handleNullableTrackPos(message.getPosition()); + } + + private void handleVolume(RequestSetVolume message) { + volume = message.getVolume(); + updateState(CHANNEL_VOLUME, new PercentType(volume)); + } + + @Override + public void initialize() { + config = getConfigAs(ClementineRemoteConfiguration.class); + + // TODO: Initialize the handler. + // The framework requires you to return from this method quickly, i.e. any network access must be done in + // the background initialization below. + // Also, before leaving this method a thing status from one of ONLINE, OFFLINE or UNKNOWN must be set. This + // might already be the real thing status in case you can decide it directly. + // In case you can not decide the thing status directly (e.g. for long running connection handshake using WAN + // access or similar) you should set status UNKNOWN here and then decide the real status asynchronously in the + // background. + + // set the thing status to UNKNOWN temporarily and let the background task decide for the real status. + // the framework is then able to reuse the resources from the thing handler initialization. + // we set this upfront to reliably check status updates in unit tests. + updateStatus(ThingStatus.UNKNOWN); + + // Example for background initialization: + scheduler.execute(this::connect); + + // These logging types should be primarily used by bindings + // logger.trace("Example trace message"); + // logger.debug("Example debug message"); + // logger.warn("Example warn message"); + // + // Logging to INFO should be avoided normally. + // See https://www.openhab.org/docs/developer/guidelines.html#f-logging + + // Note: When initialization can NOT be done set the status with more details for further + // analysis. See also class ThingStatusDetail for all available status details. + // Add a description to give user information to understand why thing does not work as expected. E.g. + // updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, + // "Can not access device as username and/or password are invalid"); + } + + private void sendConnectMessage() throws IOException { + RequestConnect req = builder.getRequestConnectBuilder().build(); + Message msg = builder.setRequestConnect(req).build(); + sendMessageOrThrow(msg); + } + + private boolean sendSkip(int d) { + state = State.skipping; + var pos = RequestSetTrackPosition.newBuilder().setPosition(currentPos + d); + Message msg = builder.setType(MsgType.SET_TRACK_POSITION).setRequestSetTrackPosition(pos).build(); + return sendMessage(msg); + } + + private boolean sendMessage(MsgType type) { + state = State.unknown; + return sendMessage(builder.setType(type).build()); + } + + private boolean sendMessage(Message message) { + if (out == null) { + return false; + } + try { + sendMessageOrThrow(message); + return true; + } catch (IOException e) { + logger.warn("sendMessage({}) failed: {}", message, e.getMessage()); + disconnect(); + return false; + } + } + + private void sendMessageOrThrow(Message message) throws IOException { + byte[] bytes = message.toByteArray(); + out.writeInt(bytes.length); + out.write(bytes); + out.flush(); + } + + private boolean sendVolume(int percent) { + var volume = RequestSetVolume.newBuilder().setVolume(percent); + Message msg = builder.setType(MsgType.SET_VOLUME).setRequestSetVolume(volume).build(); + return sendMessage(msg); + } + + private boolean setState(State newState) { + if (state == newState) { + return false; + } + state = newState; + switch (state) { + case playing: + updateState(CHANNEL_PLAYBACK, new StringType(CMD_PLAY)); + break; + case paused: + case stopped: + updateState(CHANNEL_PLAYBACK, new StringType(CMD_PAUSE)); + break; + } + updateState(CHANNEL_STATE, new StringType(state.toString())); + return true; + } + + private void setTrack(String artist, String album, String track, String title) { + updateState(CHANNEL_ALBUM, new StringType(album)); + updateState(CHANNEL_ARTIST, new StringType(artist)); + updateState(CHANNEL_TRACK, new StringType(track)); + updateState(CHANNEL_TITLE, new StringType(title)); + } + + @Override + protected void updateConfiguration(Configuration configuration) { + super.updateConfiguration(configuration); + dispose(); + scheduler.execute(this::connect); + } +} diff --git a/bundles/org.openhab.binding.clementineremote/src/main/java/org/openhab/binding/clementineremote/internal/ClementineRemoteHandlerFactory.java b/bundles/org.openhab.binding.clementineremote/src/main/java/org/openhab/binding/clementineremote/internal/ClementineRemoteHandlerFactory.java new file mode 100644 index 0000000000000..c2153c3100077 --- /dev/null +++ b/bundles/org.openhab.binding.clementineremote/src/main/java/org/openhab/binding/clementineremote/internal/ClementineRemoteHandlerFactory.java @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2010-2022 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.clementineremote.internal; + +import static org.openhab.binding.clementineremote.internal.ClementineRemoteBindingConstants.*; + +import java.util.Set; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; +import org.openhab.core.thing.Thing; +import org.openhab.core.thing.ThingTypeUID; +import org.openhab.core.thing.binding.BaseThingHandlerFactory; +import org.openhab.core.thing.binding.ThingHandler; +import org.openhab.core.thing.binding.ThingHandlerFactory; +import org.osgi.service.component.annotations.Component; + +/** + * The {@link ClementineRemoteHandlerFactory} is responsible for creating things and thing + * handlers. + * + * @author Stephan Richter - Initial contribution + */ +@NonNullByDefault +@Component(configurationPid = "binding.clementineremote", service = ThingHandlerFactory.class) +public class ClementineRemoteHandlerFactory extends BaseThingHandlerFactory { + + private static final Set SUPPORTED_THING_TYPES_UIDS = Set.of(THING_TYPE_CLEMENTINE); + + @Override + public boolean supportsThingType(ThingTypeUID thingTypeUID) { + return SUPPORTED_THING_TYPES_UIDS.contains(thingTypeUID); + } + + @Override + protected @Nullable ThingHandler createHandler(Thing thing) { + ThingTypeUID thingTypeUID = thing.getThingTypeUID(); + + if (THING_TYPE_CLEMENTINE.equals(thingTypeUID)) { + return new ClementineRemoteHandler(thing); + } + + return null; + } +} diff --git a/bundles/org.openhab.binding.clementineremote/src/main/resources/OH-INF/binding/binding.xml b/bundles/org.openhab.binding.clementineremote/src/main/resources/OH-INF/binding/binding.xml new file mode 100644 index 0000000000000..135715fd7aa25 --- /dev/null +++ b/bundles/org.openhab.binding.clementineremote/src/main/resources/OH-INF/binding/binding.xml @@ -0,0 +1,9 @@ + + + + Clementine Remote Control + This is a binding to remotely control Clementine Player instances. + + diff --git a/bundles/org.openhab.binding.clementineremote/src/main/resources/OH-INF/i18n/clementineremote_de.properties b/bundles/org.openhab.binding.clementineremote/src/main/resources/OH-INF/i18n/clementineremote_de.properties new file mode 100644 index 0000000000000..c5eba8a35a43a --- /dev/null +++ b/bundles/org.openhab.binding.clementineremote/src/main/resources/OH-INF/i18n/clementineremote_de.properties @@ -0,0 +1,35 @@ +# FIXME: please substitute the xx with a proper locale, ie. de +# FIXME: please do not add the file to the repo if you add or change no content +# binding +binding.clementineremote.name = Clementine-Fernsteuerung +binding.clementineremote.description = Fernsteuerung für den Clementine-Player + +# thing types +thing-type.clementineremote.clementine.label = Clementine-Player +thing-type.clementineremote.clementine.description = integriert einen Clementine-Player ins OpenHAB + +# thing type config description +thing-type.config.clementineremote.sample.hostname.label = Hostname/IP +thing-type.config.clementineremote.sample.hostname.description = Hostname oder IP-Adresse des Computers, auf dem Clementine läuft +thing-type.config.clementineremote.sample.password.label = Password +thing-type.config.clementineremote.sample.password.description = (Optionales) Passwort für die Fernsteuerung von Clementine +thing-type.config.clementineremote.sample.port.label = Port +thing-type.config.clementineremote.sample.port.description = Port, auf welchem Clementine Verbindungen annimmt. Standard: 5500 + +# channel types +channel-type.clementineremote.playback-control.label = Wiedergabe-Steuerung +channel-type.clementineremote.playback-control.description = Zur Steuerung der Wiedergabe +channel-type.clementineremote.current-album.label = aktuelles Album +channel-type.clementineremote.current-album.description = Name des Albums, auf dem der gerade gespielte Titel ist +channel-type.clementineremote.current-artist.label = aktueller Interpret +channel-type.clementineremote.current-artist.description = Name des Interpreten des aktuell gespielten Titels +channel-type.clementineremote.current-position.label = Position +channel-type.clementineremote.current-position.description = Aktuelle Position der Wiedergabe im gespielten Titel +channel-type.clementineremote.current-title.label = aktueller Titel +channel-type.clementineremote.current-title.description = Name des aktuell gespielten Stücks +channel-type.clementineremote.current-track.label = aktuelle Titel-Nummer +channel-type.clementineremote.current-track.description = Nummer des gerade gespielten Titels innerhalb des Albums +channel-type.clementineremote.current-state.label = Zustand +channel-type.clementineremote.current-state.description = Aktueller Zustand von Clementine (paused, playing, stopped, unknown) +channel-type.clementineremote.current-cover.label = Cover-Bild +channel-type.clementineremote.current-cover.description = Cover-Bild des aktuell gespielten Titels diff --git a/bundles/org.openhab.binding.clementineremote/src/main/resources/OH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.clementineremote/src/main/resources/OH-INF/thing/thing-types.xml new file mode 100644 index 0000000000000..dba975ee0147b --- /dev/null +++ b/bundles/org.openhab.binding.clementineremote/src/main/resources/OH-INF/thing/thing-types.xml @@ -0,0 +1,98 @@ + + + + + + + Remote control binding for Clementine Player + + + + + + + + + + + + + + + + network-address + + Hostname or IP address of Clementine player + + + password + + Password to access the Clementine player + + + port + + Port to access the Clementine player + 5500 + + + + + + String + + Common control of playback and position + + + + String + + Album the currently playing title belongs to + + + + + String + + Artist of the currently playing title + + + + + Number:Time + + Current position within the playing track + + + + + String + + Name of the currently playing title + + + + + String + + Number of the title within the current album + + + + + String + + Current state of clementine player + + + + + Image + + Cover of the current album + + + diff --git a/bundles/pom.xml b/bundles/pom.xml index a27e2138da5cb..d863d49b9af40 100644 --- a/bundles/pom.xml +++ b/bundles/pom.xml @@ -1,642 +1,1265 @@ - - + + + 4.0.0 - + + org.openhab.addons + org.openhab.addons.reactor + 3.3.0 + - + org.openhab.addons.bundles + org.openhab.addons.reactor.bundles + pom - + openHAB Add-ons :: Bundles - + + + org.openhab.automation.groovyscripting + org.openhab.automation.jrubyscripting + org.openhab.automation.jsscripting + org.openhab.automation.jythonscripting + org.openhab.automation.pidcontroller + org.openhab.automation.pwm + + org.openhab.io.homekit + org.openhab.io.hueemulation + org.openhab.io.imperihome + org.openhab.io.metrics + org.openhab.io.neeo + org.openhab.io.openhabcloud + + org.openhab.transform.bin2json + org.openhab.transform.exec + org.openhab.transform.javascript + org.openhab.transform.jinja + org.openhab.transform.jsonpath + org.openhab.transform.map + org.openhab.transform.regex + org.openhab.transform.scale + org.openhab.transform.xpath + org.openhab.transform.xslt + + org.openhab.binding.adorne + org.openhab.binding.ahawastecollection + org.openhab.binding.airq + org.openhab.binding.airquality + org.openhab.binding.airvisualnode + org.openhab.binding.alarmdecoder + org.openhab.binding.allplay + org.openhab.binding.amazondashbutton + org.openhab.binding.amazonechocontrol + org.openhab.binding.ambientweather + org.openhab.binding.amplipi + org.openhab.binding.androiddebugbridge + org.openhab.binding.anel + org.openhab.binding.astro + org.openhab.binding.atlona + org.openhab.binding.autelis + org.openhab.binding.automower + org.openhab.binding.avmfritz + org.openhab.binding.awattar + org.openhab.binding.benqprojector + org.openhab.binding.bigassfan + org.openhab.binding.bluetooth + org.openhab.binding.bluetooth.airthings + org.openhab.binding.bluetooth.am43 + org.openhab.binding.bluetooth.bluegiga + org.openhab.binding.bluetooth.bluez + org.openhab.binding.bluetooth.blukii + org.openhab.binding.bluetooth.daikinmadoka + org.openhab.binding.bluetooth.enoceanble + org.openhab.binding.bluetooth.generic + org.openhab.binding.bluetooth.govee + org.openhab.binding.bluetooth.roaming + org.openhab.binding.bluetooth.ruuvitag + org.openhab.binding.boschindego + org.openhab.binding.boschshc + org.openhab.binding.bosesoundtouch + org.openhab.binding.broadlinkthermostat + org.openhab.binding.bsblan + org.openhab.binding.bticinosmarther + org.openhab.binding.buienradar + org.openhab.binding.caddx + org.openhab.binding.cbus + org.openhab.binding.chromecast + + org.openhab.binding.clementineremote + org.openhab.binding.cm11a + org.openhab.binding.comfoair + org.openhab.binding.coolmasternet + org.openhab.binding.coronastats + org.openhab.binding.daikin + org.openhab.binding.dali + org.openhab.binding.danfossairunit + org.openhab.binding.darksky + org.openhab.binding.dbquery + org.openhab.binding.deconz + org.openhab.binding.denonmarantz + org.openhab.binding.deutschebahn + org.openhab.binding.digiplex + org.openhab.binding.digitalstrom + org.openhab.binding.dlinksmarthome + org.openhab.binding.dmx + org.openhab.binding.dominoswiss + org.openhab.binding.doorbird + org.openhab.binding.draytonwiser + org.openhab.binding.dscalarm + org.openhab.binding.dsmr + org.openhab.binding.dwdpollenflug + org.openhab.binding.dwdunwetter + org.openhab.binding.ecobee + org.openhab.binding.ecotouch + org.openhab.binding.ekey + org.openhab.binding.electroluxair + org.openhab.binding.elerotransmitterstick + org.openhab.binding.elroconnects + org.openhab.binding.energenie + org.openhab.binding.enigma2 + org.openhab.binding.enocean + org.openhab.binding.enphase + org.openhab.binding.enturno + org.openhab.binding.epsonprojector + org.openhab.binding.etherrain + org.openhab.binding.evcc + org.openhab.binding.evohome + org.openhab.binding.exec + org.openhab.binding.feed + org.openhab.binding.feican + org.openhab.binding.fineoffsetweatherstation + org.openhab.binding.flicbutton + org.openhab.binding.fmiweather + org.openhab.binding.folderwatcher + org.openhab.binding.folding + org.openhab.binding.foobot + org.openhab.binding.freebox + org.openhab.binding.fronius + org.openhab.binding.fsinternetradio + org.openhab.binding.ftpupload + org.openhab.binding.gardena + org.openhab.binding.gce + org.openhab.binding.generacmobilelink + org.openhab.binding.goecharger + org.openhab.binding.gpio + org.openhab.binding.globalcache + org.openhab.binding.gpstracker + org.openhab.binding.gree + org.openhab.binding.groupepsa + org.openhab.binding.groheondus + org.openhab.binding.guntamatic + org.openhab.binding.haassohnpelletstove + org.openhab.binding.harmonyhub + org.openhab.binding.haywardomnilogic + org.openhab.binding.hccrubbishcollection + org.openhab.binding.hdanywhere + org.openhab.binding.hdpowerview + org.openhab.binding.helios + org.openhab.binding.heliosventilation + org.openhab.binding.heos + org.openhab.binding.herzborg + org.openhab.binding.homeconnect + org.openhab.binding.homematic + org.openhab.binding.homewizard + org.openhab.binding.hpprinter + org.openhab.binding.http + org.openhab.binding.hue + org.openhab.binding.hydrawise + org.openhab.binding.hyperion + org.openhab.binding.iammeter + org.openhab.binding.iaqualink + org.openhab.binding.icalendar + org.openhab.binding.icloud + org.openhab.binding.ihc + org.openhab.binding.innogysmarthome + org.openhab.binding.insteon + org.openhab.binding.ipcamera + org.openhab.binding.ipobserver + org.openhab.binding.intesis + org.openhab.binding.ipp + org.openhab.binding.irobot + org.openhab.binding.irtrans + org.openhab.binding.ism8 + org.openhab.binding.jablotron + org.openhab.binding.jeelink + org.openhab.binding.jellyfin + org.openhab.binding.kaleidescape + org.openhab.binding.keba + org.openhab.binding.km200 + org.openhab.binding.knx + org.openhab.binding.kodi + org.openhab.binding.konnected + org.openhab.binding.kostalinverter + org.openhab.binding.kvv + org.openhab.binding.lametrictime + org.openhab.binding.lcn + org.openhab.binding.leapmotion + org.openhab.binding.lghombot + org.openhab.binding.lgtvserial + org.openhab.binding.lgwebos + org.openhab.binding.lifx + org.openhab.binding.linky + org.openhab.binding.linuxinput + org.openhab.binding.lirc + org.openhab.binding.livisismarthome + org.openhab.binding.logreader + org.openhab.binding.loxone + org.openhab.binding.luftdateninfo + org.openhab.binding.lutron + org.openhab.binding.luxom + org.openhab.binding.luxtronikheatpump + org.openhab.binding.magentatv + org.openhab.binding.mail + org.openhab.binding.max + org.openhab.binding.mcp23017 + org.openhab.binding.mecmeter + org.openhab.binding.melcloud + org.openhab.binding.meteoalerte + org.openhab.binding.meteoblue + org.openhab.binding.meteostick + org.openhab.binding.miele + org.openhab.binding.mielecloud + org.openhab.binding.mihome + org.openhab.binding.miio + org.openhab.binding.mikrotik + org.openhab.binding.millheat + org.openhab.binding.milight + org.openhab.binding.minecraft + org.openhab.binding.modbus + org.openhab.binding.modbus.e3dc + org.openhab.binding.modbus.sbc + org.openhab.binding.modbus.studer + org.openhab.binding.modbus.sunspec + org.openhab.binding.modbus.stiebeleltron + org.openhab.binding.modbus.helioseasycontrols + org.openhab.binding.monopriceaudio + org.openhab.binding.mpd + org.openhab.binding.mqtt + org.openhab.binding.mqtt.espmilighthub + org.openhab.binding.mqtt.generic + org.openhab.binding.mqtt.homeassistant + org.openhab.binding.mqtt.homie + org.openhab.binding.mybmw + org.openhab.binding.mycroft + org.openhab.binding.myq + org.openhab.binding.mystrom + org.openhab.binding.nanoleaf + org.openhab.binding.neato + org.openhab.binding.neeo + org.openhab.binding.neohub + org.openhab.binding.nest + org.openhab.binding.netatmo + org.openhab.binding.network + org.openhab.binding.networkupstools + org.openhab.binding.nibeheatpump + org.openhab.binding.nibeuplink + org.openhab.binding.nikobus + org.openhab.binding.nikohomecontrol + org.openhab.binding.novafinedust + org.openhab.binding.ntp + org.openhab.binding.nuki + org.openhab.binding.nuvo + org.openhab.binding.nzwateralerts + org.openhab.binding.oceanic + org.openhab.binding.ojelectronics + org.openhab.binding.omnikinverter + org.openhab.binding.omnilink + org.openhab.binding.onebusaway + org.openhab.binding.onewiregpio + org.openhab.binding.onewire + org.openhab.binding.onkyo + org.openhab.binding.opengarage + org.openhab.binding.opensprinkler + org.openhab.binding.openthermgateway + org.openhab.binding.openuv + org.openhab.binding.openweathermap + org.openhab.binding.openwebnet + org.openhab.binding.oppo + org.openhab.binding.orbitbhyve + org.openhab.binding.orvibo + org.openhab.binding.paradoxalarm + org.openhab.binding.pentair + org.openhab.binding.phc + org.openhab.binding.pilight + org.openhab.binding.pioneeravr + org.openhab.binding.pixometer + org.openhab.binding.pjlinkdevice + org.openhab.binding.playstation + org.openhab.binding.plclogo + org.openhab.binding.plugwise + org.openhab.binding.plugwiseha + org.openhab.binding.powermax + org.openhab.binding.proteusecometer + org.openhab.binding.prowl + org.openhab.binding.publictransportswitzerland + org.openhab.binding.pulseaudio + org.openhab.binding.pushbullet + org.openhab.binding.pushover + org.openhab.binding.pushsafer + org.openhab.binding.qbus + org.openhab.binding.radiothermostat + org.openhab.binding.regoheatpump + org.openhab.binding.revogi + org.openhab.binding.remoteopenhab + org.openhab.binding.renault + org.openhab.binding.resol + org.openhab.binding.rfxcom + org.openhab.binding.rme + org.openhab.binding.robonect + org.openhab.binding.roku + org.openhab.binding.rotel + org.openhab.binding.russound + org.openhab.binding.sagercaster + org.openhab.binding.samsungtv + org.openhab.binding.satel + org.openhab.binding.semsportal + org.openhab.binding.senechome + org.openhab.binding.seneye + org.openhab.binding.sensebox + org.openhab.binding.sensibo + org.openhab.binding.serial + org.openhab.binding.serialbutton + org.openhab.binding.shelly + org.openhab.binding.silvercrestwifisocket + org.openhab.binding.siemensrds + org.openhab.binding.sinope + org.openhab.binding.sleepiq + org.openhab.binding.smaenergymeter + org.openhab.binding.smartmeter + org.openhab.binding.smhi + org.openhab.binding.smartthings + org.openhab.binding.sncf + org.openhab.binding.snmp + org.openhab.binding.solaredge + org.openhab.binding.solarlog + org.openhab.binding.solarwatt + org.openhab.binding.somfymylink + org.openhab.binding.somfytahoma + org.openhab.binding.sonnen + org.openhab.binding.sonos + org.openhab.binding.sonyaudio + org.openhab.binding.sonyprojector + org.openhab.binding.souliss + org.openhab.binding.spotify + org.openhab.binding.squeezebox + org.openhab.binding.surepetcare + org.openhab.binding.synopanalyzer + org.openhab.binding.systeminfo + org.openhab.binding.tacmi + org.openhab.binding.tado + org.openhab.binding.tankerkoenig + org.openhab.binding.tapocontrol + org.openhab.binding.telegram + org.openhab.binding.teleinfo + org.openhab.binding.tellstick + org.openhab.binding.tesla + org.openhab.binding.tibber + org.openhab.binding.tivo + org.openhab.binding.touchwand + org.openhab.binding.tplinksmarthome + org.openhab.binding.tr064 + org.openhab.binding.tradfri + org.openhab.binding.twitter + org.openhab.binding.unifi + org.openhab.binding.unifiedremote + org.openhab.binding.upnpcontrol + org.openhab.binding.upb + org.openhab.binding.urtsi + org.openhab.binding.valloxmv + org.openhab.binding.vdr + org.openhab.binding.vektiva + org.openhab.binding.velbus + org.openhab.binding.velux + org.openhab.binding.venstarthermostat + org.openhab.binding.ventaair + org.openhab.binding.verisure + org.openhab.binding.vesync + org.openhab.binding.vigicrues + org.openhab.binding.vitotronic + org.openhab.binding.volvooncall + org.openhab.binding.warmup + org.openhab.binding.weathercompany + org.openhab.binding.weatherunderground + org.openhab.binding.webthing + org.openhab.binding.wemo + org.openhab.binding.wifiled + org.openhab.binding.windcentrale + org.openhab.binding.wlanthermo + org.openhab.binding.wled + org.openhab.binding.wolfsmartset + org.openhab.binding.wundergroundupdatereceiver + org.openhab.binding.xmltv + org.openhab.binding.xmppclient + org.openhab.binding.yamahamusiccast + org.openhab.binding.yamahareceiver + org.openhab.binding.yioremote + org.openhab.binding.yeelight + org.openhab.binding.zoneminder + org.openhab.binding.zway + + org.openhab.persistence.dynamodb + org.openhab.persistence.influxdb + org.openhab.persistence.jdbc + org.openhab.persistence.jpa + org.openhab.persistence.mapdb + org.openhab.persistence.mongodb + org.openhab.persistence.rrd4j + + org.openhab.voice.googlestt + org.openhab.voice.googletts + org.openhab.voice.mactts + org.openhab.voice.marytts + org.openhab.voice.actiontemplatehli + org.openhab.voice.picotts + org.openhab.voice.pollytts + org.openhab.voice.porcupineks + org.openhab.voice.rustpotterks + org.openhab.voice.voicerss + org.openhab.voice.voskstt + org.openhab.voice.watsonstt + + - + + target/dependency + + - + + + org.lastnpe.eea + eea-all + ${eea.version} + + + + org.openhab.core.bom + org.openhab.core.bom.compile + pom + provided + + + org.openhab.core.bom + org.openhab.core.bom.openhab-core + pom + provided + + + commons-net + commons-net + + + + + org.openhab.core.bom + org.openhab.core.bom.test + pom + test + + + + org.apache.karaf.features + framework + ${karaf.version} + kar + true + + + * + * + + + + + + org.apache.karaf.features + standard + ${karaf.version} + features + xml + provided + + - + + + + + org.apache.maven.plugins + maven-jar-plugin + + + ${project.build.outputDirectory}/META-INF/MANIFEST.MF + + true + + + + org.apache.karaf.tooling + karaf-maven-plugin + ${karaf.version} + true + + 80 + true + true + false + true + true + + + + compile + + features-generate-descriptor + + generate-resources + + ${feature.directory} + + + + karaf-feature-verification + + verify + + verify + + + + mvn:org.apache.karaf.features/framework/${karaf.version}/xml/features + mvn:org.apache.karaf.features/standard/${karaf.version}/xml/features + + file:${project.build.directory}/feature/feature.xml + + org.apache.karaf.features:framework + ${oh.java.version} + + framework + + + openhab-* + + false + true + first + + + + + + - + + + biz.aQute.bnd + bnd-maven-plugin + + + org.apache.maven.plugins + maven-source-plugin + + + attach-sources + + jar-no-fork + + + + + + org.apache.karaf.tooling + karaf-maven-plugin + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.1.1 + + + embed-dependencies + + unpack-dependencies + + + runtime + jar + **/module-info.class + javax.activation,org.apache.karaf.features,org.lastnpe.eea + ${dep.noembedding} + ${project.build.directory}/classes + true + true + true + jar + + + + unpack-eea + + unpack + + + + + org.lastnpe.eea + eea-all + ${eea.version} + true + + + + + + + + - + + + + no-embed-dependencies + + + noEmbedDependencies.profile + + + + + + org.apache.maven.plugins + maven-dependency-plugin + + + embed-dependencies + none + + + + + + + - + diff --git a/features/openhab-addons/pom.xml b/features/openhab-addons/pom.xml index b8aaba34a1ff3..e362a9f305020 100644 --- a/features/openhab-addons/pom.xml +++ b/features/openhab-addons/pom.xml @@ -1,4 +1,6 @@ - + + 4.0.0 @@ -50,7 +52,8 @@ - +