-rw-r--r-- | core/applets/vmemo/vmemo.cpp | 2 | ||||
-rw-r--r-- | noncore/settings/sound/soundsettingsbase.cpp | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/core/applets/vmemo/vmemo.cpp b/core/applets/vmemo/vmemo.cpp index 226f058..d6128a6 100644 --- a/core/applets/vmemo/vmemo.cpp +++ b/core/applets/vmemo/vmemo.cpp @@ -349,286 +349,286 @@ bool VMemo::startRecording() { if(openWAV(pointer ) == -1) { // if(openWAV(fileName.latin1()) == -1) { QString err("Could not open the temp file\n"); err += fileName; QMessageBox::critical(0, "vmemo", err, "Abort"); ::close(dsp); return FALSE; } if( record() ) { QString cmd; if( fileName.find(".wav",0,TRUE) == -1) fileName += ".wav"; cmd.sprintf("mv %s "+fileName, pointer); // move tmp file to regular file here system(cmd.latin1()); QArray<int> cats(1); cats[0] = config.readNumEntry("Category", 0); QString dlName("vm_"); dlName += dt.toString(); 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(); qDebug("Stopped recording"); 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(); } 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; } qDebug("samplerate: %d, channels %d, resolution %d", speed, channels, resolution); 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); } if(dsp == -1) { msgLabel->close(); msgLabel=0; delete msgLabel; perror("open(\"/dev/dsp\")"); errorMsg="open(\"/dev/dsp\")\n "+(QString)strerror(errno); QMessageBox::critical(0, "vmemo", errorMsg, "Abort"); return -1; } if(ioctl(dsp, SNDCTL_DSP_SETFMT , &format)==-1) { perror("ioctl(\"SNDCTL_DSP_SETFMT\")"); return -1; } if(ioctl(dsp, SNDCTL_DSP_CHANNELS , &channels)==-1) { perror("ioctl(\"SNDCTL_DSP_CHANNELS\")"); return -1; } if(ioctl(dsp, SNDCTL_DSP_SPEED , &speed)==-1) { perror("ioctl(\"SNDCTL_DSP_SPEED\")"); return -1; } if(ioctl(dsp, SOUND_PCM_READ_RATE , &rate)==-1) { perror("ioctl(\"SOUND_PCM_READ_RATE\")"); return -1; } QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << FALSE; //mute return 1; } int VMemo::openWAV(const char *filename) { track.setName(filename); if(!track.open(IO_WriteOnly|IO_Truncate|IO_Raw)) { errorMsg=filename; return -1; } wav=track.handle(); Config vmCfg("Vmemo"); vmCfg.setGroup("Defaults"); useADPCM = vmCfg.readBoolEntry("use_ADPCM", 0); WaveHeader wh; wh.main_chunk = RIFF; wh.length=0; wh.chunk_type = WAVE; wh.sub_chunk = FMT; wh.sc_len = 16; if(useADPCM) wh.format = WAVE_FORMAT_DVI_ADPCM;//PCM_CODE; else wh.format = PCM_CODE; wh.modus = channels; wh.sample_fq = speed; wh.byte_p_sec = speed * channels * resolution/8; wh.byte_p_spl = channels * (resolution / 8); wh.bit_p_spl = resolution; wh.data_chunk = DATA; wh.data_length= 0; // qDebug("Write header channels %d, speed %d, b/s %d, blockalign %d, bitrate %d" // , 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() { int length=0, result, value; QString msg; msg.sprintf("Recording format %d", format); qDebug(msg); 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"); qDebug(msg); 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); while(recording) { if(useADPCM) result = read( dsp, sbuf, bufsize); // 8192 else result = read(dsp, sound, 1024); // 8192 if( result <= 0) { perror("recording error "); // qDebug(currentFileName); 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]; } length+=write(wav, monoBuffer, 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; } // printf("%d\r",length); // 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); lseek(wav, 40, SEEK_SET); write(wav, &length, 4); track.close(); qDebug("Track closed"); if( ioctl( dsp, SNDCTL_DSP_RESET,0) == -1) perror("ioctl(\"SNDCTL_DSP_RESET\")"); ::close(dsp); qDebug("done recording "+fileName); Config cfg("qpe"); cfg.setGroup("Volume"); QString foo = cfg.readEntry("Mute","TRUE"); if(foo.find("TRUE",0,TRUE) != -1) QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << TRUE; //mute return TRUE; } int VMemo::setToggleButton(int tog) { for( int i=0; i < 10;i++) { switch (tog) { case 0: return -1; break; case 1: return 0; break; case 2: - return Key_Escape; + return Key_F24; //was Escape break; case 3: return Key_Space; break; case 4: return Key_F12; break; case 5: return Key_F9; break; case 6: return Key_F10; break; case 7: return Key_F11; break; case 8: return Key_F13; break; }; } return -1; } void VMemo::timerBreak() { //stop stopRecording(); QMessageBox::message("Vmemo","Vmemo recording has ended"); } diff --git a/noncore/settings/sound/soundsettingsbase.cpp b/noncore/settings/sound/soundsettingsbase.cpp index 1a60109..5421bb4 100644 --- a/noncore/settings/sound/soundsettingsbase.cpp +++ b/noncore/settings/sound/soundsettingsbase.cpp @@ -1,185 +1,185 @@ /**************************************************************************** ** Form implementation generated from reading ui file 'soundsettingsbase.ui' ** ** Created: Sun May 19 12:11:35 2002 ** by: The User Interface Compiler (uic) ** ** WARNING! All changes made in this file will be lost! ****************************************************************************/ #include "soundsettingsbase.h" #include <qcheckbox.h> #include <qcombobox.h> #include <qgroupbox.h> #include <qmainwindow.h> #include <qpe/qpeapplication.h> #include <qlabel.h> #include <qpushbutton.h> #include <qslider.h> #include <qlayout.h> #include <qvariant.h> #include <qtooltip.h> #include <qwhatsthis.h> #include <qimage.h> #include <qpixmap.h> static const char* const image0_data[] = { "16 16 3 1", ". c None", "a c #000000", "# c #ff0000", "............#...", "............##..", "..........#..#..", ".....a..#..#.#..", "....aa..##.#..#.", "...aaa...#.##.#.", "aaaaaa.#.#..#.##", "aaaaaa.#.##.#.##", "aaaaaa.#.##.#.##", "aaaaaa.#.##.#.##", "aaaaaa.#.#..#.##", "...aaa...#.##.#.", "....aa..#..#..#.", ".....a.....#.##.", "..........#..#..", "............##.."}; static const char* const image1_data[] = { "16 16 3 1", ". c None", "# c #000000", "a c #ff0000", "................", "................", "................", ".....#..........", "....##..........", "...###...a...a..", "######..aaa.aaa.", "######...aaaaa..", "######....aaa...", "######...aaaaa..", "######..aaa.aaa.", "...###...a...a..", "....##..........", ".....#..........", "................", "................"}; /* * Constructs a SoundSettingsBase which is a child of 'parent', with the * name 'name' and widget flags set to 'f' * * The dialog will by default be modeless, unless you set 'modal' to * TRUE to construct a modal dialog. */ SoundSettingsBase::SoundSettingsBase( QWidget* parent, const char* name, bool modal, WFlags fl ) : QMainWindow( parent, name, fl ) { QPixmap image0( ( const char** ) image0_data ); QPixmap image1( ( const char** ) image1_data ); if ( !name ) setName( "SoundSettingsBase" ); // resize(255,301); setCaption( tr( "Vmemo Settings" ) ); SoundSettingsBaseLayout = new QGridLayout( this ); SoundSettingsBaseLayout->setSpacing( 4 ); SoundSettingsBaseLayout->setMargin( 4 ); QHBoxLayout *Layout11; Layout11 = new QHBoxLayout; Layout11->setSpacing( 4 ); Layout11->setMargin( 0 ); stereoCheckBox = new QCheckBox( this, "stereoCheckBox" ); stereoCheckBox->setText( tr( "Stereo" ) ); Layout11->addWidget( stereoCheckBox ); sixteenBitCheckBox = new QCheckBox( this, "sixteenBitCheckBox" ); sixteenBitCheckBox->setText( tr( "16 bit" ) ); Layout11->addWidget( sixteenBitCheckBox ); AlertCheckBox = new QCheckBox( this, "AlertCheckBox" ); AlertCheckBox->setText( tr( "Visual Alerts" ) ); Layout11->addWidget( AlertCheckBox ); SoundSettingsBaseLayout->addLayout( Layout11, 0, 0); sampleRateLabel = new QLabel(this, "sampleRateLabel" ); sampleRateLabel->setText( tr( "Sample Rate:" ) ); SoundSettingsBaseLayout->addMultiCellWidget( sampleRateLabel , 1, 1, 0, 0, 1); sampleRate = new QComboBox( FALSE,this, "sampleRate" ); sampleRate->insertItem( tr( "8000" ) ); sampleRate->insertItem( tr( "11025" ) ); sampleRate->insertItem( tr( "22050" ) ); sampleRate->insertItem( tr( "33075" ) ); sampleRate->insertItem( tr( "44100" ) ); SoundSettingsBaseLayout->addMultiCellWidget( sampleRate, 2, 2, 0, 0, 1 ); TextLabel1 = new QLabel( this, "TextLabel1" ); TextLabel1->setText( tr( "Recording Directory:" ) ); SoundSettingsBaseLayout->addMultiCellWidget( TextLabel1, 3, 3, 0, 0, 1); LocationComboBox = new QComboBox( FALSE, this, "LocationComboBox" ); SoundSettingsBaseLayout->addMultiCellWidget( LocationComboBox, 4, 4, 0, 8, 1); QLabel *TextLabelKey; TextLabelKey = new QLabel( this, "TextLabelKey" ); TextLabelKey->setText( tr( "Recording Key:" ) ); SoundSettingsBaseLayout->addMultiCellWidget(TextLabelKey , 5, 5, 0, 0, 1); keyComboBox = new QComboBox( FALSE, this, "keyComboBox" ); keyComboBox->insertItem( tr( "" ) ); keyComboBox->insertItem( tr( "Taskbar Icon" ) ); - keyComboBox->insertItem( tr( "Key_Escape" ) ); + keyComboBox->insertItem( tr( "Key_Record" ) ); keyComboBox->insertItem( tr( "Key_Space" ) ); keyComboBox->insertItem( tr( "Key_Home" ) ); keyComboBox->insertItem( tr( "Key_Calender" ) ); keyComboBox->insertItem( tr( "Key_Contacts" ) ); keyComboBox->insertItem( tr( "Key_Menu" ) ); keyComboBox->insertItem( tr( "Key_Mail" ) ); SoundSettingsBaseLayout->addMultiCellWidget( keyComboBox , 6, 6, 0, 0 ,1); keyLabel= new QLabel( this, "keyLabel" ); SoundSettingsBaseLayout->addMultiCellWidget( keyLabel , 6, 6, 0, 2, 3); QLabel *timeLimitLabel; timeLimitLabel= new QLabel( this, "timeLimitLabel" ); timeLimitLabel->setText( tr( "Recording Limit in seconds:" ) ); SoundSettingsBaseLayout->addMultiCellWidget( timeLimitLabel , 7, 7, 0, 0, 1); timeLimitComboBox = new QComboBox( FALSE, this, "timeLimitComboBox" ); timeLimitComboBox->insertItem( tr( "30" ) ); timeLimitComboBox->insertItem( tr( "20" ) ); timeLimitComboBox->insertItem( tr( "15" ) ); timeLimitComboBox->insertItem( tr( "10" ) ); timeLimitComboBox->insertItem( tr( "5" ) ); timeLimitComboBox->insertItem( tr( "Unlimited" ) ); SoundSettingsBaseLayout->addMultiCellWidget(timeLimitComboBox , 8, 8, 0, 0, 1); restartCheckBox= new QCheckBox( this, "restartCheck" ); restartCheckBox->setText( tr( "Restart Opie if needed" ) ); SoundSettingsBaseLayout->addMultiCellWidget( restartCheckBox , 9, 9, 0, 0, 1); QSpacerItem* spacer4 = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Expanding ); SoundSettingsBaseLayout->addItem( spacer4, 9, 0 ); } /* * Destroys the object and frees any allocated resources */ SoundSettingsBase::~SoundSettingsBase() { // no need to delete child widgets, Qt does it all for us } |