summaryrefslogtreecommitdiff
path: root/noncore/tools/remote/learntab.cpp
authorar <ar>2004-02-21 19:09:12 (UTC)
committer ar <ar>2004-02-21 19:09:12 (UTC)
commitc7e563cbb26c20807e66dd4284d1ce9cbf8e1419 (patch) (unidiff)
treee55119af88abe930c1ce492f30efb72c929a730c /noncore/tools/remote/learntab.cpp
parent536f271b1e6a1d1886e96a28524a3503c4c38c4e (diff)
downloadopie-c7e563cbb26c20807e66dd4284d1ce9cbf8e1419.zip
opie-c7e563cbb26c20807e66dd4284d1ce9cbf8e1419.tar.gz
opie-c7e563cbb26c20807e66dd4284d1ce9cbf8e1419.tar.bz2
improve support for BigScreen
Diffstat (limited to 'noncore/tools/remote/learntab.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/tools/remote/learntab.cpp311
1 files changed, 156 insertions, 155 deletions
diff --git a/noncore/tools/remote/learntab.cpp b/noncore/tools/remote/learntab.cpp
index 7582161..335a3e9 100644
--- a/noncore/tools/remote/learntab.cpp
+++ b/noncore/tools/remote/learntab.cpp
@@ -1,191 +1,192 @@
1/* 1/*
2Opie-Remote. emulates remote controlls on an iPaq (and maybe a Zaurus) in Opie. 2Opie-Remote. emulates remote controlls on an iPaq (and maybe a Zaurus) in Opie.
3Copyright (C) 2002 Thomas Stephens 3Copyright (C) 2002 Thomas Stephens
4 4
5This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public 5This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public
6License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later 6License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later
7version. 7version.
8 8
9This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 9This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
10implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
11Public License for more details. 11Public License for more details.
12 12
13You should have received a copy of the GNU General Public License along with this program; if not, write to the Free 13You should have received a copy of the GNU General Public License along with this program; if not, write to the Free
14Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 14Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
15*/ 15*/
16 16
17#include "learntab.h" 17#include "learntab.h"
18 18
19/* OPIE */
20#include <qpe/qpeapplication.h>
21
19LearnTab::LearnTab(QWidget *parent, const char *name):QWidget(parent,name) 22LearnTab::LearnTab(QWidget *parent, const char *name):QWidget(parent,name)
20{ 23{
21 QVBoxLayout *layout = new QVBoxLayout(this); 24 QVBoxLayout *layout = new QVBoxLayout(this);
22 QHBoxLayout *bottomLayout = new QHBoxLayout(this); 25 QHBoxLayout *bottomLayout = new QHBoxLayout(this);
23 26
24 layout->insertSpacing(0,5); 27 layout->insertSpacing(0,5);
25 remotesBox = new QListBox(this, "remotesBox"); 28 remotesBox = new QListBox(this, "remotesBox");
26 layout->insertWidget(0, remotesBox, 1); 29 layout->insertWidget(0, remotesBox, 1);
27 remotesBox->insertStringList(getRemotes()); 30 remotesBox->insertStringList(getRemotes());
28 31
29 layout->insertSpacing(-1,5); 32 layout->insertSpacing(-1,5);
30 layout->insertLayout(-1, bottomLayout); 33 layout->insertLayout(-1, bottomLayout);
31 layout->insertSpacing(-1,5); 34 layout->insertSpacing(-1,5);
32 35
33 QPushButton *add = new QPushButton("Add", this, "add"); 36 QPushButton *add = new QPushButton("Add", this, "add");
34 bottomLayout->insertSpacing(-1, 5); 37 bottomLayout->insertSpacing(-1, 5);
35 bottomLayout->insertWidget(-1, add); 38 bottomLayout->insertWidget(-1, add);
36 bottomLayout->insertSpacing(-1, 5); 39 bottomLayout->insertSpacing(-1, 5);
37 QPushButton *edit = new QPushButton("Edit", this, "edit"); 40 QPushButton *edit = new QPushButton("Edit", this, "edit");
38 bottomLayout->insertWidget(-1, edit); 41 bottomLayout->insertWidget(-1, edit);
39 bottomLayout->insertSpacing(-1, 5); 42 bottomLayout->insertSpacing(-1, 5);
40 QPushButton *del = new QPushButton("Delete", this, "delete"); 43 QPushButton *del = new QPushButton("Delete", this, "delete");
41 bottomLayout->insertWidget(-1, del); 44 bottomLayout->insertWidget(-1, del);
42 bottomLayout->insertSpacing(-1, 5); 45 bottomLayout->insertSpacing(-1, 5);
43 46
44 connect(add, SIGNAL(clicked()), this, SLOT(add()) ); 47 connect(add, SIGNAL(clicked()), this, SLOT(add()) );
45 connect(edit, SIGNAL(clicked()), this, SLOT(edit()) ); 48 connect(edit, SIGNAL(clicked()), this, SLOT(edit()) );
46 connect(del, SIGNAL(clicked()), this, SLOT(del()) ); 49 connect(del, SIGNAL(clicked()), this, SLOT(del()) );
47} 50}
48 51
49void LearnTab::add() 52void LearnTab::add()
50{ 53{
51 printf("LearnTab::add: add pressed\n"); 54 printf("LearnTab::add: add pressed\n");
52 RecordDialog *dialog = new RecordDialog(this); 55 RecordDialog *dialog = new RecordDialog(this);
53 dialog->showMaximized(); 56 QPEApplication::showDialog( dialog );
54} 57}
55 58
56void LearnTab::edit() 59void LearnTab::edit()
57{ 60{}
58}
59 61
60void LearnTab::del() 62void LearnTab::del()
61{ 63{}
62}
63 64
64QStringList LearnTab::getRemotes() 65QStringList LearnTab::getRemotes()
65{ 66{
66 const char write_buffer[] = "LIST\n"; 67 const char write_buffer[] = "LIST\n";
67 const char *readbuffer; 68 const char *readbuffer;
68 int i, numlines; 69 int i, numlines;
69 QStringList list; 70 QStringList list;
70 71
71 addr.sun_family=AF_UNIX; 72 addr.sun_family=AF_UNIX;
72 strcpy(addr.sun_path,"/dev/lircd"); 73 strcpy(addr.sun_path,"/dev/lircd");
73 74
74 fd = socket(AF_UNIX, SOCK_STREAM, 0); 75 fd = socket(AF_UNIX, SOCK_STREAM, 0);
75 if(fd == -1) 76 if(fd == -1)
76 { 77 {
77 QMessageBox *mb = new QMessageBox("Error!", 78 QMessageBox *mb = new QMessageBox("Error!",
78 "couldnt connect to socket", 79 "couldnt connect to socket",
79 QMessageBox::NoIcon, 80 QMessageBox::NoIcon,
80 QMessageBox::Ok, 81 QMessageBox::Ok,
81 QMessageBox::NoButton, 82 QMessageBox::NoButton,
82 QMessageBox::NoButton); 83 QMessageBox::NoButton);
83 mb->exec(); 84 mb->exec();
84 perror("LearnTab::GetRemotes"); 85 perror("LearnTab::GetRemotes");
85 return NULL; 86 return NULL;
86 } 87 }
87 88
88 if(::connect(fd,(struct sockaddr *) &addr, sizeof(addr) ) == -1) 89 if(::connect(fd,(struct sockaddr *) &addr, sizeof(addr) ) == -1)
89 { 90 {
90 QMessageBox *mb = new QMessageBox("Error!", 91 QMessageBox *mb = new QMessageBox("Error!",
91 "couldnt connect to socket", 92 "couldnt connect to socket",
92 QMessageBox::NoIcon, 93 QMessageBox::NoIcon,
93 QMessageBox::Ok, 94 QMessageBox::Ok,
94 QMessageBox::NoButton, 95 QMessageBox::NoButton,
95 QMessageBox::NoButton); 96 QMessageBox::NoButton);
96 mb->exec(); 97 mb->exec();
97 perror("LearnTab::GetRemotes"); 98 perror("LearnTab::GetRemotes");
98 return NULL; 99 return NULL;
99 } 100 }
100 101
101 write(fd, write_buffer, strlen(write_buffer)); 102 write(fd, write_buffer, strlen(write_buffer));
102 103
103 for(i=0; i<5; i++) 104 for(i=0; i<5; i++)
104 { 105 {
105 printf("%d\n", i); 106 printf("%d\n", i);
106 readbuffer = readPacket(); 107 readbuffer = readPacket();
107 printf("%s", readbuffer); 108 printf("%s", readbuffer);
108 printf("%d\n", i); 109 printf("%d\n", i);
109 } 110 }
110 111
111 numlines = atoi(readbuffer); 112 numlines = atoi(readbuffer);
112 113
113 for(i=0; i<numlines; i++) 114 for(i=0; i<numlines; i++)
114 { 115 {
115 list+=readPacket(); 116 list+=readPacket();
116 } 117 }
117 118
118 if(strcasecmp(readPacket(), "END") != 0) 119 if(strcasecmp(readPacket(), "END") != 0)
119 { 120 {
120 QMessageBox *mb = new QMessageBox("Error!", 121 QMessageBox *mb = new QMessageBox("Error!",
121 "bad packet", 122 "bad packet",
122 QMessageBox::NoIcon, 123 QMessageBox::NoIcon,
123 QMessageBox::Ok, 124 QMessageBox::Ok,
124 QMessageBox::NoButton, 125 QMessageBox::NoButton,
125 QMessageBox::NoButton); 126 QMessageBox::NoButton);
126 mb->exec(); 127 mb->exec();
127 perror("LearnTab::GetRemotes"); 128 perror("LearnTab::GetRemotes");
128 return NULL; 129 return NULL;
129 } 130 }
130 131
131 ::close(fd); 132 ::close(fd);
132 return list; 133 return list;
133} 134}
134 135
135//this function was ripped for rc.c in xrc, it is available here: http://www.lirc.org/software.html 136//this function was ripped for rc.c in xrc, it is available here: http://www.lirc.org/software.html
136const char *LearnTab::readPacket() 137const char *LearnTab::readPacket()
137{ 138{
138 static char buffer[PACKET_SIZE+1]=""; 139 static char buffer[PACKET_SIZE+1]="";
139 char *end; 140 char *end;
140 static int ptr=0,end_len=0; 141 static int ptr=0,end_len=0;
141 ssize_t ret; 142 ssize_t ret;
142 timeout = 0; 143 timeout = 0;
143 144
144 if(ptr>0) 145 if(ptr>0)
145 { 146 {
146 memmove(buffer,buffer+ptr,strlen(buffer+ptr)+1); 147 memmove(buffer,buffer+ptr,strlen(buffer+ptr)+1);
147 ptr=strlen(buffer); 148 ptr=strlen(buffer);
148 end=strchr(buffer,'\n'); 149 end=strchr(buffer,'\n');
149 } 150 }
150 else 151 else
151 { 152 {
152 end=NULL; 153 end=NULL;
153 } 154 }
154 alarm(TIMEOUT); 155 alarm(TIMEOUT);
155 while(end==NULL) 156 while(end==NULL)
156 { 157 {
157 if(PACKET_SIZE<=ptr) 158 if(PACKET_SIZE<=ptr)
158 { 159 {
159 fprintf(stderr,"bad packet\n"); 160 fprintf(stderr,"bad packet\n");
160 ptr=0; 161 ptr=0;
161 return(NULL); 162 return(NULL);
162 } 163 }
163 ret=read(fd,buffer+ptr,PACKET_SIZE-ptr); 164 ret=read(fd,buffer+ptr,PACKET_SIZE-ptr);
164 165
165 if(ret<=0 || timeout) 166 if(ret<=0 || timeout)
166 { 167 {
167 if(timeout) 168 if(timeout)
168 { 169 {
169 fprintf(stderr,"timeout\n"); 170 fprintf(stderr,"timeout\n");
170 } 171 }
171 else 172 else
172 { 173 {
173 alarm(0); 174 alarm(0);
174 } 175 }
175 ptr=0; 176 ptr=0;
176 return(NULL); 177 return(NULL);
177 } 178 }
178 buffer[ptr+ret]=0; 179 buffer[ptr+ret]=0;
179 ptr=strlen(buffer); 180 ptr=strlen(buffer);
180 end=strchr(buffer,'\n'); 181 end=strchr(buffer,'\n');
181 } 182 }
182 alarm(0);timeout=0; 183 alarm(0);timeout=0;
183 184
184 end[0]=0; 185 end[0]=0;
185 ptr=strlen(buffer)+1; 186 ptr=strlen(buffer)+1;
186//# ifdef DEBUG 187 //# ifdef DEBUG
187 //printf("buffer: -%s-\n",buffer); 188 //printf("buffer: -%s-\n",buffer);
188//# endif 189 //# endif
189 return(buffer); 190 return(buffer);
190} 191}
191 192