/* * Copyright (C) 2015 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License version 3, as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranties of * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * * Author: Xavi Garcia */ #include "dbus-types.h" PulseaudioVolume::PulseaudioVolume() : type_(0), volume_(10) { } PulseaudioVolume::PulseaudioVolume(unsigned int type, unsigned int volume) : type_(type) , volume_(volume) { } PulseaudioVolume::PulseaudioVolume(const PulseaudioVolume &other) : type_(other.type_), volume_(other.volume_) { } PulseaudioVolume& PulseaudioVolume::operator=(const PulseaudioVolume &other) { type_ = other.type_; volume_ = other.volume_; return *this; } PulseaudioVolume::~PulseaudioVolume() { } unsigned int PulseaudioVolume::getType() const { return type_; } unsigned int PulseaudioVolume::getVolume() const { return volume_; } void PulseaudioVolume::registerMetaType() { qRegisterMetaType("PulseaudioVolume"); qDBusRegisterMetaType(); } QDBusArgument &operator<<(QDBusArgument &argument, const PulseaudioVolume& volume) { argument.beginStructure(); argument << volume.type_; argument << volume.volume_; argument.endStructure(); return argument; } const QDBusArgument &operator>>(const QDBusArgument &argument, PulseaudioVolume &volume) { argument.beginStructure(); argument >> volume.type_; argument >> volume.volume_; argument.endStructure(); return argument; } PulseaudioVolumeArray::PulseaudioVolumeArray() { } PulseaudioVolumeArray::PulseaudioVolumeArray(const PulseaudioVolumeArray &other) : volume_array_(other.volume_array_) { } PulseaudioVolumeArray& PulseaudioVolumeArray::operator=(const PulseaudioVolumeArray &other) { volume_array_ = other.volume_array_; return *this; } PulseaudioVolumeArray::~PulseaudioVolumeArray() { } int PulseaudioVolumeArray::getNumItems() const { return volume_array_.size(); } PulseaudioVolume PulseaudioVolumeArray::getItem(int i) const { if (i < volume_array_.size()) { return volume_array_[i]; } return PulseaudioVolume(); } void PulseaudioVolumeArray::addItem(PulseaudioVolume const &item) { volume_array_.push_back(item); } void PulseaudioVolumeArray::registerMetaType() { qRegisterMetaType("PulseaudioVolumeArray"); qDBusRegisterMetaType(); } QDBusArgument &operator<<(QDBusArgument &argument, const PulseaudioVolumeArray& volume) { argument.beginArray( qMetaTypeId() ); for (int i = 0; i < volume.volume_array_.size(); ++ i) { PulseaudioVolume item = volume.getItem(i); argument << item; } argument.endArray(); return argument; } const QDBusArgument &operator>>(const QDBusArgument &argument, PulseaudioVolumeArray &volume) { argument.beginArray(); while ( !argument.atEnd() ) { PulseaudioVolume item; argument >> item; volume.volume_array_.push_back(item); } argument.endArray(); return argument; }