summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2003-12-31 20:43:51 (UTC)
committer llornkcor <llornkcor>2003-12-31 20:43:51 (UTC)
commitc395fd13c51385f212648c9995361715ffc9e182 (patch) (unidiff)
tree8bc55b345044e3f17bf29a1f62cf620626270bbe
parent9f9deb7648c0b9bc04ee54bc0ceaf8a5b03441fd (diff)
downloadopie-c395fd13c51385f212648c9995361715ffc9e182.zip
opie-c395fd13c51385f212648c9995361715ffc9e182.tar.gz
opie-c395fd13c51385f212648c9995361715ffc9e182.tar.bz2
add pdaudio stuff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opierec/main.cpp13
-rw-r--r--noncore/multimedia/opierec/opierec.pro30
-rw-r--r--noncore/multimedia/opierec/qtrec.cpp121
-rw-r--r--noncore/multimedia/opierec/qtrec.h7
-rw-r--r--noncore/multimedia/opierec/wavFile.cpp3
5 files changed, 127 insertions, 47 deletions
diff --git a/noncore/multimedia/opierec/main.cpp b/noncore/multimedia/opierec/main.cpp
index e36d050..714907c 100644
--- a/noncore/multimedia/opierec/main.cpp
+++ b/noncore/multimedia/opierec/main.cpp
@@ -12,8 +12,19 @@
12#include "qtrec.h" 12#include "qtrec.h"
13#include <qpe/qpeapplication.h> 13#include <qpe/qpeapplication.h>
14#include <opie/oapplicationfactory.h>
15 14
15#ifdef PDAUDIO
16int main(int argc, char* argv[]) {
17 QPEApplication a(argc, argv);
18 QtRec qtrec;
19 a.showMainWidget( &qtrec);
20 return a.exec();
21}
22
23
24#else
25#include <opie/oapplicationfactory.h>
16OPIE_EXPORT_APP( OApplicationFactory<QtRec> ) 26OPIE_EXPORT_APP( OApplicationFactory<QtRec> )
17 27
28#endif
18 29
19 30
diff --git a/noncore/multimedia/opierec/opierec.pro b/noncore/multimedia/opierec/opierec.pro
index b607c09..39fe493 100644
--- a/noncore/multimedia/opierec/opierec.pro
+++ b/noncore/multimedia/opierec/opierec.pro
@@ -1,3 +1,4 @@
1CONFIG = qt warn_on release 1#CONFIG = qt qtopia warn_on release pdaudio
2CONFIG = qt warn_on release opie
2#CONFIG = qt warn_on release quick-app 3#CONFIG = qt warn_on release quick-app
3HEADERS = adpcm.h \ 4HEADERS = adpcm.h \
@@ -15,12 +16,25 @@ SOURCES = adpcm.c \
15 wavFile.cpp \ 16 wavFile.cpp \
16 waveform.cpp 17 waveform.cpp
17INCLUDEPATH += $(OPIEDIR)/include
18DEPENDPATH += $(OPIEDIR)/include
19#LIBS += -L/opt/buildroot-opie/output/staging/target/lib -lqpe -lpthread -ljpeg -lpng -lz
20LIBS += -lqpe -lpthread
21INTERFACES = 18INTERFACES =
22TARGET = opierec
23DESTDIR=$(OPIEDIR)/bin
24 19
25include ( $(OPIEDIR)/include.pro ) 20contains(CONFIG, pdaudio) {
21# LIBS += -L/opt/buildroot-opie/output/staging/target/lib -lqpe -lpthread -ljpeg -lpng -lz
22 LIBS += -L$(QPEDIR)/lib -lqpe -lpthread -ljpeg -lpng -lz
23 INCLUDEPATH += $(QPEDIR)/include
24 DEPENDPATH += $(QPEDIR)/include
25 DEFINES += PDAUDIO
26 TARGET = qperec
27
28# DESTDIR=$(QPEDIR)/bin
29}
30
31contains(CONFIG, opie) {
32 INCLUDEPATH += $(OPIEDIR)/include
33 DEPENDPATH += $(OPIEDIR)/include
34 DESTDIR=$(OPIEDIR)/bin
35 LIBS += -lqpe -lpthread
36 TARGET = opierec
37 include ( $(OPIEDIR)/include.pro )
38}
39
26 40
diff --git a/noncore/multimedia/opierec/qtrec.cpp b/noncore/multimedia/opierec/qtrec.cpp
index aeab26d..bc6abcc 100644
--- a/noncore/multimedia/opierec/qtrec.cpp
+++ b/noncore/multimedia/opierec/qtrec.cpp
@@ -57,4 +57,14 @@ extern "C" {
57#include <sys/signal.h> 57#include <sys/signal.h>
58 58
59
60#ifdef PDAUDIO //ALSA
61#include <alsa/asoundlib.h>
62static int deviceSampleRates[8] = { 32000, 44100, 48000, 88200, 96000, 176400, 192000, -1 };
63static int deviceBitRates[] = { 8, 16, 24, 32, -1 };
64#else //OSS
65static int deviceSampleRates[6] = { 11025, 16000, 22050, 32000, 44100, -1 };
66static int deviceBitRates[] = { 8, 16, -1 };
67#endif
68
59#if defined(QT_QWS_SL5XXX) 69#if defined(QT_QWS_SL5XXX)
60///#if defined(QT_QWS_EBX) 70///#if defined(QT_QWS_EBX)
@@ -109,7 +119,7 @@ Device *soundDevice;
109// threaded recording 119// threaded recording
110//fuckin fulgy here 120//fuckin fulgy here
111void quickRec() 121//void quickRec()
112{ 122//{
113//void QtRec::quickRec() { 123void QtRec::quickRec() {
114 124
115 qDebug("%d", 125 qDebug("%d",
@@ -164,6 +174,8 @@ void quickRec()
164// adpcm_coder( sbuf2, abuf, number/2, &encoder_state); 174// adpcm_coder( sbuf2, abuf, number/2, &encoder_state);
165 adpcm_coder( sbuf, abuf, number/2, &encoder_state); 175 adpcm_coder( sbuf, abuf, number/2, &encoder_state);
166 bytesWritten = soundDevice->devWrite( filePara.fd , (short *)abuf, number/4); 176
167 waveform->newSamples( (const short *)abuf, bytesWritten ); 177 bytesWritten = ::write( filePara.fd , (short *)abuf, number/4);
178
179 waveform->newSamples( (const short *)abuf, bytesWritten );
168 180
169 total += bytesWritten; 181 total += bytesWritten;
@@ -194,5 +206,5 @@ void quickRec()
194 } 206 }
195 207
196 number = soundDevice ->devRead( filePara.sd, (short *)inbuffer, BUFSIZE); 208 number = soundDevice->devRead( filePara.sd, (short *)inbuffer, BUFSIZE);
197 waveform->newSamples( inbuffer, number ); 209 waveform->newSamples( inbuffer, number );
198 210
@@ -204,5 +216,5 @@ void quickRec()
204 } 216 }
205 217
206 bytesWritten = soundDevice->devWrite( filePara.fd , inbuffer, number); 218 bytesWritten = ::write( filePara.fd , inbuffer, number);
207 219
208 if( bytesWritten < 0) { 220 if( bytesWritten < 0) {
@@ -271,6 +283,7 @@ void quickRec()
271} /// END quickRec() 283} /// END quickRec()
272 284
285void QtRec::playIt()
273 286
274void playIt() 287//void playIt()
275{ 288{
276 int bytesWritten, number; 289 int bytesWritten, number;
@@ -570,13 +583,11 @@ void QtRec::init() {
570 sampleRateComboBox->setGeometry( QRect( 10, 20, 80, 25 ) ); 583 sampleRateComboBox->setGeometry( QRect( 10, 20, 80, 25 ) );
571//#ifndef QT_QWS_EBX 584//#ifndef QT_QWS_EBX
572 sampleRateComboBox->insertItem( tr( "44100")); 585 QString s;
573 sampleRateComboBox->insertItem( tr( "32000")); 586 int z = 0;
574//#endif 587 while( deviceSampleRates[z] != -1) {
575 sampleRateComboBox->insertItem( tr( "22050")); 588 sampleRateComboBox->insertItem( s.setNum( deviceSampleRates[z], 10));
576 //#ifndef QT_QWS_VERCEL_IDR 589 z++;
577 sampleRateComboBox->insertItem( tr( "16000")); 590 }
578 sampleRateComboBox->insertItem( tr( "11025")); 591
579 sampleRateComboBox->insertItem( tr( "8000"));
580 //#endif
581 592
582 glayout3->addMultiCellWidget( sampleGroup, 0, 0, 0, 0); 593 glayout3->addMultiCellWidget( sampleGroup, 0, 0, 0, 0);
@@ -610,7 +621,12 @@ void QtRec::init() {
610 621
611 bitRateComboBox = new QComboBox( false, bitGroup, "BitRateComboBox" ); 622 bitRateComboBox = new QComboBox( false, bitGroup, "BitRateComboBox" );
612 bitRateComboBox->insertItem( tr( "16" ) ); 623
613 bitRateComboBox->insertItem( tr( "8" ) ); 624 z = 0;
614 bitRateComboBox->setGeometry( QRect( 5, 20, 50, 25 ) ); 625 while( deviceBitRates[z] != -1) {
626 bitRateComboBox->insertItem( s.setNum( deviceBitRates[z], 10) );
627 z++;
628 }
629
630 bitRateComboBox->setGeometry( QRect( 5, 20, 50, 25 ) );
615 631
616 glayout3->addMultiCellWidget( bitGroup, 1, 1, 1, 1); 632 glayout3->addMultiCellWidget( bitGroup, 1, 1, 1, 1);
@@ -845,8 +861,13 @@ void QtRec::initConfig() {
845 861
846 i = cfg.readNumEntry("bitrate",16); 862 i = cfg.readNumEntry("bitrate",16);
847 if(i == 16) 863 if(i == 16)
848 bitRateComboBox->setCurrentItem( 0); 864 bitRateComboBox->setCurrentItem( 1);
849 else 865 elseif(i == 24)
850 bitRateComboBox->setCurrentItem( 1); 866 bitRateComboBox->setCurrentItem( 2);
867 elseif(i == 32)
868 bitRateComboBox->setCurrentItem( 3);
869 else
870 bitRateComboBox->setCurrentItem( 0);
871
851 filePara.resolution = i; 872 filePara.resolution = i;
852 873
@@ -991,11 +1012,11 @@ bool QtRec::rec() { //record
991 stopped = false; 1012 stopped = false;
992 1013
993 pthread_t thread1; 1014// pthread_t thread1;
994 pthread_create( &thread1, NULL, (void * (*)(void *))quickRec, NULL/* &*/); 1015// pthread_create( &thread1, NULL, (void * (*)(void *))quickRec, NULL/* &*/);
995 toBeginningButton->setEnabled( false); 1016 toBeginningButton->setEnabled( false);
996 toEndButton->setEnabled( false); 1017 toEndButton->setEnabled( false);
997 1018
998 startTimer(1000); 1019 startTimer(1000);
999// quickRec(); 1020 quickRec();
1000 } 1021 }
1001 } //end setUpFile 1022 } //end setUpFile
@@ -1054,4 +1075,20 @@ bool QtRec::setupAudio( bool b) {
1054 filePara.resolution = bitRateComboBox->currentText().toInt( &ok,10); //16 1075 filePara.resolution = bitRateComboBox->currentText().toInt( &ok,10); //16
1055 1076
1077#ifdef PDAUDIO //ALSA
1078 if( !b) { // we want to play
1079 if( filePara.resolution == 16 || compressionCheckBox->isChecked() ) {
1080 sampleformat = SND_PCM_FORMAT_S16;
1081 filePara.resolution = 16;
1082 } else if( filePara.resolution == 24 || compressionCheckBox->isChecked() ) {
1083 sampleformat = SND_PCM_FORMAT_S24;
1084 filePara.resolution = 24;
1085 } else if( filePara.resolution == 32 || compressionCheckBox->isChecked() ) {
1086 sampleformat = SND_PCM_FORMAT_S32;
1087 filePara.resolution = 32;
1088 } else {
1089 sampleformat = SND_PCM_FORMAT_U8;
1090 filePara.resolution = 8;
1091 }
1092#else
1056 if( !b) { 1093 if( !b) {
1057// we want to play 1094// we want to play
@@ -1063,5 +1100,6 @@ bool QtRec::setupAudio( bool b) {
1063 filePara.resolution = 8; 1100 filePara.resolution = 8;
1064 } 1101 }
1065 1102#endif
1103
1066 stereo = filePara.channels; 1104 stereo = filePara.channels;
1067 flags = O_WRONLY; 1105 flags = O_WRONLY;
@@ -1071,5 +1109,16 @@ bool QtRec::setupAudio( bool b) {
1071 } else { // we want to record 1109 } else { // we want to record
1072 1110
1073 if( !bitRateComboBox->isEnabled() || bitRateComboBox->currentText() == "16") 1111#ifdef PDAUDIO //ALSA
1112 if( !bitRateComboBox->isEnabled() || bitRateComboBox->currentText() == "16")
1113 sampleformat = SND_PCM_FORMAT_S16;
1114 else if( !bitRateComboBox->isEnabled() || bitRateComboBox->currentText() == "24")
1115 sampleformat = SND_PCM_FORMAT_S24;
1116 else if( !bitRateComboBox->isEnabled() || bitRateComboBox->currentText() == "32")
1117 sampleformat = SND_PCM_FORMAT_S32;
1118 else
1119 sampleformat = SND_PCM_FORMAT_U8;
1120
1121#else
1122 if( !bitRateComboBox->isEnabled() || bitRateComboBox->currentText() == "16")
1074 sampleformat = AFMT_S16_LE; 1123 sampleformat = AFMT_S16_LE;
1075 else 1124 else
@@ -1084,5 +1133,6 @@ bool QtRec::setupAudio( bool b) {
1084// qDebug("WAVE_FORMAT_DVI_ADPCM"); 1133// qDebug("WAVE_FORMAT_DVI_ADPCM");
1085 } 1134 }
1086 1135#endif
1136
1087 stereo = filePara.channels; 1137 stereo = filePara.channels;
1088// filePara.sampleRate = sampleRateComboBox->currentText().toInt( &ok,10);//44100; 1138// filePara.sampleRate = sampleRateComboBox->currentText().toInt( &ok,10);//44100;
@@ -1184,9 +1234,10 @@ bool QtRec::doPlay() {
1184 1234
1185 startTimer( 1000); 1235 startTimer( 1000);
1186 pthread_t thread2; 1236// pthread_t thread2;
1187 pthread_create( &thread2, NULL, (void * (*)(void *))playIt, NULL/* &*/); 1237// pthread_create( &thread2, NULL, (void * (*)(void *))playIt, NULL/* &*/);
1188 1238
1189 toBeginningButton->setEnabled( false); 1239 toBeginningButton->setEnabled( false);
1190 toEndButton->setEnabled( false); 1240 toEndButton->setEnabled( false);
1241 playIt();
1191 1242
1192 return true; 1243 return true;
@@ -1198,6 +1249,8 @@ void QtRec::changebitrateCombo(int i) {
1198 cfg.setGroup("Settings"); 1249 cfg.setGroup("Settings");
1199 int bits = 0; 1250 int bits = 0;
1200 if( i == 0) { bits = 16; } 1251 if( i == 1) { bits = 16; }
1201 else { bits=8; } 1252 else if( i == 2) { bits = 24; }
1253 else if( i == 3) { bits = 32; }
1254 else { bits=8; }
1202 cfg.writeEntry("bitrate", bits); 1255 cfg.writeEntry("bitrate", bits);
1203 filePara.resolution = bits; 1256 filePara.resolution = bits;
diff --git a/noncore/multimedia/opierec/qtrec.h b/noncore/multimedia/opierec/qtrec.h
index 93b9b5f..31cff9e 100644
--- a/noncore/multimedia/opierec/qtrec.h
+++ b/noncore/multimedia/opierec/qtrec.h
@@ -5,5 +5,5 @@ copyright 2002 by L.J. Potter ljp@llornkcor.com
5#ifndef QTREC_H 5#ifndef QTREC_H
6#define QTREC_H 6#define QTREC_H
7#define VERSION 20030920 7#define VERSION 20040101
8 8
9#include <qpe/ir.h> 9#include <qpe/ir.h>
@@ -178,6 +178,7 @@ protected:
178 void receive( const QCString &, const QByteArray & ); 178 void receive( const QCString &, const QByteArray & );
179 void showListMenu(QListViewItem * ); 179 void showListMenu(QListViewItem * );
180// void quickRec(); 180 void quickRec();
181 181 void playIt();
182
182}; 183};
183 184
diff --git a/noncore/multimedia/opierec/wavFile.cpp b/noncore/multimedia/opierec/wavFile.cpp
index 987fa32..1d58bb3 100644
--- a/noncore/multimedia/opierec/wavFile.cpp
+++ b/noncore/multimedia/opierec/wavFile.cpp
@@ -48,5 +48,6 @@ bool WavFile::newFile() {
48 currentFileName=cfg.readEntry("directory",QDir::homeDirPath()); 48 currentFileName=cfg.readEntry("directory",QDir::homeDirPath());
49 QString date; 49 QString date;
50 date = TimeString::dateString( QDateTime::currentDateTime(),false,true); 50 QDateTime dt = QDateTime::currentDateTime();
51 date = dt.toString();//TimeString::dateString( QDateTime::currentDateTime(),false,true);
51 date.replace(QRegExp("'"),""); 52 date.replace(QRegExp("'"),"");
52 date.replace(QRegExp(" "),"_"); 53 date.replace(QRegExp(" "),"_");