summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/applets/vmemo/vmemo.cpp2
-rw-r--r--noncore/settings/sound/soundsettingsbase.cpp2
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
}