summaryrefslogtreecommitdiff
path: root/core
authorllornkcor <llornkcor>2002-05-19 17:00:41 (UTC)
committer llornkcor <llornkcor>2002-05-19 17:00:41 (UTC)
commit61a917bec9006516115d94be8c49acadf4eba222 (patch) (unidiff)
tree5cf91393455b95749978f28ab3f2a251c4c08b07 /core
parent602ff2a6f588584bf47afa6faae08ce60b49047f (diff)
downloadopie-61a917bec9006516115d94be8c49acadf4eba222.zip
opie-61a917bec9006516115d94be8c49acadf4eba222.tar.gz
opie-61a917bec9006516115d94be8c49acadf4eba222.tar.bz2
changed keypress stuff, and added a secret key/button for zaurus, available from config [Defaults] toggleKey = 4148 (or the int for the wanted keypress), ipaqs is 4096=KeyEscape -record button
Diffstat (limited to 'core') (more/less context) (show whitespace changes)
-rw-r--r--core/applets/vmemo/vmemo.cpp68
-rw-r--r--core/applets/vmemo/vmemo.h5
2 files changed, 39 insertions, 34 deletions
diff --git a/core/applets/vmemo/vmemo.cpp b/core/applets/vmemo/vmemo.cpp
index e14d532..7e91ef0 100644
--- a/core/applets/vmemo/vmemo.cpp
+++ b/core/applets/vmemo/vmemo.cpp
@@ -202,23 +202,33 @@ VMemo::VMemo( QWidget *parent, const char *_name )
202 202
203 recording = FALSE; 203 recording = FALSE;
204 204
205 struct utsname name; /* check for embedix kernel running on the zaurus*/ 205 struct utsname name; /* check for embedix kernel running on the zaurus*/
206 if (uname(&name) != -1) { 206 if (uname(&name) != -1) {
207 QString release=name.release; 207 QString release=name.release;
208 if(release.find("embedix",0,TRUE) !=-1) 208 Config vmCfg("VMemo");
209 vmCfg.setGroup("Defaults");
210
211 if(release.find("embedix",0,TRUE) !=-1) {
212 int toggleKey = vmCfg.readNumEntry("toggleKey", -1);
209 systemZaurus=TRUE; 213 systemZaurus=TRUE;
210 else { 214 } else {
215 int toggleKey = vmCfg.readNumEntry("toggleKey", 4096);
216//default key for ipaq record button is Key_Escape = 4096
211 systemZaurus=FALSE; 217 systemZaurus=FALSE;
218 }
219
212 myChannel = new QCopChannel( "QPE/VMemo", this ); 220 myChannel = new QCopChannel( "QPE/VMemo", this );
213 connect( myChannel, SIGNAL(received(const QCString&, const QByteArray&)), 221 connect( myChannel, SIGNAL(received(const QCString&, const QByteArray&)),
214 this, SLOT(receive(const QCString&, const QByteArray&)) ); 222 this, SLOT(receive(const QCString&, const QByteArray&)) );
215 223
216// // Register the REC key press, for ipaq only 224 if( toggleKey != -1 ) {
217 QCopEnvelope e("QPE/Desktop", "keyRegister(int key, QString channel, QString message)"); 225 QCopEnvelope e("QPE/Desktop", "keyRegister(int key, QString channel, QString message)");
218 e << 4096; 226// e << 4096; // Key_Escape
227// e << Key_F5; //4148
228 e << toggleKey;
219 e << QString("QPE/VMemo"); 229 e << QString("QPE/VMemo");
220 e << QString("toggleRecord()"); 230 e << QString("toggleRecord()");
221 } 231 }
222 } 232 }
223} 233}
224 234
@@ -227,42 +237,42 @@ VMemo::~VMemo()
227} 237}
228 238
229void VMemo::receive( const QCString &msg, const QByteArray &data ) 239void VMemo::receive( const QCString &msg, const QByteArray &data )
230{ 240{
231 QDataStream stream( data, IO_ReadOnly ); 241 QDataStream stream( data, IO_ReadOnly );
232 if (msg == "toggleRecord()") { 242 if (msg == "toggleRecord()") {
233 if (recording) 243 if (recording) {
234 mouseReleaseEvent(NULL); 244 fromToggle = TRUE;
235 else 245 stopRecording();
236 mousePressEvent(NULL); 246 } else {
247 fromToggle = TRUE;
248 startRecording();
249 }
237 } 250 }
238} 251}
239 252
240void VMemo::paintEvent( QPaintEvent* ) 253void VMemo::paintEvent( QPaintEvent* )
241{ 254{
242 QPainter p(this); 255 QPainter p(this);
243 p.drawPixmap( 0, 1,( const char** ) vmemo_xpm ); 256 p.drawPixmap( 0, 1,( const char** ) vmemo_xpm );
244} 257}
245 258
246void VMemo::mousePressEvent( QMouseEvent *me ) 259void VMemo::mousePressEvent( QMouseEvent * )
247{ 260{
248 // just to be safe 261 startRecording();
249 if (recording) {
250 recording = FALSE;
251 return;
252 } 262 }
253 263
254 /* 264void VMemo::mouseReleaseEvent( QMouseEvent * )
255 No mousePress/mouseRelease recording on the iPAQ. The REC button on the iPAQ calls these functions 265{
256 mousePressEvent and mouseReleaseEvent with a NULL parameter. 266 stopRecording();
257 */ 267}
258// #if defined(QT_QWS_IPAQ) || defined(QT_QWS_EBX) 268
259// if (!systemZaurus ) 269bool VMemo::startRecording() {
260// return;
261// #endif
262 270
271 if ( recording)
272 return FALSE;;
263 Config config( "Sound" ); 273 Config config( "Sound" );
264 config.setGroup( "System" ); 274 config.setGroup( "System" );
265 useAlerts = config.readBoolEntry("Alert"); 275 useAlerts = config.readBoolEntry("Alert");
266 276
267// if(useAlerts) 277// if(useAlerts)
268// QMessageBox::message("VMemo","Really Record?");//) ==1) 278// QMessageBox::message("VMemo","Really Record?");//) ==1)
@@ -273,13 +283,13 @@ void VMemo::mousePressEvent( QMouseEvent *me )
273// } 283// }
274 qDebug("Start recording"); 284 qDebug("Start recording");
275 recording = TRUE; 285 recording = TRUE;
276 if (openDSP() == -1) { 286 if (openDSP() == -1) {
277 QMessageBox::critical(0, "VMemo", "Could not open dsp device.\n"+errorMsg, "Abort"); 287 QMessageBox::critical(0, "VMemo", "Could not open dsp device.\n"+errorMsg, "Abort");
278 recording = FALSE; 288 recording = FALSE;
279 return; 289 return FALSE;
280 } 290 }
281 291
282 Config vmCfg("VMemo"); 292 Config vmCfg("VMemo");
283 vmCfg.setGroup("Defaults"); 293 vmCfg.setGroup("Defaults");
284 294
285 QDateTime dt = QDateTime::currentDateTime(); 295 QDateTime dt = QDateTime::currentDateTime();
@@ -294,18 +304,12 @@ void VMemo::mousePressEvent( QMouseEvent *me )
294 s=fileName.find(':'); 304 s=fileName.find(':');
295 if(s) 305 if(s)
296 fileName=fileName.right(fileName.length()-s-2); 306 fileName=fileName.right(fileName.length()-s-2);
297 qDebug("filename will be "+fileName); 307 qDebug("filename will be "+fileName);
298 if( fileName.right(1).find('/') == -1) 308 if( fileName.right(1).find('/') == -1)
299 fileName+="/"; 309 fileName+="/";
300
301// if(systemZaurus)
302// fileName=vmCfg.readEntry("Dir", "/mnt/cf/"); // zaurus does not have /mnt/ramfs
303// else
304// fileName=vmCfg.readEntry("Dir", "/mnt/ramfs/");
305
306 fName = "vm_"+ dt.toString()+ ".wav"; 310 fName = "vm_"+ dt.toString()+ ".wav";
307 311
308 fileName+=fName; 312 fileName+=fName;
309 qDebug("filename is "+fileName); 313 qDebug("filename is "+fileName);
310 // No spaces in the filename 314 // No spaces in the filename
311 fileName.replace(QRegExp("'"),""); 315 fileName.replace(QRegExp("'"),"");
@@ -315,13 +319,13 @@ void VMemo::mousePressEvent( QMouseEvent *me )
315 319
316 if(openWAV(fileName.latin1()) == -1) { 320 if(openWAV(fileName.latin1()) == -1) {
317 QString err("Could not open the output file\n"); 321 QString err("Could not open the output file\n");
318 err += fileName; 322 err += fileName;
319 QMessageBox::critical(0, "VMemo", err, "Abort"); 323 QMessageBox::critical(0, "VMemo", err, "Abort");
320 close(dsp); 324 close(dsp);
321 return; 325 return FALSE;
322 } 326 }
323 327
324 QArray<int> cats(1); 328 QArray<int> cats(1);
325 cats[0] = vmCfg.readNumEntry("Category", 0); 329 cats[0] = vmCfg.readNumEntry("Category", 0);
326 330
327 QString dlName("vm_"); 331 QString dlName("vm_");
@@ -331,16 +335,16 @@ void VMemo::mousePressEvent( QMouseEvent *me )
331 l.setName(dlName); 335 l.setName(dlName);
332 l.setType("audio/x-wav"); 336 l.setType("audio/x-wav");
333 l.setCategories(cats); 337 l.setCategories(cats);
334 l.writeLink(); 338 l.writeLink();
335 339
336 record(); 340 record();
341 return TRUE;
337} 342}
338 343
339void VMemo::mouseReleaseEvent( QMouseEvent * ) 344void VMemo::stopRecording() {
340{
341 recording = FALSE; 345 recording = FALSE;
342} 346}
343 347
344int VMemo::openDSP() 348int VMemo::openDSP()
345{ 349{
346 Config cfg("Sound"); 350 Config cfg("Sound");
@@ -476,13 +480,13 @@ void VMemo::record(void)
476// fflush(stdout); 480// fflush(stdout);
477 } 481 }
478 482
479 qApp->processEvents(); 483 qApp->processEvents();
480 } 484 }
481 485
482 } else { 486 } else { // this is specific for ipaqs that do not have 8 bit capabilities
483 487
484 signed short sound[512], monoBuffer[512]; 488 signed short sound[512], monoBuffer[512];
485 489
486 while(recording) { 490 while(recording) {
487 result = read(dsp, sound, 512); // 8192 491 result = read(dsp, sound, 512); // 8192
488 write(wav, sound, result); 492 write(wav, sound, result);
diff --git a/core/applets/vmemo/vmemo.h b/core/applets/vmemo/vmemo.h
index 3972877..701663f 100644
--- a/core/applets/vmemo/vmemo.h
+++ b/core/applets/vmemo/vmemo.h
@@ -34,20 +34,21 @@ public:
34 34
35public slots: 35public slots:
36 void record(); 36 void record();
37 void mousePressEvent( QMouseEvent * ); 37 void mousePressEvent( QMouseEvent * );
38 void mouseReleaseEvent( QMouseEvent * ); 38 void mouseReleaseEvent( QMouseEvent * );
39 void receive( const QCString &msg, const QByteArray &data ); 39 void receive( const QCString &msg, const QByteArray &data );
40 40 bool startRecording();
41 void stopRecording();
41private: 42private:
42 bool useAlerts; 43 bool useAlerts;
43 void paintEvent( QPaintEvent* ); 44 void paintEvent( QPaintEvent* );
44 45
45 int openDSP(); 46 int openDSP();
46 int openWAV(const char *filename); 47 int openWAV(const char *filename);
47 48 bool fromToggle;
48 QPixmap vmemoPixmap; 49 QPixmap vmemoPixmap;
49 QCopChannel *myChannel; 50 QCopChannel *myChannel;
50 bool systemZaurus; 51 bool systemZaurus;
51 int dsp, wav, rate, speed, channels, format, resolution; 52 int dsp, wav, rate, speed, channels, format, resolution;
52 bool recording; 53 bool recording;
53}; 54};