summaryrefslogtreecommitdiff
path: root/core/applets/vmemo/vmemo.cpp
Unidiff
Diffstat (limited to 'core/applets/vmemo/vmemo.cpp') (more/less context) (show whitespace changes)
-rw-r--r--core/applets/vmemo/vmemo.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/core/applets/vmemo/vmemo.cpp b/core/applets/vmemo/vmemo.cpp
index 07ef15c..d5808b7 100644
--- a/core/applets/vmemo/vmemo.cpp
+++ b/core/applets/vmemo/vmemo.cpp
@@ -125,226 +125,228 @@ static char * vmemo_xpm[] = {
125 "g c #8A8A8F", 125 "g c #8A8A8F",
126 "h c #6B6B6E", 126 "h c #6B6B6E",
127 "i c #ADADB2", 127 "i c #ADADB2",
128 "j c #828289", 128 "j c #828289",
129 "k c #3E3E41", 129 "k c #3E3E41",
130 "l c #CFCFD7", 130 "l c #CFCFD7",
131 "m c #4C4C50", 131 "m c #4C4C50",
132 "n c #000000", 132 "n c #000000",
133 "o c #66666A", 133 "o c #66666A",
134 "p c #505054", 134 "p c #505054",
135 "q c #838388", 135 "q c #838388",
136 "r c #A1A1A7", 136 "r c #A1A1A7",
137 "s c #A9A9AE", 137 "s c #A9A9AE",
138 "t c #A8A8B0", 138 "t c #A8A8B0",
139 "u c #5E5E63", 139 "u c #5E5E63",
140 "v c #3A3A3E", 140 "v c #3A3A3E",
141 "w c #BDBDC6", 141 "w c #BDBDC6",
142 "x c #59595E", 142 "x c #59595E",
143 "y c #76767C", 143 "y c #76767C",
144 "z c #373738", 144 "z c #373738",
145 "A c #717174", 145 "A c #717174",
146 "B c #727278", 146 "B c #727278",
147 "C c #1C1C1E", 147 "C c #1C1C1E",
148 "D c #3C3C3F", 148 "D c #3C3C3F",
149 "E c #ADADB6", 149 "E c #ADADB6",
150 "F c #54555A", 150 "F c #54555A",
151 "G c #8B8C94", 151 "G c #8B8C94",
152 "H c #5A5A5F", 152 "H c #5A5A5F",
153 "I c #BBBBC3", 153 "I c #BBBBC3",
154 "J c #C4C4CB", 154 "J c #C4C4CB",
155 "K c #909098", 155 "K c #909098",
156 "L c #737379", 156 "L c #737379",
157 "M c #343437", 157 "M c #343437",
158 "N c #8F8F98", 158 "N c #8F8F98",
159 "O c #000407", 159 "O c #000407",
160 "P c #2D3137", 160 "P c #2D3137",
161 "Q c #B0B1BC", 161 "Q c #B0B1BC",
162 "R c #3B3C40", 162 "R c #3B3C40",
163 "S c #6E6E74", 163 "S c #6E6E74",
164 "T c #95959C", 164 "T c #95959C",
165 "U c #74747A", 165 "U c #74747A",
166 "V c #1D1D1E", 166 "V c #1D1D1E",
167 "W c #91929A", 167 "W c #91929A",
168 "X c #42444A", 168 "X c #42444A",
169 "Y c #22282E", 169 "Y c #22282E",
170 "Z c #B0B2BC", 170 "Z c #B0B2BC",
171 "` c #898A90", 171 "` c #898A90",
172 " . c #65656A", 172 " . c #65656A",
173 ".. c #999AA2", 173 ".. c #999AA2",
174 "+. c #52535A", 174 "+. c #52535A",
175 "@. c #151B21", 175 "@. c #151B21",
176 "#. c #515257", 176 "#. c #515257",
177 "$. c #B5B5BE", 177 "$. c #B5B5BE",
178 "%. c #616167", 178 "%. c #616167",
179 "&. c #1A1D22", 179 "&. c #1A1D22",
180 "*. c #000713", 180 "*. c #000713",
181 "=. c #1F1F21", 181 "=. c #1F1F21",
182 " ", 182 " ",
183 " . + @ # ", 183 " . + @ # ",
184 " $ % & * = - ", 184 " $ % & * = - ",
185 " ; > , ' ) ! ~ ", 185 " ; > , ' ) ! ~ ",
186 " { ] ^ / ( _ : ", 186 " { ] ^ / ( _ : ",
187 " < [ } | 1 2 3 ", 187 " < [ } | 1 2 3 ",
188 " 4 5 6 7 8 9 0 a b c ", 188 " 4 5 6 7 8 9 0 a b c ",
189 " d e f g h i j 3 k l m n ", 189 " d e f g h i j 3 k l m n ",
190 " o p q r s t u v w n ", 190 " o p q r s t u v w n ",
191 " o x y z A B C D E n ", 191 " o x y z A B C D E n ",
192 " F G H I J K L M N O ", 192 " F G H I J K L M N O ",
193 " P Q R S T U V W X ", 193 " P Q R S T U V W X ",
194 " Y Z ` b ...+. ", 194 " Y Z ` b ...+. ",
195 " @.#.$.%.&. ", 195 " @.#.$.%.&. ",
196 " *.B =. ", 196 " *.B =. ",
197 " n n n n n n n n n "}; 197 " n n n n n n n n n "};
198 198
199 199
200using namespace Opie::Ui; 200using namespace Opie::Ui;
201VMemo::VMemo( QWidget *parent, const char *_name ) 201VMemo::VMemo( QWidget *parent, const char *_name )
202 : QWidget( parent, _name ) { 202 : QWidget( parent, _name ) {
203 setFixedHeight( 18 ); 203 setFixedHeight( 18 );
204 setFixedWidth( 14 ); 204 setFixedWidth( 14 );
205 205
206 t_timer = new QTimer( this ); 206 t_timer = new QTimer( this );
207 connect( t_timer, SIGNAL( timeout() ), SLOT( timerBreak() ) ); 207 connect( t_timer, SIGNAL( timeout() ), SLOT( timerBreak() ) );
208 208
209 Config vmCfg("Vmemo"); 209 Config vmCfg("Vmemo");
210 vmCfg.setGroup("Defaults"); 210 vmCfg.setGroup("Defaults");
211 int toggleKey = setToggleButton(vmCfg.readNumEntry("toggleKey", -1)); 211 int toggleKey = setToggleButton(vmCfg.readNumEntry("toggleKey", -1));
212 useADPCM = vmCfg.readBoolEntry("use_ADPCM", 0); 212 useADPCM = vmCfg.readBoolEntry("use_ADPCM", 0);
213 213
214 odebug << "toggleKey " << toggleKey << "" << oendl; 214 odebug << "toggleKey " << toggleKey << "" << oendl;
215 215
216// if ( QFile::exists ( "/dev/sharp_buz" ) || QFile::exists ( "/dev/sharp_led" )) 216// if ( QFile::exists ( "/dev/sharp_buz" ) || QFile::exists ( "/dev/sharp_led" ))
217// systemZaurus=TRUE; 217// systemZaurus=TRUE;
218// else 218// else
219 systemZaurus = FALSE; 219 systemZaurus = FALSE;
220 220
221// myChannel = new QCopChannel( "QPE/VMemo", this );
221 myChannel = new QCopChannel( "QPE/VMemo", this ); 222 myChannel = new QCopChannel( "QPE/VMemo", this );
223
222 connect( myChannel, SIGNAL(received(const QCString&,const QByteArray&)), 224 connect( myChannel, SIGNAL(received(const QCString&,const QByteArray&)),
223 this, SLOT(receive(const QCString&,const QByteArray&)) ); 225 this, SLOT(receive(const QCString&,const QByteArray&)) );
224 226
227
225 if( toggleKey != -1 ) { 228 if( toggleKey != -1 ) {
226 odebug << "Register key " << toggleKey << "" << oendl; 229 odebug << "Register key " << toggleKey << "" << oendl;
227 QCopEnvelope e("QPE/Launcher", "keyRegister(int,QCString,QCString)"); 230 QCopEnvelope e("QPE/Launcher", "keyRegister(int,QCString,QCString)");
228 // e << 4096; // Key_Escape 231 // e << 4096; // Key_Escape
229 // e << Key_F5; //4148 232 // e << Key_F5; //4148
230 e << toggleKey; 233 e << toggleKey;
231 e << QString("QPE/VMemo"); 234 e << QCString("QPE/VMemo");
232 e << QString("toggleRecord()"); 235 e << QCString("toggleRecord()");
233 } 236 }
234 if(toggleKey == 1) 237 if(toggleKey == 1)
235 usingIcon = TRUE; 238 usingIcon = TRUE;
236 else 239 else
237 usingIcon = FALSE; 240 usingIcon = FALSE;
238// if( vmCfg.readNumEntry("hideIcon",0) == 1) 241// if( vmCfg.readNumEntry("hideIcon",0) == 1)
239 if (!usingIcon) 242 if (!usingIcon)
240 hide(); 243 hide();
241 recording = FALSE; 244 recording = FALSE;
242 // } 245 // }
243} 246}
244 247
245VMemo::~VMemo() { 248VMemo::~VMemo() {
246} 249}
247 250
248int VMemo::position() 251int VMemo::position()
249{ 252{
250 return 6; 253 return 6;
251} 254}
252 255
253void VMemo::receive( const QCString &msg, const QByteArray &data ) { 256void VMemo::receive( const QCString &msg, const QByteArray &data ) {
254 odebug << "Vmemo receive" << oendl;
255 QDataStream stream( data, IO_ReadOnly ); 257 QDataStream stream( data, IO_ReadOnly );
256 258
257 if (msg == "toggleRecord()") { 259 if (msg == "toggleRecord()") {
258 if (recording) { 260 if (recording) {
259 fromToggle = TRUE; 261 fromToggle = TRUE;
260 stopRecording(); 262 stopRecording();
261 } else { 263 } else {
262 fromToggle = TRUE; 264 fromToggle = TRUE;
263 startRecording(); 265 startRecording();
264 } 266 }
265 } 267 }
266} 268}
267 269
268void VMemo::paintEvent( QPaintEvent* ) { 270void VMemo::paintEvent( QPaintEvent* ) {
269 QPainter p(this); 271 QPainter p(this);
270 p.drawPixmap( 0, 1,( const char** ) vmemo_xpm ); 272 p.drawPixmap( 0, 1,( const char** ) vmemo_xpm );
271} 273}
272 274
273void VMemo::mousePressEvent( QMouseEvent * /*me*/) { 275void VMemo::mousePressEvent( QMouseEvent * /*me*/) {
274 /* No mousePress/mouseRelease recording on the iPAQ. The REC button on the iPAQ calls these functions 276 /* No mousePress/mouseRelease recording on the iPAQ. The REC button on the iPAQ calls these functions
275 mousePressEvent and mouseReleaseEvent with a NULL parameter. */ 277 mousePressEvent and mouseReleaseEvent with a NULL parameter. */
276 278
277// if (!systemZaurus && me != NULL) 279// if (!systemZaurus && me != NULL)
278// return; 280// return;
279// } 281// }
280 282
281 if(!recording) 283 if(!recording)
282 startRecording(); 284 startRecording();
283 else 285 else
284 stopRecording(); 286 stopRecording();
285} 287}
286 288
287void VMemo::mouseReleaseEvent( QMouseEvent * ) { 289void VMemo::mouseReleaseEvent( QMouseEvent * ) {
288} 290}
289 291
290bool VMemo::startRecording() { 292bool VMemo::startRecording() {
291 Config config( "Vmemo" ); 293 Config config( "Vmemo" );
292 config.setGroup( "System" ); 294 config.setGroup( "System" );
293 295
294 useAlerts = config.readBoolEntry("Alert",1); 296 useAlerts = config.readBoolEntry("Alert",1);
295 if(useAlerts) { 297 if(useAlerts) {
296 298
297 msgLabel = new QLabel( 0, "alertLabel" ); 299 msgLabel = new QLabel( 0, "alertLabel" );
298 msgLabel->setText("<B><P><font size=+2>VMemo-Recording</font></B>"); 300 msgLabel->setText("<B><P><font size=+2>VMemo-Recording</font></B>");
299 msgLabel->show(); 301 msgLabel->show();
300 } 302 }
301 303
302 odebug << "Start recording engines" << oendl; 304 odebug << "Start recording engines" << oendl;
303 recording = TRUE; 305 recording = TRUE;
304 306
305 if (openDSP() == -1) { 307 if (openDSP() == -1) {
306 recording = FALSE; 308 recording = FALSE;
307 return FALSE; 309 return FALSE;
308 } 310 }
309 311
310 config.setGroup("Defaults"); 312 config.setGroup("Defaults");
311 313
312 date = TimeString::dateString( QDateTime::currentDateTime(),false,true); 314 date = TimeString::dateString( QDateTime::currentDateTime(),false,true);
313 date.replace(QRegExp("'"),""); 315 date.replace(QRegExp("'"),"");
314 date.replace(QRegExp(" "),"_"); 316 date.replace(QRegExp(" "),"_");
315 date.replace(QRegExp(":"),"-"); 317 date.replace(QRegExp(":"),"-");
316 date.replace(QRegExp(","),""); 318 date.replace(QRegExp(","),"");
317 319
318 QString fName; 320 QString fName;
319 config.setGroup( "System" ); 321 config.setGroup( "System" );
320 fName = QPEApplication::documentDir() ; 322 fName = QPEApplication::documentDir() ;
321 fileName = config.readEntry("RecLocation", fName); 323 fileName = config.readEntry("RecLocation", fName);
322 324
323 int s; 325 int s;
324 s=fileName.find(':'); 326 s=fileName.find(':');
325 if(s) 327 if(s)
326 fileName=fileName.right(fileName.length()-s-2); 328 fileName=fileName.right(fileName.length()-s-2);
327 odebug << "pathname will be "+fileName << oendl; 329 odebug << "pathname will be "+fileName << oendl;
328 330
329 if( fileName.left(1).find('/') == -1) 331 if( fileName.left(1).find('/') == -1)
330 fileName="/"+fileName; 332 fileName="/"+fileName;
331 if( fileName.right(1).find('/') == -1) 333 if( fileName.right(1).find('/') == -1)
332 fileName+="/"; 334 fileName+="/";
333 fName = "vm_"+ date + ".wav"; 335 fName = "vm_"+ date + ".wav";
334 336
335 fileName+=fName; 337 fileName+=fName;
336 odebug << "filename is " + fileName << oendl; 338 odebug << "filename is " + fileName << oendl;
337// open tmp file here 339// open tmp file here
338 char *pointer; 340 char *pointer;
339 pointer=tmpnam(NULL); 341 pointer=tmpnam(NULL);
340 odebug << "Opening tmp file " << pointer << "" << oendl; 342 odebug << "Opening tmp file " << pointer << "" << oendl;
341 343
342 if(openWAV(pointer ) == -1) { 344 if(openWAV(pointer ) == -1) {
343 345
344 QString err("Could not open the temp file\n"); 346 QString err("Could not open the temp file\n");
345 err += fileName; 347 err += fileName;
346 QMessageBox::critical(0, "vmemo", err, "Abort"); 348 QMessageBox::critical(0, "vmemo", err, "Abort");
347 ::close(dsp); 349 ::close(dsp);
348 return FALSE; 350 return FALSE;
349 } 351 }
350 if( record() ) { 352 if( record() ) {
@@ -572,98 +574,98 @@ bool VMemo::record() {
572 qApp->processEvents(); 574 qApp->processEvents();
573 } 575 }
574 // odebug << "result is " << result << oendl; 576 // odebug << "result is " << result << oendl;
575 } 577 }
576 odebug << "file has length of " << length << " lasting " << (( length / speed) / channels) / 2 << " seconds" << oendl; 578 odebug << "file has length of " << length << " lasting " << (( length / speed) / channels) / 2 << " seconds" << oendl;
577 579
578 value = length + 36; 580 value = length + 36;
579 581
580 lseek(wav, 4, SEEK_SET); 582 lseek(wav, 4, SEEK_SET);
581 write(wav, &value, 4); 583 write(wav, &value, 4);
582 lseek(wav, 40, SEEK_SET); 584 lseek(wav, 40, SEEK_SET);
583 585
584 write(wav, &length, 4); 586 write(wav, &length, 4);
585 587
586 track.close(); 588 track.close();
587 odebug << "Track closed" << oendl; 589 odebug << "Track closed" << oendl;
588 590
589 if( ioctl( dsp, SNDCTL_DSP_RESET,0) == -1) 591 if( ioctl( dsp, SNDCTL_DSP_RESET,0) == -1)
590 perror("ioctl(\"SNDCTL_DSP_RESET\")"); 592 perror("ioctl(\"SNDCTL_DSP_RESET\")");
591 593
592 ::close(dsp); 594 ::close(dsp);
593 595
594 Config cfgO("OpieRec"); 596 Config cfgO("OpieRec");
595 cfgO.setGroup("Sounds"); 597 cfgO.setGroup("Sounds");
596 598
597 int nFiles = cfgO.readNumEntry( "NumberofFiles",0); 599 int nFiles = cfgO.readNumEntry( "NumberofFiles",0);
598 600
599 QString currentFileName = fileName; 601 QString currentFileName = fileName;
600 QString currentFile = "vm_"+ date; 602 QString currentFile = "vm_"+ date;
601 603
602 float numberOfRecordedSeconds = (float) length / (float)speed * (float)2; 604 float numberOfRecordedSeconds = (float) length / (float)speed * (float)2;
603 605
604 cfgO.writeEntry( "NumberofFiles", nFiles + 1); 606 cfgO.writeEntry( "NumberofFiles", nFiles + 1);
605 cfgO.writeEntry( QString::number( nFiles + 1), currentFile); 607 cfgO.writeEntry( QString::number( nFiles + 1), currentFile);
606 cfgO.writeEntry( currentFile, currentFileName); 608 cfgO.writeEntry( currentFile, currentFileName);
607 609
608 QString time; 610 QString time;
609 time.sprintf("%.2f", numberOfRecordedSeconds); 611 time.sprintf("%.2f", numberOfRecordedSeconds);
610 cfgO.writeEntry( currentFileName, time ); 612 cfgO.writeEntry( currentFileName, time );
611 // odebug << "writing config numberOfRecordedSeconds "+time << oendl; 613 // odebug << "writing config numberOfRecordedSeconds "+time << oendl;
612 614
613 cfgO.write(); 615 cfgO.write();
614 616
615 odebug << "done recording "+fileName << oendl; 617 odebug << "done recording "+fileName << oendl;
616 618
617 Config cfg("qpe"); 619 Config cfg("qpe");
618 cfg.setGroup("Volume"); 620 cfg.setGroup("Volume");
619 QString foo = cfg.readEntry("Mute","TRUE"); 621 QString foo = cfg.readEntry("Mute","TRUE");
620 if(foo.find("TRUE",0,TRUE) != -1) 622 if(foo.find("TRUE",0,TRUE) != -1)
621 QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << TRUE; //mute 623 QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << TRUE; //mute
622 return TRUE; 624 return TRUE;
623} 625}
624 626
625int VMemo::setToggleButton(int tog) { 627int VMemo::setToggleButton(int tog) {
626 628
627 for( int i=0; i < 10;i++) { 629 for( int i=0; i < 10;i++) {
628 switch (tog) { 630 switch (tog) {
629 case 0: 631 case 0:
630 return -1; 632 return -1;
631 break; 633 break;
632 case 1: 634 case 1:
633 return 0; 635 return 0;
634 break; 636 break;
635 case 2: 637 case 2:
636 return Key_F24; //was Escape 638 return Key_F24; //was Escape
637 break; 639 break;
638 case 3: 640 case 3:
639 return Key_Space; 641 return Key_Space;
640 break; 642 break;
641 case 4: 643 case 4:
642 return Key_F12; 644 return Key_F12;
643 break; 645 break;
644 case 5: 646 case 5:
645 return Key_F9; 647 return Key_F9;
646 break; 648 break;
647 case 6: 649 case 6:
648 return Key_F10; 650 return Key_F10;
649 break; 651 break;
650 case 7: 652 case 7:
651 return Key_F11; 653 return Key_F11;
652 break; 654 break;
653 case 8: 655 case 8:
654 return Key_F13; 656 return Key_F13;
655 break; 657 break;
656 }; 658 };
657 } 659 }
658 return -1; 660 return -1;
659} 661}
660 662
661void VMemo::timerBreak() { 663void VMemo::timerBreak() {
662 //stop 664 //stop
663 stopRecording(); 665 stopRecording();
664 QMessageBox::message("Vmemo","Vmemo recording has ended"); 666 QMessageBox::message("Vmemo","Vmemo recording has ended");
665} 667}
666 668
667 669
668EXPORT_OPIE_APPLET_v1( VMemo ) 670//EXPORT_OPIE_APPLET_v1( VMemo )
669 671