author | llornkcor <llornkcor> | 2004-04-22 08:33:56 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2004-04-22 08:33:56 (UTC) |
commit | 731e459a8621fb359ca39ccf4d11bffcc024dcfa (patch) (side-by-side diff) | |
tree | 0b6e6ab404dfa323e7b714f3926996f0bf82a2d1 /core | |
parent | a0952719afc122e5a16d81253a9de86ee7e608b8 (diff) | |
download | opie-731e459a8621fb359ca39ccf4d11bffcc024dcfa.zip opie-731e459a8621fb359ca39ccf4d11bffcc024dcfa.tar.gz opie-731e459a8621fb359ca39ccf4d11bffcc024dcfa.tar.bz2 |
make buffersize user config BufferSize, default 1024, remove some mishmash
-rw-r--r-- | core/applets/vmemo/vmemo.cpp | 42 |
1 files changed, 23 insertions, 19 deletions
diff --git a/core/applets/vmemo/vmemo.cpp b/core/applets/vmemo/vmemo.cpp index 622b1df..1ead4dd 100644 --- a/core/applets/vmemo/vmemo.cpp +++ b/core/applets/vmemo/vmemo.cpp @@ -191,86 +191,87 @@ static char * vmemo_xpm[] = { " o x y z A B C D E n ", " F G H I J K L M N O ", " P Q R S T U V W X ", " Y Z ` b ...+. ", " @.#.$.%.&. ", " *.B =. ", " n n n n n n n n n "}; using namespace Opie::Ui; VMemo::VMemo( QWidget *parent, const char *_name ) : QWidget( parent, _name ) { setFixedHeight( 18 ); setFixedWidth( 14 ); t_timer = new QTimer( this ); connect( t_timer, SIGNAL( timeout() ), SLOT( timerBreak() ) ); Config vmCfg("Vmemo"); vmCfg.setGroup("Defaults"); int toggleKey = setToggleButton(vmCfg.readNumEntry("toggleKey", -1)); useADPCM = vmCfg.readBoolEntry("use_ADPCM", 0); odebug << "toggleKey " << toggleKey << "" << oendl; - if ( QFile::exists ( "/dev/sharp_buz" ) || QFile::exists ( "/dev/sharp_led" )) - systemZaurus=TRUE; - else + +// if ( QFile::exists ( "/dev/sharp_buz" ) || QFile::exists ( "/dev/sharp_led" )) +// systemZaurus=TRUE; +// else systemZaurus=FALSE; myChannel = new QCopChannel( "QPE/VMemo", this ); connect( myChannel, SIGNAL(received(const QCString&,const QByteArray&)), this, SLOT(receive(const QCString&,const QByteArray&)) ); if( toggleKey != -1 ) { - // keyRegister(key, channel, message) + qDebug("Register key %d", toggleKey); QCopEnvelope e("QPE/Launcher", "keyRegister(int,QCString,QCString)"); // e << 4096; // Key_Escape // e << Key_F5; //4148 e << toggleKey; e << QString("QPE/VMemo"); e << QString("toggleRecord()"); } if(toggleKey == 1) usingIcon=TRUE; else usingIcon=FALSE; - if( vmCfg.readNumEntry("hideIcon",0) == 1) - hide(); +// if( vmCfg.readNumEntry("hideIcon",0) == 1) +// hide(); recording = FALSE; // } } VMemo::~VMemo() { } int VMemo::position() { return 6; } void VMemo::receive( const QCString &msg, const QByteArray &data ) { - odebug << "receive" << oendl; + odebug << "Vmemo receive" << oendl; QDataStream stream( data, IO_ReadOnly ); if (msg == "toggleRecord()") { if (recording) { fromToggle = TRUE; stopRecording(); } else { fromToggle = TRUE; startRecording(); } } } void VMemo::paintEvent( QPaintEvent* ) { QPainter p(this); p.drawPixmap( 0, 1,( const char** ) vmemo_xpm ); } void VMemo::mousePressEvent( QMouseEvent * me) { /* No mousePress/mouseRelease recording on the iPAQ. The REC button on the iPAQ calls these functions mousePressEvent and mouseReleaseEvent with a NULL parameter. */ // if (!systemZaurus && me != NULL) // return; @@ -364,50 +365,50 @@ bool VMemo::startRecording() { DocLnk l; l.setFile(fileName); l.setName(dlName); l.setType("audio/x-wav"); l.setCategories(cats); l.writeLink(); return TRUE; } else return FALSE; } void VMemo::stopRecording() { show(); odebug << "Stopped recording" << oendl; recording = FALSE; if(useAlerts) { msgLabel->close(); msgLabel=0; delete msgLabel; } t_timer->stop(); Config cfg("Vmemo"); cfg.setGroup("Defaults"); - if( cfg.readNumEntry("hideIcon",0) == 1 ) - hide(); +// if( cfg.readNumEntry("hideIcon",0) == 1 ) +// hide(); } int VMemo::openDSP() { Config cfg("Vmemo"); cfg.setGroup("Record"); speed = cfg.readNumEntry("SampleRate", 22050); channels = cfg.readNumEntry("Stereo", 1) ? 2 : 1; // 1 = stereo(2), 0 = mono(1) if (cfg.readNumEntry("SixteenBit", 1)==1) { format = AFMT_S16_LE; resolution = 16; } else { format = AFMT_U8; resolution = 8; } odebug << "samplerate: " << speed << ", channels " << channels << ", resolution " << resolution << "" << oendl; if(systemZaurus) { dsp = open("/dev/dsp1", O_RDONLY); //Zaurus needs /dev/dsp1 channels=1; //zaurus has one input channel } else { dsp = open("/dev/dsp", O_RDONLY); } @@ -479,82 +480,85 @@ int VMemo::openWAV(const char *filename) { // , wh.modus, wh.sample_fq, wh.byte_p_sec, wh.byte_p_spl, wh.bit_p_spl ); write (wav, &wh, sizeof(WaveHeader)); return 1; } bool VMemo::record() { length=0; int result, value; QString msg; msg.sprintf("Recording format %d", format); odebug << msg << oendl; Config config("Vmemo"); config.setGroup("Record"); int sRate=config.readNumEntry("SizeLimit", 30); if(sRate > 0) t_timer->start( sRate * 1000+1000, TRUE); // if(systemZaurus) { // } else { // 16 bit only capabilities msg.sprintf("Recording format other"); odebug << msg << oendl; - int bufsize=1024; + int bytesWritten=0; - signed short sound[1024], monoBuffer[1024]; - char abuf[bufsize/2]; - short sbuf[bufsize]; + Config vmCfg("Vmemo"); vmCfg.setGroup("Defaults"); useADPCM = vmCfg.readBoolEntry("use_ADPCM", 0); + int bufsize = vmCfg.readNumEntry("BufferSize",1024); + signed short sound[bufsize], monoBuffer[bufsize]; + char abuf[bufsize / 2]; + short sbuf[bufsize]; + while(recording) { if(useADPCM) - result = read( dsp, sbuf, bufsize); // 8192 + result = ::read(dsp, sbuf, bufsize); // 8192 else - result = read(dsp, sound, 1024); // 8192 + result = ::read(dsp, sound, bufsize); // 8192 if( result <= 0) { perror("recording error "); // odebug << currentFileName << oendl; QMessageBox::message(tr("Note"),tr("error recording")); recording=FALSE; break; return FALSE; } if(useADPCM) { adpcm_coder( sbuf, abuf, result/2, &encoder_state); bytesWritten = ::write(wav, abuf, result/4); } else { - for (int i = 0; i < result; i++) { //since Z is mono do normally - monoBuffer[i] = sound[i]; - } +// for (int i = 0; i < result; i++) { //since Z is mono do normally +// monoBuffer[i] = sound[i]; +// } - length+=write(wav, monoBuffer, result); + length += write(wav, sound, result); } length +=bytesWritten; if(length<0) { recording=false; perror("dev/dsp's is a lookin' messy"); QMessageBox::message("Vmemo","Error writing to file\n"+ fileName); break; return FALSE; } // odebug << "" << length << "\r" << oendl; // fflush(stdout); qApp->processEvents(); } // qDebug("file has length of %d lasting %d seconds", // length, (( length / speed) / channels) / 2 ); // } //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<// value = length+36; lseek(wav, 4, SEEK_SET); write(wav, &value, 4); |