Git commit c2ad0d16bab805ff2e1d815784e3a801637a061c by Simon Edwards. Committed on 02/03/2014 at 14:19. Pushed by sedwards into branch 'master'. Added solid support. M +13 -2 CMakeLists.txt C +19 -23 sip/solid/acadapter.sip [from: sip/typedefs.sip - 063% simil= arity] A +62 -0 sip/solid/audiointerface.sip A +83 -0 sip/solid/battery.sip C +19 -23 sip/solid/block.sip [from: sip/typedefs.sip - 063% similarit= y] C +31 -23 sip/solid/button.sip [from: sip/typedefs.sip - 052% similari= ty] C +19 -23 sip/solid/camera.sip [from: sip/typedefs.sip - 060% similari= ty] A +50 -0 sip/solid/device.sip A +65 -0 sip/solid/deviceinterface.sip C +17 -23 sip/solid/devicenotifier.sip [from: sip/typedefs.sip - 069% = similarity] C +35 -23 sip/solid/dvbinterface.sip [from: sip/typedefs.sip - 050% si= milarity] A +47 -0 sip/solid/genericinterface.sip A +57 -0 sip/solid/internetgateway.sip C +18 -23 sip/solid/keyboard.sip [from: sip/typedefs.sip - 066% simila= rity] A +58 -0 sip/solid/networking.sip C +20 -23 sip/solid/networkinterface.sip [from: sip/typedefs.sip - 059= % similarity] C +25 -23 sip/solid/networkshare.sip [from: sip/typedefs.sip - 060% si= milarity] A +73 -0 sip/solid/opticaldisc.sip A +64 -0 sip/solid/opticaldrive.sip C +27 -23 sip/solid/pointingdevice.sip [from: sip/typedefs.sip - 058% = similarity] C +19 -23 sip/solid/portablemediaplayer.sip [from: sip/typedefs.sip - = 057% similarity] A +52 -0 sip/solid/powermanagement.sip A +66 -0 sip/solid/predicate.sip A +52 -0 sip/solid/processor.sip C +25 -23 sip/solid/serialinterface.sip [from: sip/typedefs.sip - 057%= similarity] C +25 -23 sip/solid/smartcardreader.sip [from: sip/typedefs.sip - 060%= similarity] A +58 -0 sip/solid/solidmod.sip C +19 -23 sip/solid/solidnamespace.sip [from: sip/typedefs.sip - 074% = similarity] A +46 -0 sip/solid/storageaccess.sip A +64 -0 sip/solid/storagedrive.sip A +53 -0 sip/solid/storagevolume.sip C +19 -23 sip/solid/video.sip [from: sip/typedefs.sip - 060% similarit= y] M +115 -0 sip/typedefs.sip http://commits.kde.org/pykde5/c2ad0d16bab805ff2e1d815784e3a801637a061c diff --git a/CMakeLists.txt b/CMakeLists.txt index 07b24b0..4be8899 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,7 +20,7 @@ include(PythonMacros) include(FeatureSummary) include(ECMSetupVersion) = -find_package(KF5 CONFIG REQUIRED Auth ItemModels ItemViews Archive Plottin= g) +find_package(KF5 CONFIG REQUIRED Auth ItemModels ItemViews Archive Plottin= g Solid) = #option(PYKDEUIC4_ALTINSTALL "Enable parallel-installation of the PyKDE4 t= ools" FALSE) = @@ -85,11 +85,15 @@ get_property(qt5core_include TARGET Qt5::Core PROPERTY = INTERFACE_INCLUDE_DIRECTO get_property(qt5gui_include TARGET Qt5::Gui PROPERTY INTERFACE_INCLUDE_DIR= ECTORIES) get_property(qt5widgets_include TARGET Qt5::Widgets PROPERTY INTERFACE_INC= LUDE_DIRECTORIES) = +get_property(solid_include TARGET KF5::Solid PROPERTY INTERFACE_INCLUDE_DI= RECTORIES) +# Soild is being difficult. Lets set it here explicitly. + include_directories( ${SIP_INCLUDE_DIR} ${qt5core_include} ${qt5gui_include} ${qt5widgets_include} + ${solid_include}/solid ) = add_definitions(-D_REENTRANT -DSIP_PROTECTED_IS_PUBLIC -Dprotected=3Dpubli= c) @@ -123,7 +127,14 @@ file(GLOB kplottin_files_sip sip/kplotting/*.sip) set(SIP_EXTRA_FILES_DEPEND ${kplotting_files_sip}) add_sip_python_module(PyKDE5.kplotting sip/kplotting/kplottingmod.sip KF5:= :Plotting) = -set(PYKDE_MODULES "kitemmodels kitemviews karchive kplotting") +# solid +file(GLOB solid_files_sip sip/solid/*.sip) +set(SIP_EXTRA_FILES_DEPEND ${solid_files_sip}) + + +add_sip_python_module(PyKDE5.solid sip/solid/solidmod.sip KF5::Solid) + +set(PYKDE_MODULES "kitemmodels kitemviews karchive kplotting solid") = ##########################################################################= ##### = diff --git a/sip/typedefs.sip b/sip/solid/acadapter.sip similarity index 63% copy from sip/typedefs.sip copy to sip/solid/acadapter.sip index a1d2375..90e39d1 100644 --- a/sip/typedefs.sip +++ b/sip/solid/acadapter.sip @@ -1,5 +1,7 @@ // Copyright 2014 Simon Edwards = +// Generated by twine2 + // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU Library General Public License as // published by the Free Software Foundation; either version 2, or @@ -15,26 +17,20 @@ // Free Software Foundation, Inc., // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. = -%Module PyKDE5.typedefs - -typedef uint mode_t; - -typedef long time_t; - -typedef ulong size_t; - -typedef int ssize_t; - -typedef int pid_t; - -typedef ulong Window; - -typedef bool Bool; - -typedef uint WFlags; - -typedef long off_t; - -typedef uint uid_t; - -typedef uint gid_t; +namespace Solid +{ +class AcAdapter : Solid::DeviceInterface +{ +%TypeHeaderCode +#include +%End + + explicit AcAdapter (QObject* backendObject); +public: + virtual ~AcAdapter (); + static Solid::DeviceInterface::Type deviceInterfaceType (); + bool isPlugged () const; +signals: + void plugStateChanged (bool newState, const QString= & udi); +}; +}; diff --git a/sip/solid/audiointerface.sip b/sip/solid/audiointerface.sip new file mode 100644 index 0000000..bb75c0a --- /dev/null +++ b/sip/solid/audiointerface.sip @@ -0,0 +1,62 @@ +// Copyright 2014 Simon Edwards + +// Generated by twine2 + +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU Library General Public License as +// published by the Free Software Foundation; either version 2, or +// (at your option) any later version. + +// 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 Library General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +namespace Solid +{ +class AudioInterface : Solid::DeviceInterface +{ +%TypeHeaderCode +#include +%End + +public: + enum AudioDriver + { + Alsa, + OpenSoundSystem, + UnknownAudioDriver + }; + enum AudioInterfaceType + { + UnknownAudioInterfaceType, + AudioControl, + AudioInput, + AudioOutput + }; + typedef QFlags AudioInterfa= ceTypes; + enum SoundcardType + { + InternalSoundcard, + UsbSoundcard, + FirewireSoundcard, + Headset, + Modem + }; +private: + explicit AudioInterface (QObject* backendObject); +public: + virtual ~AudioInterface (); + static Solid::DeviceInterface::Type deviceInterfaceType (); + Solid::AudioInterface::AudioDriver driver () const; + QVariant driverHandle () const; + QString name () const; + Solid::AudioInterface::AudioInterfaceTypes deviceType () const; + Solid::AudioInterface::SoundcardType soundcardType () const; +}; +}; diff --git a/sip/solid/battery.sip b/sip/solid/battery.sip new file mode 100644 index 0000000..766bd14 --- /dev/null +++ b/sip/solid/battery.sip @@ -0,0 +1,83 @@ +// Copyright 2014 Simon Edwards + +// Generated by twine2 + +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU Library General Public License as +// published by the Free Software Foundation; either version 2, or +// (at your option) any later version. + +// 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 Library General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +namespace Solid +{ +class Battery : Solid::DeviceInterface +{ +%TypeHeaderCode +#include +%End + +public: + enum BatteryType + { + UnknownBattery, + PdaBattery, + UpsBattery, + PrimaryBattery, + MouseBattery, + KeyboardBattery, + KeyboardMouseBattery, + CameraBattery, + PhoneBattery, + MonitorBattery + }; + enum ChargeState + { + NoCharge, + Charging, + Discharging + }; + enum Technology + { + UnknownTechnology, + LithiumIon, + LithiumPolymer, + LithiumIronPhosphate, + LeadAcid, + NickelCadmium, + NickelMetalHydride + }; +private: + explicit Battery (QObject* backendObject); +public: + virtual ~Battery (); + static Solid::DeviceInterface::Type deviceInterfaceType (); + bool isPlugged () const; + bool isPowerSupply () const; + Solid::Battery::BatteryType type () const; + int chargePercent () const; + int capacity () const; + bool isRechargeable () const; + Solid::Battery::ChargeState chargeState () const; + Solid::Battery::Technology technology () const; + double energy () const; + double energyRate () const; + double voltage () const; +signals: + void chargePercentChanged (int value, const QString= & udi); + void capacityChanged (int value, const QString& udi= ); + void chargeStateChanged (int newState, const QStrin= g& udi); + void plugStateChanged (bool newState, const QString= & udi); + void energyChanged (double energy, const QString& u= di); + void energyRateChanged (double energyRate, const QS= tring& udi); + void powerSupplyStateChanged (bool newState, const = QString& udi); +}; +}; diff --git a/sip/typedefs.sip b/sip/solid/block.sip similarity index 63% copy from sip/typedefs.sip copy to sip/solid/block.sip index a1d2375..047f374 100644 --- a/sip/typedefs.sip +++ b/sip/solid/block.sip @@ -1,5 +1,7 @@ // Copyright 2014 Simon Edwards = +// Generated by twine2 + // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU Library General Public License as // published by the Free Software Foundation; either version 2, or @@ -15,26 +17,20 @@ // Free Software Foundation, Inc., // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. = -%Module PyKDE5.typedefs - -typedef uint mode_t; - -typedef long time_t; - -typedef ulong size_t; - -typedef int ssize_t; - -typedef int pid_t; - -typedef ulong Window; - -typedef bool Bool; - -typedef uint WFlags; - -typedef long off_t; - -typedef uint uid_t; - -typedef uint gid_t; +namespace Solid +{ +class Block : Solid::DeviceInterface +{ +%TypeHeaderCode +#include +%End + + explicit Block (QObject* backendObject); +public: + virtual ~Block (); + static Solid::DeviceInterface::Type deviceInterfaceType (); + int deviceMajor () const; + int deviceMinor () const; + QString device () const; +}; +}; diff --git a/sip/typedefs.sip b/sip/solid/button.sip similarity index 52% copy from sip/typedefs.sip copy to sip/solid/button.sip index a1d2375..ecf9133 100644 --- a/sip/typedefs.sip +++ b/sip/solid/button.sip @@ -1,5 +1,7 @@ // Copyright 2014 Simon Edwards = +// Generated by twine2 + // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU Library General Public License as // published by the Free Software Foundation; either version 2, or @@ -15,26 +17,32 @@ // Free Software Foundation, Inc., // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. = -%Module PyKDE5.typedefs - -typedef uint mode_t; - -typedef long time_t; - -typedef ulong size_t; - -typedef int ssize_t; - -typedef int pid_t; - -typedef ulong Window; - -typedef bool Bool; - -typedef uint WFlags; - -typedef long off_t; - -typedef uint uid_t; - -typedef uint gid_t; +namespace Solid +{ +class Button : Solid::DeviceInterface +{ +%TypeHeaderCode +#include +%End + +public: + enum ButtonType + { + LidButton, + PowerButton, + SleepButton, + UnknownButtonType, + TabletButton + }; +private: + explicit Button (QObject* backendObject); +public: + virtual ~Button (); + static Solid::DeviceInterface::Type deviceInterfaceType (); + Solid::Button::ButtonType type () const; + bool hasState () const; + bool stateValue () const; +signals: + void pressed (Solid::Button::ButtonType type, const= QString& udi); +}; +}; diff --git a/sip/typedefs.sip b/sip/solid/camera.sip similarity index 60% copy from sip/typedefs.sip copy to sip/solid/camera.sip index a1d2375..9c48bb4 100644 --- a/sip/typedefs.sip +++ b/sip/solid/camera.sip @@ -1,5 +1,7 @@ // Copyright 2014 Simon Edwards = +// Generated by twine2 + // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU Library General Public License as // published by the Free Software Foundation; either version 2, or @@ -15,26 +17,20 @@ // Free Software Foundation, Inc., // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. = -%Module PyKDE5.typedefs - -typedef uint mode_t; - -typedef long time_t; - -typedef ulong size_t; - -typedef int ssize_t; - -typedef int pid_t; - -typedef ulong Window; - -typedef bool Bool; - -typedef uint WFlags; - -typedef long off_t; - -typedef uint uid_t; - -typedef uint gid_t; +namespace Solid +{ +class Camera : Solid::DeviceInterface +{ +%TypeHeaderCode +#include +%End + + explicit Camera (QObject* backendObject); +public: + virtual ~Camera (); + static Solid::DeviceInterface::Type deviceInterfaceType (); + QStringList supportedProtocols () const; + QStringList supportedDrivers (QString protocol =3D QString= ()) const; + QVariant driverHandle (const QString& driver) const; +}; +}; diff --git a/sip/solid/device.sip b/sip/solid/device.sip new file mode 100644 index 0000000..e21fbe0 --- /dev/null +++ b/sip/solid/device.sip @@ -0,0 +1,50 @@ +// Copyright 2014 Simon Edwards + +// Generated by twine2 + +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU Library General Public License as +// published by the Free Software Foundation; either version 2, or +// (at your option) any later version. + +// 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 Library General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +namespace Solid +{ +class Device +{ +%TypeHeaderCode +#include +%End + +public: + static QList allDevices (); + static QList listFromType (const Solid::DeviceInterfac= e::Type& type, const QString& parentUdi =3D QString()); + static QList listFromQuery (const Solid::Predicate& pr= edicate, const QString& parentUdi =3D QString()); + static QList listFromQuery (const QString& predicate, = const QString& parentUdi =3D QString()); + explicit Device (const QString& udi =3D QString()); + Device (const Solid::Device& device); + ~Device (); +//ig Solid::Device& operator=3D (const Solid::Device& device); + bool isValid () const; + QString udi () const; + QString parentUdi () const; + Solid::Device parent () const; + QString vendor () const; + QString product () const; + QString icon () const; + QStringList emblems () const; + QString description () const; + bool isDeviceInterface (const Solid::DeviceInterfac= e::Type& type) const; +//ig Solid::DeviceInterface* asDeviceInterface (const Solid::DeviceInt= erface::Type& type); + const Solid::DeviceInterface* asDeviceInterface (const Solid::DeviceI= nterface::Type& type) const; +}; +}; diff --git a/sip/solid/deviceinterface.sip b/sip/solid/deviceinterface.sip new file mode 100644 index 0000000..ebf8117 --- /dev/null +++ b/sip/solid/deviceinterface.sip @@ -0,0 +1,65 @@ +// Copyright 2014 Simon Edwards + +// Generated by twine2 + +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU Library General Public License as +// published by the Free Software Foundation; either version 2, or +// (at your option) any later version. + +// 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 Library General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +namespace Solid +{ +class DeviceInterface : QObject /NoDefaultCtors/ +{ +%TypeHeaderCode +#include +%End + +public: + enum Type + { + Unknown, + GenericInterface, + Processor, + Block, + StorageAccess, + StorageDrive, + OpticalDrive, + StorageVolume, + OpticalDisc, + Camera, + PortableMediaPlayer, + NetworkInterface, + AcAdapter, + Battery, + Button, + AudioInterface, + DvbInterface, + Video, + SerialInterface, + SmartCardReader, + InternetGateway, + NetworkShare, + Keyboard, + PointingDevice, + Last + }; + virtual ~DeviceInterface (); + bool isValid () const; + static QString typeToString (Solid::DeviceInterface::Type typ= e); + static Solid::DeviceInterface::Type stringToType (const QString& type= ); + static QString typeDescription (Solid::DeviceInterface::Type = type); +protected: +//ig DeviceInterface (DeviceInterfacePrivate& d= d, QObject* backendObject); +}; +}; diff --git a/sip/typedefs.sip b/sip/solid/devicenotifier.sip similarity index 69% copy from sip/typedefs.sip copy to sip/solid/devicenotifier.sip index a1d2375..3d780d5 100644 --- a/sip/typedefs.sip +++ b/sip/solid/devicenotifier.sip @@ -1,5 +1,7 @@ // Copyright 2014 Simon Edwards = +// Generated by twine2 + // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU Library General Public License as // published by the Free Software Foundation; either version 2, or @@ -15,26 +17,18 @@ // Free Software Foundation, Inc., // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. = -%Module PyKDE5.typedefs - -typedef uint mode_t; - -typedef long time_t; - -typedef ulong size_t; - -typedef int ssize_t; - -typedef int pid_t; - -typedef ulong Window; - -typedef bool Bool; - -typedef uint WFlags; - -typedef long off_t; - -typedef uint uid_t; - -typedef uint gid_t; +namespace Solid +{ +class DeviceNotifier : QObject +{ +%TypeHeaderCode +#include +%End + +public: + static Solid::DeviceNotifier* instance (); +signals: + void deviceAdded (const QString& udi); + void deviceRemoved (const QString& udi); +}; +}; diff --git a/sip/typedefs.sip b/sip/solid/dvbinterface.sip similarity index 50% copy from sip/typedefs.sip copy to sip/solid/dvbinterface.sip index a1d2375..63eb6c8 100644 --- a/sip/typedefs.sip +++ b/sip/solid/dvbinterface.sip @@ -1,5 +1,7 @@ // Copyright 2014 Simon Edwards = +// Generated by twine2 + // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU Library General Public License as // published by the Free Software Foundation; either version 2, or @@ -15,26 +17,36 @@ // Free Software Foundation, Inc., // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. = -%Module PyKDE5.typedefs - -typedef uint mode_t; - -typedef long time_t; - -typedef ulong size_t; - -typedef int ssize_t; - -typedef int pid_t; - -typedef ulong Window; - -typedef bool Bool; - -typedef uint WFlags; - -typedef long off_t; - -typedef uint uid_t; - -typedef uint gid_t; +namespace Solid +{ +class DvbInterface : Solid::DeviceInterface +{ +%TypeHeaderCode +#include +%End + +public: + enum DeviceType + { + DvbUnknown, + DvbAudio, + DvbCa, + DvbDemux, + DvbDvr, + DvbFrontend, + DvbNet, + DvbOsd, + DvbSec, + DvbVideo + }; +private: + explicit DvbInterface (QObject* backendObject); +public: + virtual ~DvbInterface (); + static Solid::DeviceInterface::Type deviceInterfaceType (); + QString device () const; + int deviceAdapter () const; + Solid::DvbInterface::DeviceType deviceType () const; + int deviceIndex () const; +}; +}; diff --git a/sip/solid/genericinterface.sip b/sip/solid/genericinterface.sip new file mode 100644 index 0000000..8df6153 --- /dev/null +++ b/sip/solid/genericinterface.sip @@ -0,0 +1,47 @@ +// Copyright 2014 Simon Edwards + +// Generated by twine2 + +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU Library General Public License as +// published by the Free Software Foundation; either version 2, or +// (at your option) any later version. + +// 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 Library General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +namespace Solid +{ +class GenericInterface : Solid::DeviceInterface +{ +%TypeHeaderCode +#include +%End + +public: + enum PropertyChange + { + PropertyModified, + PropertyAdded, + PropertyRemoved + }; +private: + explicit GenericInterface (QObject* backendObject); +public: + virtual ~GenericInterface (); + static Solid::DeviceInterface::Type deviceInterfaceType (); + QVariant property (const QString& key) const; + QMap allProperties () const; + bool propertyExists (const QString& key) const; +signals: + void propertyChanged (const QMap& chan= ges); + void conditionRaised (const QString& condition, con= st QString& reason); +}; +}; diff --git a/sip/solid/internetgateway.sip b/sip/solid/internetgateway.sip new file mode 100644 index 0000000..768e03e --- /dev/null +++ b/sip/solid/internetgateway.sip @@ -0,0 +1,57 @@ +// Copyright 2014 Simon Edwards + +// Generated by twine2 + +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU Library General Public License as +// published by the Free Software Foundation; either version 2, or +// (at your option) any later version. + +// 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 Library General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +namespace Solid +{ +class InternetGateway : Solid::DeviceInterface +{ +%TypeHeaderCode +#include +%End + + explicit InternetGateway (QObject* backendObject); +public: + enum InternetStatus + { + InternetEnabled, + InternetDisabled, + UnknownStatus + }; + enum NetworkProtocol + { + TCP, + UDP + }; + virtual ~InternetGateway (); + static Solid::DeviceInterface::Type deviceInterfaceType (); + void requestCurrentConnections () const; + QStringList currentConnections () const; + void addPortMapping (const QString& remoteHost, qin= t16 externalPort, const Solid::InternetGateway::NetworkProtocol& mappingPro= tocol, qint16 internalPort, const QString& internalClient); + void deletePortMapping (const QString& remoteHost, = qint16 externalPort, const Solid::InternetGateway::NetworkProtocol& mapping= Protocol); + Solid::InternetGateway::InternetStatus isEnabledForInternet () const; + void setEnabledForInternet (bool enabled); +signals: + void portMappingAdded (const QString& remoteHost, q= int16 externalPort, const Solid::InternetGateway::NetworkProtocol& mappingP= rotocol, qint16 internalPort, const QString& internalClient); + void portMappingDeleted (const QString& remoteHost,= qint16 externalPort, const Solid::InternetGateway::NetworkProtocol& mappin= gProtocol); + void enabledForInternet (bool enabled); + void currentConnectionsDataIsReady (QStringList cur= rentConnections); +protected: +//ig InternetGateway (InternetGatewayPrivate& d= d, QObject* backendObject); +}; +}; diff --git a/sip/typedefs.sip b/sip/solid/keyboard.sip similarity index 66% copy from sip/typedefs.sip copy to sip/solid/keyboard.sip index a1d2375..983ecbe 100644 --- a/sip/typedefs.sip +++ b/sip/solid/keyboard.sip @@ -1,5 +1,7 @@ // Copyright 2014 Simon Edwards = +// Generated by twine2 + // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU Library General Public License as // published by the Free Software Foundation; either version 2, or @@ -15,26 +17,19 @@ // Free Software Foundation, Inc., // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. = -%Module PyKDE5.typedefs - -typedef uint mode_t; - -typedef long time_t; - -typedef ulong size_t; - -typedef int ssize_t; - -typedef int pid_t; - -typedef ulong Window; - -typedef bool Bool; - -typedef uint WFlags; - -typedef long off_t; - -typedef uint uid_t; - -typedef uint gid_t; +namespace Solid +{ +class Keyboard : Solid::DeviceInterface +{ +%TypeHeaderCode +#include +%End + + explicit Keyboard (QObject* backendObject); +public: + virtual ~Keyboard (); + static Solid::DeviceInterface::Type deviceInterfaceType (); + QString layout () const; + QString model () const; +}; +}; diff --git a/sip/solid/networking.sip b/sip/solid/networking.sip new file mode 100644 index 0000000..1bc2d50 --- /dev/null +++ b/sip/solid/networking.sip @@ -0,0 +1,58 @@ +// Copyright 2014 Simon Edwards + +// Generated by twine2 + +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU Library General Public License as +// published by the Free Software Foundation; either version 2, or +// (at your option) any later version. + +// 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 Library General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +namespace Solid +{ +namespace Networking +{ +enum Status +{ + Unknown, + Unconnected, + Disconnecting, + Connecting, + Connected +}; +enum ManagementPolicy +{ + Manual, + OnNextStatusChange, + Managed +}; +Solid::Networking::Status status (); +void setConnectPolicy (Solid::Networking::ManagementPol= icy policy); +Solid::Networking::ManagementPolicy connectPolicy (); +void setDisconnectPolicy (Solid::Networking::Management= Policy policy); +Solid::Networking::ManagementPolicy disconnectPolicy (); +class Notifier : QObject +{ +%TypeHeaderCode +#include +%End + +signals: + void statusChanged (Solid::Networking::Status statu= s); + void shouldConnect (); + void shouldDisconnect (); +protected: + Notifier (); +}; +Solid::Networking::Notifier* notifier (); +}; +}; diff --git a/sip/typedefs.sip b/sip/solid/networkinterface.sip similarity index 59% copy from sip/typedefs.sip copy to sip/solid/networkinterface.sip index a1d2375..10576b0 100644 --- a/sip/typedefs.sip +++ b/sip/solid/networkinterface.sip @@ -1,5 +1,7 @@ // Copyright 2014 Simon Edwards = +// Generated by twine2 + // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU Library General Public License as // published by the Free Software Foundation; either version 2, or @@ -15,26 +17,21 @@ // Free Software Foundation, Inc., // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. = -%Module PyKDE5.typedefs - -typedef uint mode_t; - -typedef long time_t; - -typedef ulong size_t; - -typedef int ssize_t; - -typedef int pid_t; - -typedef ulong Window; - -typedef bool Bool; - -typedef uint WFlags; - -typedef long off_t; - -typedef uint uid_t; - -typedef uint gid_t; +namespace Solid +{ +class NetworkInterface : Solid::DeviceInterface +{ +%TypeHeaderCode +#include +%End + + explicit NetworkInterface (QObject* backendObject); +public: + virtual ~NetworkInterface (); + static Solid::DeviceInterface::Type deviceInterfaceType (); + QString ifaceName () const; + bool isWireless () const; + QString hwAddress () const; + qulonglong macAddress () const; +}; +}; diff --git a/sip/typedefs.sip b/sip/solid/networkshare.sip similarity index 60% copy from sip/typedefs.sip copy to sip/solid/networkshare.sip index a1d2375..aeb8343 100644 --- a/sip/typedefs.sip +++ b/sip/solid/networkshare.sip @@ -1,5 +1,7 @@ // Copyright 2014 Simon Edwards = +// Generated by twine2 + // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU Library General Public License as // published by the Free Software Foundation; either version 2, or @@ -15,26 +17,26 @@ // Free Software Foundation, Inc., // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. = -%Module PyKDE5.typedefs - -typedef uint mode_t; - -typedef long time_t; - -typedef ulong size_t; - -typedef int ssize_t; - -typedef int pid_t; - -typedef ulong Window; - -typedef bool Bool; - -typedef uint WFlags; - -typedef long off_t; - -typedef uint uid_t; - -typedef uint gid_t; +namespace Solid +{ +class NetworkShare : Solid::DeviceInterface +{ +%TypeHeaderCode +#include +%End + + explicit NetworkShare (QObject* backendObject); +public: + virtual ~NetworkShare (); + enum ShareType + { + Unknown, + Nfs, + Cifs, + Upnp + }; + static Solid::DeviceInterface::Type deviceInterfaceType (); + Solid::NetworkShare::ShareType type () const; + QUrl url () const; +}; +}; diff --git a/sip/solid/opticaldisc.sip b/sip/solid/opticaldisc.sip new file mode 100644 index 0000000..b3ac5f9 --- /dev/null +++ b/sip/solid/opticaldisc.sip @@ -0,0 +1,73 @@ +// Copyright 2014 Simon Edwards + +// Generated by twine2 + +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU Library General Public License as +// published by the Free Software Foundation; either version 2, or +// (at your option) any later version. + +// 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 Library General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +namespace Solid +{ +class OpticalDisc : Solid::StorageVolume +{ +%TypeHeaderCode +#include +%End + +public: + enum ContentType + { + NoContent, + Audio, + Data, + VideoCd, + SuperVideoCd, + VideoDvd, + VideoBluRay + }; + typedef QFlags ContentTypes; + enum DiscType + { + UnknownDiscType, + CdRom, + CdRecordable, + CdRewritable, + DvdRom, + DvdRam, + DvdRecordable, + DvdRewritable, + DvdPlusRecordable, + DvdPlusRewritable, + DvdPlusRecordableDuallayer, + DvdPlusRewritableDuallayer, + BluRayRom, + BluRayRecordable, + BluRayRewritable, + HdDvdRom, + HdDvdRecordable, + HdDvdRewritable + }; +private: + explicit OpticalDisc (QObject* backendObject); +public: + virtual ~OpticalDisc (); + static Solid::DeviceInterface::Type deviceInterfaceType (); + Solid::OpticalDisc::ContentTypes availableContent () const; + Solid::OpticalDisc::DiscType discType () const; + bool isAppendable () const; + bool isBlank () const; + bool isRewritable () const; + qulonglong capacity () const; +}; +}; diff --git a/sip/solid/opticaldrive.sip b/sip/solid/opticaldrive.sip new file mode 100644 index 0000000..8aa7a00 --- /dev/null +++ b/sip/solid/opticaldrive.sip @@ -0,0 +1,64 @@ +// Copyright 2014 Simon Edwards + +// Generated by twine2 + +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU Library General Public License as +// published by the Free Software Foundation; either version 2, or +// (at your option) any later version. + +// 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 Library General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +namespace Solid +{ +class OpticalDrive : Solid::StorageDrive +{ +%TypeHeaderCode +#include +%End + +public: + enum MediumType + { + Cdr, + Cdrw, + Dvd, + Dvdr, + Dvdrw, + Dvdram, + Dvdplusr, + Dvdplusrw, + Dvdplusdl, + Dvdplusdlrw, + Bd, + Bdr, + Bdre, + HdDvd, + HdDvdr, + HdDvdrw + }; + typedef QFlags MediumTypes; +private: + explicit OpticalDrive (QObject* backendObject); +public: + virtual ~OpticalDrive (); + static Solid::DeviceInterface::Type deviceInterfaceType (); + Solid::OpticalDrive::MediumTypes supportedMedia () const; + int readSpeed () const; + int writeSpeed () const; + QList writeSpeeds () const; + bool eject (); +signals: + void ejectPressed (const QString& udi); + void ejectDone (Solid::ErrorType error, QVariant er= rorData, const QString& udi); + void ejectRequested (const QString& udi); +}; +}; diff --git a/sip/typedefs.sip b/sip/solid/pointingdevice.sip similarity index 58% copy from sip/typedefs.sip copy to sip/solid/pointingdevice.sip index a1d2375..2b5c2cc 100644 --- a/sip/typedefs.sip +++ b/sip/solid/pointingdevice.sip @@ -1,5 +1,7 @@ // Copyright 2014 Simon Edwards = +// Generated by twine2 + // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU Library General Public License as // published by the Free Software Foundation; either version 2, or @@ -15,26 +17,28 @@ // Free Software Foundation, Inc., // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. = -%Module PyKDE5.typedefs - -typedef uint mode_t; - -typedef long time_t; - -typedef ulong size_t; - -typedef int ssize_t; - -typedef int pid_t; - -typedef ulong Window; - -typedef bool Bool; - -typedef uint WFlags; - -typedef long off_t; - -typedef uint uid_t; - -typedef uint gid_t; +namespace Solid +{ +class PointingDevice : Solid::DeviceInterface +{ +%TypeHeaderCode +#include +%End + +public: + enum PointingDeviceType + { + Mouse, + Touchpad, + Touchscreen, + Tablet, + UnknownPointingDeviceType + }; +private: + explicit PointingDevice (QObject* backendObject); +public: + virtual ~PointingDevice (); + static Solid::DeviceInterface::Type deviceInterfaceType (); + Solid::PointingDevice::PointingDeviceType type () const; +}; +}; diff --git a/sip/typedefs.sip b/sip/solid/portablemediaplayer.sip similarity index 57% copy from sip/typedefs.sip copy to sip/solid/portablemediaplayer.sip index a1d2375..c8c6d20 100644 --- a/sip/typedefs.sip +++ b/sip/solid/portablemediaplayer.sip @@ -1,5 +1,7 @@ // Copyright 2014 Simon Edwards = +// Generated by twine2 + // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU Library General Public License as // published by the Free Software Foundation; either version 2, or @@ -15,26 +17,20 @@ // Free Software Foundation, Inc., // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. = -%Module PyKDE5.typedefs - -typedef uint mode_t; - -typedef long time_t; - -typedef ulong size_t; - -typedef int ssize_t; - -typedef int pid_t; - -typedef ulong Window; - -typedef bool Bool; - -typedef uint WFlags; - -typedef long off_t; - -typedef uint uid_t; - -typedef uint gid_t; +namespace Solid +{ +class PortableMediaPlayer : Solid::DeviceInterface +{ +%TypeHeaderCode +#include +%End + + explicit PortableMediaPlayer (QObject* backendObject); +public: + virtual ~PortableMediaPlayer (); + static Solid::DeviceInterface::Type deviceInterfaceType (); + QStringList supportedProtocols () const; + QStringList supportedDrivers (QString protocol =3D QString= ()) const; + QVariant driverHandle (const QString& driver) const; +}; +}; diff --git a/sip/solid/powermanagement.sip b/sip/solid/powermanagement.sip new file mode 100644 index 0000000..6efe7bb --- /dev/null +++ b/sip/solid/powermanagement.sip @@ -0,0 +1,52 @@ +// Copyright 2014 Simon Edwards + +// Generated by twine2 + +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU Library General Public License as +// published by the Free Software Foundation; either version 2, or +// (at your option) any later version. + +// 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 Library General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +%ModuleHeaderCode +#include +%End +namespace Solid +{ +namespace PowerManagement +{ +enum SleepState +{ + StandbyState, + SuspendState, + HibernateState, + HybridSuspendState +}; +bool appShouldConserveResources (); +QSet supportedSleepStates (); +void requestSleep (Solid::PowerManagement::SleepState s= tate, QObject* receiver, const char* member); +int beginSuppressingSleep (const QString& reason =3D Q= String()); +bool stopSuppressingSleep (int cookie); +int beginSuppressingScreenPowerManagement (const QStri= ng& reason =3D QString()); +bool stopSuppressingScreenPowerManagement (int cookie); +class Notifier : QObject +{ + +signals: + void appShouldConserveResourcesChanged (bool newSta= te); + void resumingFromSuspend (); +protected: + Notifier (); +}; +Solid::PowerManagement::Notifier* notifier (); +}; +}; diff --git a/sip/solid/predicate.sip b/sip/solid/predicate.sip new file mode 100644 index 0000000..de9a573 --- /dev/null +++ b/sip/solid/predicate.sip @@ -0,0 +1,66 @@ +// Copyright 2014 Simon Edwards + +// Generated by twine2 + +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU Library General Public License as +// published by the Free Software Foundation; either version 2, or +// (at your option) any later version. + +// 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 Library General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +namespace Solid +{ +class Predicate +{ +%TypeHeaderCode +#include +%End + +public: + enum ComparisonOperator + { + Equals, + Mask + }; + enum Type + { + PropertyCheck, + Conjunction, + Disjunction, + InterfaceCheck + }; + Predicate (); + Predicate (const Solid::Predicate& other); + Predicate (const Solid::DeviceInterface::Type&= ifaceType, const QString& property, const QVariant& value, Solid::Predicat= e::ComparisonOperator compOperator =3D Solid::Predicate::ComparisonOperator= ::Equals); + Predicate (const QString& ifaceName, const QSt= ring& property, const QVariant& value, Solid::Predicate::ComparisonOperator= compOperator =3D Solid::Predicate::ComparisonOperator::Equals); + explicit Predicate (const Solid::DeviceInterface::Type&= ifaceType); + explicit Predicate (const QString& ifaceName); + ~Predicate (); +//ig Solid::Predicate& operator=3D (const Solid::Predicate& other= ); + Solid::Predicate operator& (const Solid::Predicate& other); + Solid::Predicate& operator&=3D (const Solid::Predicate& other); + Solid::Predicate operator| (const Solid::Predicate& other); + Solid::Predicate& operator|=3D (const Solid::Predicate& other); + bool isValid () const; + bool matches (const Solid::Device& device) const; + QSet usedTypes () const; + QString toString () const; + static Solid::Predicate fromString (const QString& predicate); + Solid::Predicate::Type type () const; + Solid::DeviceInterface::Type interfaceType () const; + QString propertyName () const; + QVariant matchingValue () const; + Solid::Predicate::ComparisonOperator comparisonOperator () const; + Solid::Predicate firstOperand () const; + Solid::Predicate secondOperand () const; +}; +}; diff --git a/sip/solid/processor.sip b/sip/solid/processor.sip new file mode 100644 index 0000000..ecc3034 --- /dev/null +++ b/sip/solid/processor.sip @@ -0,0 +1,52 @@ +// Copyright 2014 Simon Edwards + +// Generated by twine2 + +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU Library General Public License as +// published by the Free Software Foundation; either version 2, or +// (at your option) any later version. + +// 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 Library General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +%ModuleHeaderCode +#include +%End +namespace Solid +{ +class Processor : Solid::DeviceInterface +{ + + explicit Processor (QObject* backendObject); +public: + enum InstructionSet + { + NoExtensions, + IntelMmx, + IntelSse, + IntelSse2, + IntelSse3, + IntelSsse3, + IntelSse4, + IntelSse41, + IntelSse42, + Amd3DNow, + AltiVec + }; + typedef QFlags InstructionSets; + virtual ~Processor (); + static Solid::DeviceInterface::Type deviceInterfaceType (); + int number () const; + int maxSpeed () const; + bool canChangeFrequency () const; + Solid::Processor::InstructionSets instructionSets () const; +}; +}; diff --git a/sip/typedefs.sip b/sip/solid/serialinterface.sip similarity index 57% copy from sip/typedefs.sip copy to sip/solid/serialinterface.sip index a1d2375..18bd642 100644 --- a/sip/typedefs.sip +++ b/sip/solid/serialinterface.sip @@ -1,5 +1,7 @@ // Copyright 2014 Simon Edwards = +// Generated by twine2 + // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU Library General Public License as // published by the Free Software Foundation; either version 2, or @@ -15,26 +17,26 @@ // Free Software Foundation, Inc., // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. = -%Module PyKDE5.typedefs - -typedef uint mode_t; - -typedef long time_t; - -typedef ulong size_t; - -typedef int ssize_t; - -typedef int pid_t; - -typedef ulong Window; - -typedef bool Bool; - -typedef uint WFlags; - -typedef long off_t; - -typedef uint uid_t; - -typedef uint gid_t; +namespace Solid +{ +class SerialInterface : Solid::DeviceInterface +{ +%TypeHeaderCode +#include +%End + + explicit SerialInterface (QObject* backendObject); +public: + virtual ~SerialInterface (); + static Solid::DeviceInterface::Type deviceInterfaceType (); + virtual QVariant driverHandle () const; + enum SerialType + { + Unknown, + Platform, + Usb + }; + virtual Solid::SerialInterface::SerialType serialType () const; + virtual int port () const; +}; +}; diff --git a/sip/typedefs.sip b/sip/solid/smartcardreader.sip similarity index 60% copy from sip/typedefs.sip copy to sip/solid/smartcardreader.sip index a1d2375..39b0932 100644 --- a/sip/typedefs.sip +++ b/sip/solid/smartcardreader.sip @@ -1,5 +1,7 @@ // Copyright 2014 Simon Edwards = +// Generated by twine2 + // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU Library General Public License as // published by the Free Software Foundation; either version 2, or @@ -15,26 +17,26 @@ // Free Software Foundation, Inc., // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. = -%Module PyKDE5.typedefs - -typedef uint mode_t; - -typedef long time_t; - -typedef ulong size_t; - -typedef int ssize_t; - -typedef int pid_t; - -typedef ulong Window; - -typedef bool Bool; - -typedef uint WFlags; - -typedef long off_t; - -typedef uint uid_t; - -typedef uint gid_t; +namespace Solid +{ +class SmartCardReader : Solid::DeviceInterface +{ +%TypeHeaderCode +#include +%End + +public: + enum ReaderType + { + UnknownReaderType, + CardReader, + CryptoToken + }; +private: + explicit SmartCardReader (QObject* backendObject); +public: + virtual ~SmartCardReader (); + static Solid::DeviceInterface::Type deviceInterfaceType (); + Solid::SmartCardReader::ReaderType readerType () const; +}; +}; diff --git a/sip/solid/solidmod.sip b/sip/solid/solidmod.sip new file mode 100644 index 0000000..1c1a66c --- /dev/null +++ b/sip/solid/solidmod.sip @@ -0,0 +1,58 @@ +// Copyright 2014 Simon Edwards + +// Generated by twine2 + +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU Library General Public License as +// published by the Free Software Foundation; either version 2, or +// (at your option) any later version. + +// 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 Library General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +%Module PyKDE5.solid + +%ModuleHeaderCode +#pragma GCC visibility push(default) +%End + +%Import typedefs.sip +%Import QtCore/QtCoremod.sip + +%Include acadapter.sip +%Include audiointerface.sip +%Include battery.sip +%Include block.sip +%Include button.sip +%Include camera.sip +%Include device.sip +%Include deviceinterface.sip +%Include devicenotifier.sip +%Include dvbinterface.sip +%Include genericinterface.sip +%Include internetgateway.sip +%Include keyboard.sip +%Include networking.sip +%Include networkinterface.sip +%Include networkshare.sip +%Include opticaldisc.sip +%Include opticaldrive.sip +%Include pointingdevice.sip +%Include portablemediaplayer.sip +%Include powermanagement.sip +%Include predicate.sip +%Include processor.sip +%Include serialinterface.sip +%Include smartcardreader.sip +%Include solidnamespace.sip +%Include storageaccess.sip +%Include storagedrive.sip +%Include storagevolume.sip +%Include video.sip diff --git a/sip/typedefs.sip b/sip/solid/solidnamespace.sip similarity index 74% copy from sip/typedefs.sip copy to sip/solid/solidnamespace.sip index a1d2375..0a9d442 100644 --- a/sip/typedefs.sip +++ b/sip/solid/solidnamespace.sip @@ -1,5 +1,7 @@ // Copyright 2014 Simon Edwards = +// Generated by twine2 + // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU Library General Public License as // published by the Free Software Foundation; either version 2, or @@ -15,26 +17,20 @@ // Free Software Foundation, Inc., // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. = -%Module PyKDE5.typedefs - -typedef uint mode_t; - -typedef long time_t; - -typedef ulong size_t; - -typedef int ssize_t; - -typedef int pid_t; - -typedef ulong Window; - -typedef bool Bool; - -typedef uint WFlags; - -typedef long off_t; - -typedef uint uid_t; - -typedef uint gid_t; +%ModuleHeaderCode +#include +%End + +namespace Solid +{ +enum ErrorType +{ + NoError, + UnauthorizedOperation, + DeviceBusy, + OperationFailed, + UserCanceled, + InvalidOption, + MissingDriver +}; +}; diff --git a/sip/solid/storageaccess.sip b/sip/solid/storageaccess.sip new file mode 100644 index 0000000..9700209 --- /dev/null +++ b/sip/solid/storageaccess.sip @@ -0,0 +1,46 @@ +// Copyright 2014 Simon Edwards + +// Generated by twine2 + +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU Library General Public License as +// published by the Free Software Foundation; either version 2, or +// (at your option) any later version. + +// 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 Library General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +namespace Solid +{ +class StorageAccess : Solid::DeviceInterface +{ +%TypeHeaderCode +#include +%End + + explicit StorageAccess (QObject* backendObject); +public: + virtual ~StorageAccess (); + static Solid::DeviceInterface::Type deviceInterfaceType (); + bool isAccessible () const; + QString filePath () const; + bool isIgnored () const; + bool setup (); + bool teardown (); +signals: + void accessibilityChanged (bool accessible, const Q= String& udi); + void setupDone (Solid::ErrorType error, QVariant er= rorData, const QString& udi); + void teardownDone (Solid::ErrorType error, QVariant= errorData, const QString& udi); + void setupRequested (const QString& udi); + void teardownRequested (const QString& udi); +protected: +//ig StorageAccess (StorageAccessPrivate& dd, Q= Object* backendObject); +}; +}; diff --git a/sip/solid/storagedrive.sip b/sip/solid/storagedrive.sip new file mode 100644 index 0000000..8c6ac4c --- /dev/null +++ b/sip/solid/storagedrive.sip @@ -0,0 +1,64 @@ +// Copyright 2014 Simon Edwards + +// Generated by twine2 + +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU Library General Public License as +// published by the Free Software Foundation; either version 2, or +// (at your option) any later version. + +// 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 Library General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +namespace Solid +{ +class StorageDrive : Solid::DeviceInterface +{ +%TypeHeaderCode +#include +%End + +public: + enum Bus + { + Ide, + Usb, + Ieee1394, + Scsi, + Sata, + Platform + }; + enum DriveType + { + HardDisk, + CdromDrive, + Floppy, + Tape, + CompactFlash, + MemoryStick, + SmartMedia, + SdMmc, + Xd + }; +private: + explicit StorageDrive (QObject* backendObject); +public: + virtual ~StorageDrive (); + static Solid::DeviceInterface::Type deviceInterfaceType (); + Solid::StorageDrive::Bus bus () const; + Solid::StorageDrive::DriveType driveType () const; + bool isRemovable () const; + bool isHotpluggable () const; + qulonglong size () const; + bool isInUse () const; +protected: +//ig StorageDrive (StorageDrivePrivate& dd, QOb= ject* backendObject); +}; +}; diff --git a/sip/solid/storagevolume.sip b/sip/solid/storagevolume.sip new file mode 100644 index 0000000..385f0c5 --- /dev/null +++ b/sip/solid/storagevolume.sip @@ -0,0 +1,53 @@ +// Copyright 2014 Simon Edwards + +// Generated by twine2 + +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU Library General Public License as +// published by the Free Software Foundation; either version 2, or +// (at your option) any later version. + +// 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 Library General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +namespace Solid +{ +class StorageVolume : Solid::DeviceInterface +{ +%TypeHeaderCode +#include +%End + +public: + enum UsageType + { + Other, + Unused, + FileSystem, + PartitionTable, + Raid, + Encrypted + }; +private: + explicit StorageVolume (QObject* backendObject); +public: + virtual ~StorageVolume (); + static Solid::DeviceInterface::Type deviceInterfaceType (); + bool isIgnored () const; + Solid::StorageVolume::UsageType usage () const; + QString fsType () const; + QString label () const; + QString uuid () const; + qulonglong size () const; + Solid::Device encryptedContainer () const; +protected: +//ig StorageVolume (StorageVolumePrivate& dd, Q= Object* backendObject); +}; +}; diff --git a/sip/typedefs.sip b/sip/solid/video.sip similarity index 60% copy from sip/typedefs.sip copy to sip/solid/video.sip index a1d2375..7abd9b6 100644 --- a/sip/typedefs.sip +++ b/sip/solid/video.sip @@ -1,5 +1,7 @@ // Copyright 2014 Simon Edwards = +// Generated by twine2 + // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU Library General Public License as // published by the Free Software Foundation; either version 2, or @@ -15,26 +17,20 @@ // Free Software Foundation, Inc., // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. = -%Module PyKDE5.typedefs - -typedef uint mode_t; - -typedef long time_t; - -typedef ulong size_t; - -typedef int ssize_t; - -typedef int pid_t; - -typedef ulong Window; - -typedef bool Bool; - -typedef uint WFlags; - -typedef long off_t; - -typedef uint uid_t; - -typedef uint gid_t; +namespace Solid +{ +class Video : Solid::DeviceInterface +{ +%TypeHeaderCode +#include +%End + + explicit Video (QObject* backendObject); +public: + virtual ~Video (); + static Solid::DeviceInterface::Type deviceInterfaceType (); + QStringList supportedProtocols () const; + QStringList supportedDrivers (QString protocol =3D QString= ()) const; + QVariant driverHandle (const QString& driver) const; +}; +}; diff --git a/sip/typedefs.sip b/sip/typedefs.sip index a1d2375..e777e27 100644 --- a/sip/typedefs.sip +++ b/sip/typedefs.sip @@ -38,3 +38,118 @@ typedef long off_t; typedef uint uid_t; = typedef uint gid_t; + +template +%MappedType QMap +{ +%TypeHeaderCode +#include +%End + +%ConvertFromTypeCode + // Create the dictionary. + PyObject *d =3D PyDict_New(); + + if (!d) + return NULL; + + // Set the dictionary elements. + QMap::const_iterator i =3D sipCpp->constBegin(); + + while (i !=3D sipCpp->constEnd()) + { + TYPE1 *t1 =3D new TYPE1(i.key()); + int t2 =3D i.value(); + + PyObject *t1obj =3D sipConvertFromNewType(t1, sipType_TYPE1, sipTr= ansferObj); +#if PY_MAJOR_VERSION >=3D 3 + PyObject *t2obj =3D PyLong_FromLong(t2); +#else + PyObject *t2obj =3D PyInt_FromLong(t2); +#endif + + if (t1obj =3D=3D NULL || t2obj =3D=3D NULL || PyDict_SetItem(d, t1= obj, t2obj) < 0) + { + Py_DECREF(d); + + if (t1obj) { + Py_DECREF(t1obj); + } else { + delete t1; + } = + = + if (t2obj) { + Py_DECREF(t2obj); + } + return NULL; + } + + Py_DECREF(t1obj); + Py_DECREF(t2obj); + + ++i; + } + + return d; +%End + +%ConvertToTypeCode + PyObject *t1obj; + PyObject *t2obj; + SIP_SSIZE_T i =3D 0; + + // Check the type if that is all that is required. + if (sipIsErr =3D=3D NULL) + { + if (!PyDict_Check(sipPy)) + return 0; + + while (PyDict_Next(sipPy, &i, &t1obj, &t2obj)) + { + if (!sipCanConvertToType(t1obj, sipType_TYPE1, SIP_NOT_NONE)) + return 0; + +#if PY_MAJOR_VERSION >=3D 3 + if (!PyNumber_Check(t2obj)) +#else + if (!PyInt_Check(t2obj)) +#endif + return 0; + } = + + return 1; + } + + QMap *qm =3D new QMap; + = + i =3D 0; + while (PyDict_Next(sipPy, &i, &t1obj, &t2obj)) + { + int state1; + + TYPE1 *t1 =3D reinterpret_cast(sipConvertToType(t1obj, si= pType_TYPE1, sipTransferObj, SIP_NOT_NONE, &state1, sipIsErr)); + +#if PY_MAJOR_VERSION >=3D 3 + int t2 =3D PyLong_AsLong (t2obj); +#else + int t2 =3D PyInt_AS_LONG (t2obj); +#endif + = + if (*sipIsErr) + { + sipReleaseType(t1, sipType_TYPE1, state1); + + delete qm; + return 0; + } + + qm->insert(*t1, t2); + + sipReleaseType(t1, sipType_TYPE1, state1); + } + = + *sipCppPtr =3D qm; + = + return sipGetState(sipTransferObj); +%End +};