diff options
Diffstat (limited to 'tdecore/tdehw/hwlibdaemons/tdedbus/DeviceServiceBase.cpp')
-rw-r--r-- | tdecore/tdehw/hwlibdaemons/tdedbus/DeviceServiceBase.cpp | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/tdecore/tdehw/hwlibdaemons/tdedbus/DeviceServiceBase.cpp b/tdecore/tdehw/hwlibdaemons/tdedbus/DeviceServiceBase.cpp new file mode 100644 index 000000000..579f7cd45 --- /dev/null +++ b/tdecore/tdehw/hwlibdaemons/tdedbus/DeviceServiceBase.cpp @@ -0,0 +1,68 @@ +/* + * DeviceServiceBase.cpp + * + * Created on: Feb 1, 2021 + * Author: emanoil + * + * hardwarecontrol Copyright (C) 2021 trinity desktop development team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 + * 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 warranty of + * MERCHANTABILITY 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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include <unistd.h> +#include <tqfile.h> +#include <tqtextstream.h> + +#include <tqdbuserror.h> + +#include "DeviceServiceBase.h" + +DeviceServiceBase::DeviceServiceBase(TQT_DBusConnection &conn) +: m_connection(&conn) +{ + // TODO Auto-generated constructor stub + +} + +DeviceServiceBase::~DeviceServiceBase() +{ + if (m_connection) + delete m_connection; +} + +bool DeviceServiceBase::canSetDeviceValue(const TQString& device, TQT_DBusError& error) { + // check if path is writable + int rval = access (device.latin1(), W_OK); + if (rval != 0) + return false; + return true; +} + +bool DeviceServiceBase::setDeviceValue(const TQString& device, const TQString& param, TQT_DBusError& error) { + // make sure path is writable + if (canSetDeviceValue(device, error)) { + TQFile file(device); + if (!file.open( IO_WriteOnly ) ) { + error = TQT_DBusError::stdFailed(TQString ("Could not open device %1").arg(device)); + return false; + } + TQTextStream stream( &file ); + stream << param; + file.close(); + } else { + error = TQT_DBusError::stdFailed(TQString ("Could not access device %1").arg(device)); + return false; + } + return true; +} |