diff options
Diffstat (limited to 'src/tdeioslave/bluetooth')
-rw-r--r-- | src/tdeioslave/bluetooth/CMakeLists.txt | 43 | ||||
-rw-r--r-- | src/tdeioslave/bluetooth/bluetooth.protocol | 12 | ||||
-rw-r--r-- | src/tdeioslave/bluetooth/bluetooth_sidebarentry.desktop | 9 | ||||
-rw-r--r-- | src/tdeioslave/bluetooth/tdeiobluetooth.cpp | 464 | ||||
-rw-r--r-- | src/tdeioslave/bluetooth/tdeiobluetooth.h | 56 |
5 files changed, 0 insertions, 584 deletions
diff --git a/src/tdeioslave/bluetooth/CMakeLists.txt b/src/tdeioslave/bluetooth/CMakeLists.txt deleted file mode 100644 index aabceb6..0000000 --- a/src/tdeioslave/bluetooth/CMakeLists.txt +++ /dev/null @@ -1,43 +0,0 @@ -################################################# -# -# (C) 2018 Emanoil Kotsev -# deloptes (AT) gmail.com -# -# Improvements and feedback are welcome -# -# This file is released under GPL >= 2 -# -################################################# - -include_directories( - ${CMAKE_CURRENT_BINARY_DIR} - ${CMAKE_BINARY_DIR} - ${CMAKE_SOURCE_DIR} - ${CMAKE_SOURCE_DIR}/src/libtdebluez - ${CMAKE_BINARY_DIR}/src/libtdebluez - ${CMAKE_SOURCE_DIR}/src/tdeioslave/bluetooth - ${TDE_INCLUDE_DIR} - ${TQT_INCLUDE_DIRS} - ${DBUS_INCLUDE_DIRS} - ${DBUS_TQT_INCLUDE_DIRS} -) - - -##### tdeio_bluetooth (static) ############################# -set( target tdeio_bluetooth ) - -tde_add_kpart( ${target} AUTOMOC - SOURCES tdeiobluetooth.cpp - LINK ${DBUS_TQT_LIBRARIES} tdeio-shared tdebluez-shared bluezinterfaces-static - DESTINATION ${PLUGIN_INSTALL_DIR} -) - -# konqueror sidebar entry -tde_create_translated_desktop( - SOURCE bluetooth.protocol - DESTINATION ${SERVICES_INSTALL_DIR} -) -tde_create_translated_desktop( - SOURCE bluetooth_sidebarentry.desktop - DESTINATION ${DATA_INSTALL_DIR}/konqsidebartng/virtual_folders/services -) diff --git a/src/tdeioslave/bluetooth/bluetooth.protocol b/src/tdeioslave/bluetooth/bluetooth.protocol deleted file mode 100644 index 9253aad..0000000 --- a/src/tdeioslave/bluetooth/bluetooth.protocol +++ /dev/null @@ -1,12 +0,0 @@ -[Protocol] -Description=Bluetooth inquiry protocol - -Icon=tdebluez -protocol=bluetooth -exec=tdeio_bluetooth -maxInstances=3 -input=none -output=filesystem -reading=true -listing=Name,Type -DocPath=tdebluez/components.tdeio_sdp.html diff --git a/src/tdeioslave/bluetooth/bluetooth_sidebarentry.desktop b/src/tdeioslave/bluetooth/bluetooth_sidebarentry.desktop deleted file mode 100644 index 8d8461f..0000000 --- a/src/tdeioslave/bluetooth/bluetooth_sidebarentry.desktop +++ /dev/null @@ -1,9 +0,0 @@ -[Desktop Entry] -Name=Bluetooth Browser - -Type=Link -URL=bluetooth:/ -Icon=tdebluez -Open=false -X-TDE-TreeModule=Directory -X-TDE-KonqSidebarModule=konqsidebar_tree diff --git a/src/tdeioslave/bluetooth/tdeiobluetooth.cpp b/src/tdeioslave/bluetooth/tdeiobluetooth.cpp deleted file mode 100644 index d2268a7..0000000 --- a/src/tdeioslave/bluetooth/tdeiobluetooth.cpp +++ /dev/null @@ -1,464 +0,0 @@ -//-*-c++-*- -/*************************************************************************** - * Copyright (C) 2003 by Fred Schaettgen * - * [email protected] * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - ***************************************************************************/ - -#include "tdeiobluetooth.h" - -#include <sys/stat.h> -#include <dcopclient.h> -#include <tdeapplication.h> -#include <tdecmdlineargs.h> -#include <tqregexp.h> - -#include <devicemimeconverter.h> -#include <deviceImpl.h> -#include <btuuids.h> - -using namespace TDEBluetooth; - -static const TDECmdLineOptions options[] = -{ - { "+protocol", I18N_NOOP( "Protocol name" ), 0 }, - { "+pool", I18N_NOOP( "Socket name" ), 0 }, - { "+app", I18N_NOOP( "Socket name" ), 0 }, - TDECmdLineLastOption -}; - -extern "C" -{ - int kdemain(int argc, char **argv) { - TDEInstance instance( "tdeio_bluetooth" ); - kdDebug() << "*** Starting tdeio_bluetooth " << endl; - if (argc != 4) { - kdDebug() << "Usage: tdeio_bluetooth protocol domain-socket1 domain-socket2" << endl; - exit(-1); - } - - putenv(strdup("SESSION_MANAGER=")); - TDECmdLineArgs::init(argc, argv, "tdeio_bluetooth", 0, 0, 0, 0); - TDECmdLineArgs::addCmdLineOptions( options ); - - TDEApplication app( false, false, false ); - app.dcopClient()->attach(); - - TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs(); - TDEioBluetooth slave( args->arg(0), args->arg(1), args->arg(2) ); - kdDebug() << "*** protocol " << args->arg(0) << endl; - kdDebug() << "*** pool socket " << args->arg(1) << endl; - kdDebug() << "*** app socket " << args->arg(2) << endl; - slave.dispatchLoop(); - kdDebug() << "*** tdeio_bluetooth Done" << endl; - return 0; - } -} - - -TDEioBluetooth::TDEioBluetooth(const TQCString &protocol, const TQCString &pool_socket, const TQCString &app_socket) : - ForwardingSlaveBase(protocol, pool_socket, app_socket) -{ - kdDebug() << k_funcinfo << endl; - - TDELocale::setMainCatalogue("tdebluez"); - TQT_DBusError error; - adapter = 0; - - manager = new TDEBluetooth::ObjectManagerImpl("org.bluez", "/"/*, this, "ObexObjectManager"*/); - - if (!manager) - { - ForwardingSlaveBase::error(TDEIO::ERR_SERVICE_NOT_AVAILABLE, i18n("Bluetooth Manager not found")); - closeConnection(); - } - else - { - if (!manager->getAdapters().isEmpty()) - { - TDEBluetooth::ObjectManagerImpl::AdapterList al = manager->getAdapters(); - TDEBluetooth::ObjectManagerImpl::AdapterList::Iterator ait = al.begin(); - for (ait; ait != al.end(); ++ait) - { - TDEBluetooth::AdapterImpl *ad = new TDEBluetooth::AdapterImpl("org.bluez", (*ait)); - ad->setConnection((*(manager->getConnection()))); - // FIXME implement multiple adapters - if (ad->getPowered(error)) - { - adapter = ad; - break; - } - } - connect(manager, SIGNAL(deviceAdded(const TQString &)), - this, SLOT(slotAddDevice(const TQString &))); - connect(manager, SIGNAL(deviceRemoved(const TQString &)), - this, SLOT(slotRemoveDevice(const TQString &))); - connect(manager, SIGNAL(adapterPowerOnChanged(const TQString&, bool )), - this, SLOT(slotAdapterPowerOnChanged(const TQString &, bool ))); - } - else - { - ForwardingSlaveBase::error(TDEIO::ERR_SERVICE_NOT_AVAILABLE, i18n("No adapter found")); - closeConnection(); - } - } -} - -TDEioBluetooth::~TDEioBluetooth() -{ - kdDebug() << k_funcinfo << endl; - if (manager) delete manager; - if (adapter) delete adapter; -} - -void TDEioBluetooth::closeConnection() -{ - kdDebug() << k_funcinfo << endl; - exit(); -} - -void TDEioBluetooth::stat(const KURL &url) -{ - kdDebug() << __func__ << "(" << url.prettyURL() << ")" << endl; - - TDEIO::UDSEntry entry; - - if (!adapter) - { -// ForwardingSlaveBase::warning(i18n("Bluetooth Adapter not found")); -// ForwardingSlaveBase::error(TDEIO::ERR_SERVICE_NOT_AVAILABLE, i18n("Bluetooth Adapter not found")); - TQString name = "No device found"; - TQ_UINT32 devClass = 0; - - addAtom(entry, TDEIO::UDS_NAME, name); - addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR); - addAtom(entry, TDEIO::UDS_ACCESS, 0555); - addAtom(entry, TDEIO::UDS_MIME_TYPE, DeviceMimeConverter::classToMimeType(devClass)); - addAtom(entry, TDEIO::UDS_ICON_NAME, DeviceMimeConverter::classToIconName(devClass)); - - return; - } - - TQT_DBusError dbuserror; - TQString path = url.path(); - if (path.isEmpty() || path == "/") - { - // The root is "virtual" - it's not a single physical directory - createTopLevelEntry(entry); - } - else if (path.find(TQRegExp("/\\[([0-9A-F]{2}:){5}[0-9A-F]{2}\\]"), 0) != -1) - { - createDirEntry(entry, path, path); - } - else - { - ForwardingSlaveBase::error(TDEIO::ERR_MALFORMED_URL, i18n("Could not stat %1.").arg(url.prettyURL())); - } - statEntry(entry); - finished(); -} - -void TDEioBluetooth::listDir(const KURL &url) -{ - kdDebug() << k_funcinfo << endl; - - if (!adapter) - { - ForwardingSlaveBase::error(TDEIO::ERR_SERVICE_NOT_AVAILABLE, i18n("Bluetooth Adapter not found")); - return; - } - - TDEIO::UDSEntry entry; - TQValueList<TDEIO::UDSEntry> list; - TQT_DBusError error; - TDEIO::UDSEntryList entries; - - TQString path = url.path(); - TQString name = adapter->getName(error); - - kdDebug() << __func__ << "(" << path << ")" << endl; - - TQRegExp rx("/" + name + "/\\[([0-9A-F]{2}:){5}[0-9A-F]{2}\\]"); - kdDebug() << "Regex: " << rx.search(path) << endl; - - if (rx.search(path) == 0) - { - listServices(list, url); - } - else if (path == "/" + name) - { - listDevices(list, url); - } - else if (path == "/") - { - createTopLevelEntry(entry); - listEntry(entry, false); - } - else - { - ForwardingSlaveBase::listDir(url); - } - - if (list.count() > 0) - { - kdDebug() << __func__ << "(" << path << ")" << endl; - totalSize(list.count() + 1); - - TDEIO::UDSEntryListIterator it = list.begin(); - TDEIO::UDSEntryListIterator end = list.end(); - for (; it != end; ++it) - { - entries.append(*it); - } - listEntries(entries); - } - listEntry(entry, true); - - finished(); - return; -} - -bool TDEioBluetooth::rewriteURL(const KURL &url, KURL &newUrl) -{ - kdDebug() << k_funcinfo << endl; - - TQString path = url.path(); - TQString protocol = url.protocol(); - - if (protocol == "obexopp" || protocol == "obexftp") - { - newUrl = url; - return true; - } - else - { - ForwardingSlaveBase::error(TDEIO::ERR_MALFORMED_URL, url.prettyURL()); - return false; - } -} - -void TDEioBluetooth::createTopLevelEntry(TDEIO::UDSEntry &entry) -{ - kdDebug() << k_funcinfo << endl; - - TQT_DBusError error; - TQString name = adapter->getName(error); - TQ_UINT32 devClass = adapter->getClass(error); - - addAtom(entry, TDEIO::UDS_NAME, name); - addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR); - addAtom(entry, TDEIO::UDS_ACCESS, 0555); - addAtom(entry, TDEIO::UDS_MIME_TYPE, DeviceMimeConverter::classToMimeType(devClass)); - addAtom(entry, TDEIO::UDS_ICON_NAME, DeviceMimeConverter::classToIconName(devClass)); -} - -bool TDEioBluetooth::listDevice(TDEIO::UDSEntry &entry, const TQString &path, const KURL &url) -{ - kdDebug() << __func__ << "(" << url << ")" << endl; - TQT_DBusError error; - - TDEBluetooth::DeviceImpl *dev = new TDEBluetooth::DeviceImpl("org.bluez", path); - dev->setConnection((*(manager->getConnection()))); - - const TQString addr = dev->getAddress(error); - TQString name = dev->getName(error); - TQString alias = dev->getAlias(error); - const int devClass = dev->getClass(error); - TQString aname = adapter->getName(error); - - delete dev; - - entry.clear(); - - if (!alias.isEmpty()) - name = alias; - else - name = alias = addr; - - createDirEntry(entry, name, TQString("bluetooth:/%1/[%2]").arg(aname).arg(addr), - DeviceMimeConverter::classToMimeType(devClass)); - - return true; -} - -bool TDEioBluetooth::listDevices(TQValueList<TDEIO::UDSEntry> &list, const KURL &url) -{ - kdDebug() << __func__ << "(" << url << ")" << endl; - - TDEIO::UDSEntry entry; - TDEBluetooth::ObjectManagerImpl::DeviceList dl = manager->getDevices(); - TDEBluetooth::ObjectManagerImpl::DeviceList::Iterator dit = dl.begin(); - for (dit; dit != dl.end(); ++dit) - { - entry.clear(); - listDevice(entry, (*dit), url); - list.append(entry); - } - - return true; -} - -bool TDEioBluetooth::listServices(TQValueList<TDEIO::UDSEntry> &list, const KURL &url) -{ - kdDebug() << __func__ << "url: " << url << endl; - - TDEIO::UDSEntry entry; - TQString path = url.path(); - - kdDebug() << __func__ << "path: " << path << endl; - - int pos = path.find(TQRegExp("/\\[([0-9A-F]{2}:){5}[0-9A-F]{2}\\]"), 0); - if (pos != -1) - { - - TQString address = path.remove(0, pos + 2).remove(17, path.length()); - kdDebug() << __func__ << "address: " << address << endl; - - TDEBluetooth::ObjectManagerImpl::DeviceList dl = manager->getDevices(); - TDEBluetooth::ObjectManagerImpl::DeviceList::Iterator dit = dl.begin(); - for (dit; dit != dl.end(); ++dit) - { - TDEBluetooth::DeviceImpl *d = new TDEBluetooth::DeviceImpl("org.bluez", (*dit)); - d->setConnection((*(manager->getConnection()))); - - TQT_DBusError dbuserror; - TQString addr = d->getAddress(dbuserror); - if (addr == address) - { - TQStringList uuids = d->getUUIDs(dbuserror); - for (TQStringList::Iterator it = uuids.begin(); - it != uuids.end(); ++it) - { - entry.clear(); - // accepted services OBEX OPP, PCE, FTP - //FIXME temporary disabled -// if ((*it) == "00001105-0000-1000-8000-00805f9b34fb") -// { -// createDirEntry(entry, resolveUUID((*it)), TQString("obexopp:/[%1]/").arg(address), "bluetooth/obex-objectpush-profile"); -// addAtom(entry, TDEIO::UDS_NAME, "obexopp"); -// list.append(entry); -// } -// else if ((*it) == "00001106-0000-1000-8000-00805f9b34fb") -// { -// createDirEntry(entry, resolveUUID((*it)), TQString("obexftp:/[%1]/").arg(address), "bluetooth/obex-ftp-profile"); -// addAtom(entry, TDEIO::UDS_NAME, "obexftp"); -// list.append(entry); -// } - } - break; - } - delete d; - } - } - else - { - ForwardingSlaveBase::error(TDEIO::ERR_MALFORMED_URL, url.url()); - } - - return true; -} - -bool TDEioBluetooth::createDirEntry(TDEIO::UDSEntry &entry, const TQString &name, const TQString &dir, const TQString &mimeType) -{ - kdDebug() << k_funcinfo << endl; - - addAtom(entry, TDEIO::UDS_NAME, name); - if (dir != TQString::null) - { - addAtom(entry, TDEIO::UDS_URL, dir); - } - addAtom(entry, TDEIO::UDS_MIME_TYPE, mimeType); - - if (mimeType == "inode/directory") - addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR); - else - addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IRUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH); - - return true; -} - -void TDEioBluetooth::slotAddDevice(const TQString &path) -{ - kdDebug() << k_funcinfo << endl; - listDir("bluetooth:/"); -} - -void TDEioBluetooth::slotRemoveDevice(const TQString &path) -{ - kdDebug() << __func__ << "(" << path << ")" << endl; - listDir("bluetooth:/"); - -// TQT_DBusError error; -// TDEBluetooth::DeviceImpl *d= new TDEBluetooth::DeviceImpl("org.bluez",path); -// d->setConnection((*(manager->getConnection()))); -// const TQString address = d->getAddress(error); -// delete d; -// -// listDevice(address); -// listEntry(TDEIO::UDSEntry(), true); - -} - -void TDEioBluetooth::slotAddService(const KURL &url, const TQString uuid) -{ - kdDebug() << __func__ << "(URL=" << url << ", UUID=" << uuid << ")" << endl; - -// TQT_DBusError error; -// TDEBluetooth::DeviceImpl *d= new TDEBluetooth::DeviceImpl("org.bluez",path); -// d->setConnection((*(manager->getConnection()))); -// const TQString address = d->getAddress(error); -// TQ_UINT32 devclass = d->getClass(error); -// const TQString devicon = DeviceMimeConverter::classToIconName(devclass); -// delete d; -// -// TQMap<TQString,int>::iterator f=qDevicesList.find(address); -// if(f!=qDevicesList.end() && f.data() == devclass) return; - -// listEntry(UDSEntry(), true); - -} - -void TDEioBluetooth::slotAdapterPowerOnChanged(TQString const& path, bool state) -{ - kdDebug() << __func__ << "(" << path << ")" << endl; -// -// TQT_DBusError error; -// TDEBluetooth::DeviceImpl *d= new TDEBluetooth::DeviceImpl("org.bluez",path); -// d->setConnection((*(manager->getConnection()))); -// const TQString address = d->getAddress(error); -// TQ_UINT32 devclass = d->getClass(error); -// const TQString devicon = DeviceMimeConverter::classToIconName(devclass); -// delete d; -// -// TQMap<TQString,int>::iterator f=qDevicesList.find(address); -// if(f!=qDevicesList.end() && f.data() == devclass) return; -// qDevicesList.insert(address, devclass); -// -// listDevice(address); -// listEntry(UDSEntry(), true); - -} - -void TDEioBluetooth::addAtom(TDEIO::UDSEntry &entry, TDEIO::UDSAtomTypes type, TQString s) -{ - kdDebug() << k_funcinfo << endl; - TDEIO::UDSAtom atom; - atom.m_uds = type; - atom.m_str = s; - entry.append(atom); -} - -void TDEioBluetooth::addAtom(TDEIO::UDSEntry &entry, TDEIO::UDSAtomTypes type, long l) -{ - kdDebug() << k_funcinfo << endl; - TDEIO::UDSAtom atom; - atom.m_uds = type; - atom.m_long = l; - entry.append(atom); -} - -#include "tdeiobluetooth.moc" diff --git a/src/tdeioslave/bluetooth/tdeiobluetooth.h b/src/tdeioslave/bluetooth/tdeiobluetooth.h deleted file mode 100644 index 7b881f2..0000000 --- a/src/tdeioslave/bluetooth/tdeiobluetooth.h +++ /dev/null @@ -1,56 +0,0 @@ -//-*-c++-*- -/*************************************************************************** - * Copyright (C) 2003 by Fred Schaettgen * - * [email protected] * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - ***************************************************************************/ - -#ifndef _TDEIOBT_H_ -#define _TDEIOBT_H_ - -#include <tdeio/forwardingslavebase.h> -#include <vector> - -#include <adapterImpl.h> -#include <objectmanagerImpl.h> - -class TDEioBluetooth : public TDEIO::ForwardingSlaveBase -{ - Q_OBJECT - -public: - TDEioBluetooth(const TQCString &protocol, const TQCString &pool_socket, const TQCString &app_socket); - virtual ~TDEioBluetooth(); - virtual void closeConnection(); - virtual void stat(const KURL &url); - virtual void listDir(const KURL &url); - -protected: - virtual bool rewriteURL(const KURL &url, KURL &newUrl); - -private: - void createTopLevelEntry(TDEIO::UDSEntry& entry); - bool listDevice(TDEIO::UDSEntry &entry, const TQString &path, const KURL &url); - bool listDevices(TQValueList<TDEIO::UDSEntry> &list, const KURL &url); - bool listServices(TQValueList<TDEIO::UDSEntry> &list, const KURL &url); - bool createDirEntry(TDEIO::UDSEntry &entry, const TQString &title, - const TQString &dir = TQString::null, const TQString &mimeType = "inode/directory"); - void addAtom(TDEIO::UDSEntry &entry, TDEIO::UDSAtomTypes type, TQString s); - void addAtom(TDEIO::UDSEntry &entry, TDEIO::UDSAtomTypes type, long l); - - TDEBluetooth::AdapterImpl *adapter; - TDEBluetooth::ObjectManagerImpl *manager; - -private slots: - void slotAddDevice(const TQString &address); - void slotAddService(const KURL &url, const TQString uuid); - void slotRemoveDevice(const TQString &address); - void slotAdapterPowerOnChanged(const TQString & path, bool state) ; - -}; - -#endif //TDEIOBT |