author | korovkin <korovkin> | 2006-07-06 16:43:35 (UTC) |
---|---|---|
committer | korovkin <korovkin> | 2006-07-06 16:43:35 (UTC) |
commit | 060b467fb04094352343298688db04d89943f4b3 (patch) (unidiff) | |
tree | c04102028174f328f7be033d20a130359ce8d7c8 /noncore | |
parent | 43cd66c08de4447998028179d20fd4817aaf16ca (diff) | |
download | opie-060b467fb04094352343298688db04d89943f4b3.zip opie-060b467fb04094352343298688db04d89943f4b3.tar.gz opie-060b467fb04094352343298688db04d89943f4b3.tar.bz2 |
Added connection to a HID device.
-rw-r--r-- | noncore/net/opietooth/manager/bticonloader.cpp | 1 | ||||
-rw-r--r-- | noncore/net/opietooth/manager/hidpopup.cpp | 105 | ||||
-rw-r--r-- | noncore/net/opietooth/manager/hidpopup.h | 43 | ||||
-rw-r--r-- | noncore/net/opietooth/manager/manager.pro | 4 | ||||
-rw-r--r-- | noncore/net/opietooth/manager/popuphelper.cpp | 1 | ||||
-rw-r--r-- | noncore/net/opietooth/manager/stdpopups.cpp | 5 | ||||
-rw-r--r-- | noncore/net/opietooth/manager/stdpopups.h | 1 |
7 files changed, 158 insertions, 2 deletions
diff --git a/noncore/net/opietooth/manager/bticonloader.cpp b/noncore/net/opietooth/manager/bticonloader.cpp index 6bac256..c8a6dd4 100644 --- a/noncore/net/opietooth/manager/bticonloader.cpp +++ b/noncore/net/opietooth/manager/bticonloader.cpp | |||
@@ -30,4 +30,5 @@ namespace OpieTooth { | |||
30 | serviceIcons.insert( 4362 , "audio_16"); // AudioSource | 30 | serviceIcons.insert( 4362 , "audio_16"); // AudioSource |
31 | serviceIcons.insert( 4363 , "audio_16"); // AudioSink | 31 | serviceIcons.insert( 4363 , "audio_16"); // AudioSink |
32 | serviceIcons.insert( 4388 , "other_16" ); //Human Interface Device | ||
32 | serviceIcons.insert( 4390 , "print_16" ); //HCR_Print | 33 | serviceIcons.insert( 4390 , "print_16" ); //HCR_Print |
33 | serviceIcons.insert( 4392 , "phone_16" ); //Common_ISDN_Access | 34 | serviceIcons.insert( 4392 , "phone_16" ); //Common_ISDN_Access |
diff --git a/noncore/net/opietooth/manager/hidpopup.cpp b/noncore/net/opietooth/manager/hidpopup.cpp new file mode 100644 index 0000000..98a2fb4 --- a/dev/null +++ b/noncore/net/opietooth/manager/hidpopup.cpp | |||
@@ -0,0 +1,105 @@ | |||
1 | /* $Id$ */ | ||
2 | /* PAN context menu */ | ||
3 | /*************************************************************************** | ||
4 | * * | ||
5 | * This program is free software; you can redistribute it and/or modify * | ||
6 | * it under the terms of the GNU General Public License as published by * | ||
7 | * the Free Software Foundation; either version 2 of the License, or * | ||
8 | * (at your option) any later version. * | ||
9 | * * | ||
10 | ***************************************************************************/ | ||
11 | #include <qpe/qcopenvelope_qws.h> | ||
12 | #include <qmessagebox.h> | ||
13 | #include <opie2/odebug.h> | ||
14 | #include <opie2/oprocess.h> | ||
15 | #include <qpe/qpeapplication.h> | ||
16 | using namespace Opie::Core; | ||
17 | |||
18 | #include <qtimer.h> | ||
19 | #include "hidpopup.h" | ||
20 | |||
21 | using namespace OpieTooth; | ||
22 | |||
23 | /* | ||
24 | * c'tor init the QAction | ||
25 | */ | ||
26 | HidPopup::HidPopup(const OpieTooth::Services&, OpieTooth::BTDeviceItem* item) : | ||
27 | QPopupMenu() { | ||
28 | |||
29 | owarn << "HidPopup c'tor" << oendl; | ||
30 | |||
31 | m_item = item; | ||
32 | QAction* a; | ||
33 | QAction* c; | ||
34 | |||
35 | m_hidConnect = 0l; | ||
36 | /* connect action */ | ||
37 | |||
38 | a = new QAction(); // so it's get deleted | ||
39 | a->setText( tr("connect") ); | ||
40 | a->addTo( this ); | ||
41 | connect( a, SIGNAL( activated() ), this, SLOT( slotConnect() ) ); | ||
42 | |||
43 | c = new QAction(); | ||
44 | c->setText( tr( "disconnect" ) ); | ||
45 | c->addTo( this ); | ||
46 | connect( c, SIGNAL( activated() ), this, SLOT( slotDisconnect() ) ); | ||
47 | |||
48 | }; | ||
49 | |||
50 | HidPopup::~HidPopup() { | ||
51 | delete m_hidConnect; | ||
52 | } | ||
53 | |||
54 | void HidPopup::slotConnect() { | ||
55 | odebug << "connect" << oendl; | ||
56 | m_hidConnect = new OProcess(); | ||
57 | *m_hidConnect << "hidd" << "--connect" << m_item->mac(); | ||
58 | connect(m_hidConnect, | ||
59 | SIGNAL(receivedStdout(Opie::Core::OProcess*, char*, int)), | ||
60 | this, SLOT(fillOutPut(Opie::Core::OProcess*, char*, int))); | ||
61 | connect(m_hidConnect, | ||
62 | SIGNAL(receivedStderr(Opie::Core::OProcess*, char*, int)), | ||
63 | this, SLOT(fillErr(Opie::Core::OProcess*, char*, int))); | ||
64 | connect(m_hidConnect, | ||
65 | SIGNAL(processExited(Opie::Core::OProcess*)), | ||
66 | this, SLOT(slotProcessExited(Opie::Core::OProcess*))); | ||
67 | if (!m_hidConnect->start(OProcess::Block, OProcess::AllOutput)) { | ||
68 | QMessageBox::critical(this, tr("HID Connection"), | ||
69 | tr("HID Connection\nto device ") + m_item->mac() + tr("\nfailed")); | ||
70 | delete m_hidConnect; | ||
71 | m_hidConnect = 0l; | ||
72 | } | ||
73 | } | ||
74 | |||
75 | void HidPopup::slotDisconnect() { | ||
76 | OProcess hidKill; | ||
77 | hidKill << "hidd" << "--kill" << m_item->mac(); | ||
78 | hidKill.start(OProcess::DontCare, OProcess::NoCommunication); | ||
79 | sleep(1); | ||
80 | QMessageBox::information(this, tr("HID Disconnect"), tr("HID Disconnected")); | ||
81 | } | ||
82 | |||
83 | void HidPopup::fillOutPut( OProcess*, char* cha, int len ) { | ||
84 | QCString str(cha, len); | ||
85 | odebug << str << oendl; | ||
86 | } | ||
87 | |||
88 | void HidPopup::fillErr(OProcess*, char* buf, int len) | ||
89 | { | ||
90 | QCString str(buf, len); | ||
91 | odebug << str << oendl; | ||
92 | } | ||
93 | |||
94 | void HidPopup::slotProcessExited(OProcess* proc) { | ||
95 | if (m_hidConnect->normalExit()) | ||
96 | QMessageBox::information(this, tr("HID Connection"), | ||
97 | tr("HID Connect\nstarted")); | ||
98 | else | ||
99 | QMessageBox::critical(this, tr("HID Connection"), | ||
100 | tr("HID Connection\nto device ") + m_item->mac() + tr("\nfailed")); | ||
101 | delete m_hidConnect; | ||
102 | m_hidConnect = 0l; | ||
103 | } | ||
104 | |||
105 | //eof | ||
diff --git a/noncore/net/opietooth/manager/hidpopup.h b/noncore/net/opietooth/manager/hidpopup.h new file mode 100644 index 0000000..0c51919 --- a/dev/null +++ b/noncore/net/opietooth/manager/hidpopup.h | |||
@@ -0,0 +1,43 @@ | |||
1 | /* $Id$ */ | ||
2 | /* PAN context menu */ | ||
3 | /*************************************************************************** | ||
4 | * * | ||
5 | * This program is free software; you can redistribute it and/or modify * | ||
6 | * it under the terms of the GNU General Public License as published by * | ||
7 | * the Free Software Foundation; either version 2 of the License, or * | ||
8 | * (at your option) any later version. * | ||
9 | * * | ||
10 | ***************************************************************************/ | ||
11 | #ifndef HIDPOPUP_H | ||
12 | #define HIDPOPUP_H | ||
13 | |||
14 | #include <qpopupmenu.h> | ||
15 | #include <qaction.h> | ||
16 | #include <opie2/oprocess.h> | ||
17 | #include <services.h> | ||
18 | #include "btdeviceitem.h" | ||
19 | |||
20 | namespace OpieTooth { | ||
21 | |||
22 | class HidPopup : public QPopupMenu { | ||
23 | |||
24 | Q_OBJECT | ||
25 | |||
26 | public: | ||
27 | HidPopup(const OpieTooth::Services&, OpieTooth::BTDeviceItem*); | ||
28 | ~HidPopup(); | ||
29 | |||
30 | private: | ||
31 | QAction* m_push; | ||
32 | OpieTooth::BTDeviceItem *m_item; | ||
33 | Opie::Core::OProcess* m_hidConnect; //HID process | ||
34 | private slots: | ||
35 | void slotConnect(); | ||
36 | void slotDisconnect(); | ||
37 | void fillOutPut( Opie::Core::OProcess* pppDial, char* cha, int len ); | ||
38 | void fillErr(Opie::Core::OProcess*, char*, int); | ||
39 | void slotProcessExited(Opie::Core::OProcess* proc); | ||
40 | }; | ||
41 | }; | ||
42 | |||
43 | #endif | ||
diff --git a/noncore/net/opietooth/manager/manager.pro b/noncore/net/opietooth/manager/manager.pro index 09bd10e..dc048c4 100644 --- a/noncore/net/opietooth/manager/manager.pro +++ b/noncore/net/opietooth/manager/manager.pro | |||
@@ -10,5 +10,5 @@ HEADERS = btconnectionitem.h btdeviceitem.h \ | |||
10 | devicehandler.h rfcpopup.h obexpopup.h obexftpopup.h \ | 10 | devicehandler.h rfcpopup.h obexpopup.h obexftpopup.h \ |
11 | rfcommhelper.h panpopup.h dunpopup.h rfcommconfhandler.h \ | 11 | rfcommhelper.h panpopup.h dunpopup.h rfcommconfhandler.h \ |
12 | servicesdialog.h btconfhandler.h | 12 | servicesdialog.h btconfhandler.h hidpopup.h |
13 | 13 | ||
14 | SOURCES = btconnectionitem.cpp btdeviceitem.cpp \ | 14 | SOURCES = btconnectionitem.cpp btdeviceitem.cpp \ |
@@ -22,5 +22,5 @@ SOURCES = btconnectionitem.cpp btdeviceitem.cpp \ | |||
22 | rfcpopup.cpp obexpopup.cpp obexftpopup.cpp obexftpdialog.cpp \ | 22 | rfcpopup.cpp obexpopup.cpp obexftpopup.cpp obexftpdialog.cpp \ |
23 | rfcommhelper.cpp panpopup.cpp dunpopup.cpp rfcommconfhandler.cpp \ | 23 | rfcommhelper.cpp panpopup.cpp dunpopup.cpp rfcommconfhandler.cpp \ |
24 | servicesdialog.cpp btconfhandler.cpp | 24 | servicesdialog.cpp btconfhandler.cpp hidpopup.cpp |
25 | INCLUDEPATH += $(OPIEDIR)/include | 25 | INCLUDEPATH += $(OPIEDIR)/include |
26 | INCLUDEPATH += $(OPIEDIR)/noncore/net/opietooth/lib | 26 | INCLUDEPATH += $(OPIEDIR)/noncore/net/opietooth/lib |
diff --git a/noncore/net/opietooth/manager/popuphelper.cpp b/noncore/net/opietooth/manager/popuphelper.cpp index b3d7aa5..66f42bc 100644 --- a/noncore/net/opietooth/manager/popuphelper.cpp +++ b/noncore/net/opietooth/manager/popuphelper.cpp | |||
@@ -34,3 +34,4 @@ void PopupHelper::init() { | |||
34 | insert( 4358, newObexFtpPopup ); | 34 | insert( 4358, newObexFtpPopup ); |
35 | insert( 4374, newPanPopup ); | 35 | insert( 4374, newPanPopup ); |
36 | insert( 4388, newHidPopup ); | ||
36 | } | 37 | } |
diff --git a/noncore/net/opietooth/manager/stdpopups.cpp b/noncore/net/opietooth/manager/stdpopups.cpp index f58d3a6..17a7002 100644 --- a/noncore/net/opietooth/manager/stdpopups.cpp +++ b/noncore/net/opietooth/manager/stdpopups.cpp | |||
@@ -5,4 +5,5 @@ | |||
5 | #include "panpopup.h" | 5 | #include "panpopup.h" |
6 | #include "dunpopup.h" | 6 | #include "dunpopup.h" |
7 | #include "hidpopup.h" | ||
7 | 8 | ||
8 | #include "stdpopups.h" | 9 | #include "stdpopups.h" |
@@ -26,4 +27,8 @@ extern "C" { | |||
26 | return new OpieTooth::DunPopup(service, item); | 27 | return new OpieTooth::DunPopup(service, item); |
27 | } | 28 | } |
29 | |||
30 | QPopupMenu* newHidPopup( const OpieTooth::Services& service, OpieTooth::BTDeviceItem* item ) { | ||
31 | return new OpieTooth::HidPopup(service, item); | ||
32 | } | ||
28 | } | 33 | } |
29 | 34 | ||
diff --git a/noncore/net/opietooth/manager/stdpopups.h b/noncore/net/opietooth/manager/stdpopups.h index 3c361db..f1e1696 100644 --- a/noncore/net/opietooth/manager/stdpopups.h +++ b/noncore/net/opietooth/manager/stdpopups.h | |||
@@ -16,4 +16,5 @@ extern "C" { | |||
16 | QPopupMenu* newPanPopup( const OpieTooth::Services&, OpieTooth::BTDeviceItem* ); | 16 | QPopupMenu* newPanPopup( const OpieTooth::Services&, OpieTooth::BTDeviceItem* ); |
17 | QPopupMenu* newDunPopup( const OpieTooth::Services&, OpieTooth::BTDeviceItem* ); | 17 | QPopupMenu* newDunPopup( const OpieTooth::Services&, OpieTooth::BTDeviceItem* ); |
18 | QPopupMenu* newHidPopup( const OpieTooth::Services&, OpieTooth::BTDeviceItem* ); | ||
18 | QPopupMenu* newObexFtpPopup( const OpieTooth::Services&, OpieTooth::BTDeviceItem* ); | 19 | QPopupMenu* newObexFtpPopup( const OpieTooth::Services&, OpieTooth::BTDeviceItem* ); |
19 | } | 20 | } |