summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/applets/vmemo/vmemo.cpp42
1 files changed, 26 insertions, 16 deletions
diff --git a/core/applets/vmemo/vmemo.cpp b/core/applets/vmemo/vmemo.cpp
index b80b378..e747a19 100644
--- a/core/applets/vmemo/vmemo.cpp
+++ b/core/applets/vmemo/vmemo.cpp
@@ -227,25 +227,26 @@ VMemo::VMemo( QWidget *parent, const char *_name )
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 (!usingIcon)
+ hide();
recording = FALSE;
// }
}
VMemo::~VMemo() {
}
int VMemo::position()
{
return 6;
}
@@ -366,25 +367,25 @@ bool VMemo::startRecording() {
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();
+// 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();
@@ -476,99 +477,108 @@ int VMemo::openWAV(const char *filename) {
wh.bit_p_spl = resolution;
wh.data_chunk = DATA;
wh.data_length= 0;
// odebug << "Write header channels " << wh.modus << ", speed " << wh.sample_fq << ", b/s "
// << wh.byte_p_sec << ", blockalign " << wh.byte_p_spl << ", bitrate " << wh.bit_p_spl << oendl;
write (wav, &wh, sizeof(WaveHeader));
return 1;
}
bool VMemo::record() {
length = 0;
- int bytesWritten = 0;
+ int bytesWritten = 0;
int result = 0;
int value = 0;
+
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);
+ odebug << "VMEMO rate" << sRate << oendl;
- msg.sprintf("Recording format other");
- odebug << msg << oendl;
+ if(sRate > 0) {
+ t_timer->start( sRate * 1000+1000, TRUE);
+ }
+
+ msg.sprintf("Recording format other");
+ odebug << msg << oendl;
config.setGroup("Defaults");
useADPCM = config.readBoolEntry("use_ADPCM", 0);
- int bufsize = config.readNumEntry("BufferSize",1024);
- unsigned short sound[bufsize]; //, monoBuffer[bufsize];
+ int bufsize = config.readNumEntry("BufferSize",1024);
+ unsigned short sound[bufsize]; //, monoBuffer[bufsize];
char abuf[bufsize / 2];
short sbuf[bufsize];
-
+ odebug << "ready to record"<< oendl;
if(useADPCM) {
+ odebug << "usr ADPCM" << oendl;
+
while(recording) {
result = ::read(dsp, sbuf, bufsize); // adpcm read
if( result <= 0) {
perror("recording error ");
QMessageBox::message(tr("Note"),tr("error recording"));
recording = FALSE;
break;
return FALSE;
}
adpcm_coder( sbuf, abuf, result/2, &encoder_state);
bytesWritten = ::write(wav, abuf, result/4); // adpcm write
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);
+ printf("%d\r", length);
+ fflush(stdout);
qApp->processEvents();
}
} else {
+ odebug << "use regular wav" << oendl;
while(recording) {
result = ::read(dsp, sound, bufsize); // read
if( result <= 0) {
perror("recording error ");
QMessageBox::message(tr("Note"),tr("error recording"));
recording = FALSE;
break;
return FALSE;
+ }
bytesWritten = ::write(wav, sound, result); // write
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);
+// printf("%d\r", length);
+// fflush(stdout);
qApp->processEvents();
}
+// odebug << "result is " << result << oendl;
}
- }
- // odebug << "file has length of " << length << " lasting " << (( length / speed) / channels) / 2 ) << " seconds" << oendl;
+ odebug << "file has length of " << length << " lasting " << (( length / speed) / channels) / 2 << " seconds" << oendl;
value = length + 36;
lseek(wav, 4, SEEK_SET);
write(wav, &value, 4);
lseek(wav, 40, SEEK_SET);
write(wav, &length, 4);
track.close();
odebug << "Track closed" << oendl;