summaryrefslogtreecommitdiff
path: root/core/multimedia/opieplayer
authorschurig <schurig>2003-06-14 06:05:13 (UTC)
committer schurig <schurig>2003-06-14 06:05:13 (UTC)
commit6b57a9fbe9f56e6af3911ea9337872c468b614b5 (patch) (unidiff)
tree69ef7f20babceda2ba3ee8138cbd29bdd8587f46 /core/multimedia/opieplayer
parentbbb4e35556d1d1a759dbe99bc155ecfc45e49c1b (diff)
downloadopie-6b57a9fbe9f56e6af3911ea9337872c468b614b5.zip
opie-6b57a9fbe9f56e6af3911ea9337872c468b614b5.tar.gz
opie-6b57a9fbe9f56e6af3911ea9337872c468b614b5.tar.bz2
Adaptions for QT_QWS_DEVFS
Diffstat (limited to 'core/multimedia/opieplayer') (more/less context) (ignore whitespace changes)
-rw-r--r--core/multimedia/opieplayer/audiodevice.cpp15
-rw-r--r--core/multimedia/opieplayer/libflash/libflashplugin.cpp4
-rw-r--r--core/multimedia/opieplayer/playlistwidget.cpp6
3 files changed, 21 insertions, 4 deletions
diff --git a/core/multimedia/opieplayer/audiodevice.cpp b/core/multimedia/opieplayer/audiodevice.cpp
index d01d2ba..6a38fc9 100644
--- a/core/multimedia/opieplayer/audiodevice.cpp
+++ b/core/multimedia/opieplayer/audiodevice.cpp
@@ -82,25 +82,29 @@ public:
82#endif 82#endif
83 83
84 84
85int AudioDevicePrivate::dspFd = 0; 85int AudioDevicePrivate::dspFd = 0;
86bool AudioDevicePrivate::muted = FALSE; 86bool AudioDevicePrivate::muted = FALSE;
87unsigned int AudioDevicePrivate::leftVolume = 0; 87unsigned int AudioDevicePrivate::leftVolume = 0;
88unsigned int AudioDevicePrivate::rightVolume = 0; 88unsigned int AudioDevicePrivate::rightVolume = 0;
89 89
90 90
91void AudioDevice::getVolume( unsigned int& leftVolume, unsigned int& rightVolume, bool &muted ) { 91void AudioDevice::getVolume( unsigned int& leftVolume, unsigned int& rightVolume, bool &muted ) {
92 muted = AudioDevicePrivate::muted; 92 muted = AudioDevicePrivate::muted;
93 unsigned int volume; 93 unsigned int volume;
94#ifdef QT_QWS_DEVFS
95 int mixerHandle = open( "/dev/sound/mixer", O_RDWR );
96#else
94 int mixerHandle = open( "/dev/mixer", O_RDWR ); 97 int mixerHandle = open( "/dev/mixer", O_RDWR );
98#endif
95 if ( mixerHandle >= 0 ) { 99 if ( mixerHandle >= 0 ) {
96 if(ioctl( mixerHandle, MIXER_READ(0), &volume )==-1) 100 if(ioctl( mixerHandle, MIXER_READ(0), &volume )==-1)
97 perror("ioctl(\"MIXER_READ\")"); 101 perror("ioctl(\"MIXER_READ\")");
98 close( mixerHandle ); 102 close( mixerHandle );
99 } else 103 } else
100 perror("open(\"/dev/mixer\")"); 104 perror("open(\"/dev/mixer\")");
101 leftVolume = ((volume & 0x00FF) << 16) / 101; 105 leftVolume = ((volume & 0x00FF) << 16) / 101;
102 rightVolume = ((volume & 0xFF00) << 8) / 101; 106 rightVolume = ((volume & 0xFF00) << 8) / 101;
103} 107}
104 108
105 109
106void AudioDevice::setVolume( unsigned int leftVolume, unsigned int rightVolume, bool muted ) { 110void AudioDevice::setVolume( unsigned int leftVolume, unsigned int rightVolume, bool muted ) {
@@ -112,25 +116,29 @@ void AudioDevice::setVolume( unsigned int leftVolume, unsigned int rightVolume,
112 rightVolume = 0; 116 rightVolume = 0;
113 } else { 117 } else {
114 leftVolume = ( (int) leftVolume < 0 ) ? 0 : (( leftVolume > 0xFFFF ) ? 0xFFFF : leftVolume ); 118 leftVolume = ( (int) leftVolume < 0 ) ? 0 : (( leftVolume > 0xFFFF ) ? 0xFFFF : leftVolume );
115 rightVolume = ( (int)rightVolume < 0 ) ? 0 : (( rightVolume > 0xFFFF ) ? 0xFFFF : rightVolume ); 119 rightVolume = ( (int)rightVolume < 0 ) ? 0 : (( rightVolume > 0xFFFF ) ? 0xFFFF : rightVolume );
116 } 120 }
117 // Volume can be from 0 to 100 which is 101 distinct values 121 // Volume can be from 0 to 100 which is 101 distinct values
118 unsigned int rV = (rightVolume * 101) >> 16; 122 unsigned int rV = (rightVolume * 101) >> 16;
119 123
120# if 0 124# if 0
121 unsigned int lV = (leftVolume * 101) >> 16; 125 unsigned int lV = (leftVolume * 101) >> 16;
122 unsigned int volume = ((rV << 8) & 0xFF00) | (lV & 0x00FF); 126 unsigned int volume = ((rV << 8) & 0xFF00) | (lV & 0x00FF);
123 int mixerHandle = 0; 127 int mixerHandle = 0;
128#ifdef QT_QWS_DEVFS
129 if ( ( mixerHandle = open( "/dev/sound/mixer", O_RDWR ) ) >= 0 ) {
130#else
124 if ( ( mixerHandle = open( "/dev/mixer", O_RDWR ) ) >= 0 ) { 131 if ( ( mixerHandle = open( "/dev/mixer", O_RDWR ) ) >= 0 ) {
132#endif
125 if(ioctl( mixerHandle, MIXER_WRITE(0), &volume ) ==-1) 133 if(ioctl( mixerHandle, MIXER_WRITE(0), &volume ) ==-1)
126 perror("ioctl(\"MIXER_WRITE\")"); 134 perror("ioctl(\"MIXER_WRITE\")");
127 close( mixerHandle ); 135 close( mixerHandle );
128 } else 136 } else
129 perror("open(\"/dev/mixer\")"); 137 perror("open(\"/dev/mixer\")");
130 138
131# else 139# else
132 // This is the way this has to be done now I guess, doesn't allow for 140 // This is the way this has to be done now I guess, doesn't allow for
133 // independant right and left channel setting, or setting for different outputs 141 // independant right and left channel setting, or setting for different outputs
134 Config cfg("qpe"); // qtopia is "Sound" 142 Config cfg("qpe"); // qtopia is "Sound"
135 cfg.setGroup("Volume"); // qtopia is "Settings" 143 cfg.setGroup("Volume"); // qtopia is "Settings"
136 cfg.writeEntry("VolumePercent",(int)rV); //qtopia is Volume 144 cfg.writeEntry("VolumePercent",(int)rV); //qtopia is Volume
@@ -159,33 +167,34 @@ AudioDevice::AudioDevice( unsigned int f, unsigned int chs, unsigned int bps ) {
159 else if( bps <= 0) format = AFMT_S16_LE; 167 else if( bps <= 0) format = AFMT_S16_LE;
160 else format = AFMT_S16_LE; 168 else format = AFMT_S16_LE;
161 // qDebug("AD- freq %d, channels %d, b/sample %d, bitrate %d",f,chs,bps,format); 169 // qDebug("AD- freq %d, channels %d, b/sample %d, bitrate %d",f,chs,bps,format);
162 connect( qApp, SIGNAL( volumeChanged(bool) ), this, SLOT( volumeChanged(bool) ) ); 170 connect( qApp, SIGNAL( volumeChanged(bool) ), this, SLOT( volumeChanged(bool) ) );
163 171
164 int fragments = 0x10000 * 8 + sound_fragment_shift; 172 int fragments = 0x10000 * 8 + sound_fragment_shift;
165 int capabilities = 0; 173 int capabilities = 0;
166 174
167 175
168#ifdef KEEP_DEVICE_OPEN 176#ifdef KEEP_DEVICE_OPEN
169 if ( AudioDevicePrivate::dspFd == 0 ) { 177 if ( AudioDevicePrivate::dspFd == 0 ) {
170#endif 178#endif
179#ifdef QT_QWS_DEVFS
180 if ( ( d->handle = ::open( "/dev/sound/dsp", O_WRONLY ) ) < 0 ) {
181#else
171 if ( ( d->handle = ::open( "/dev/dsp", O_WRONLY ) ) < 0 ) { 182 if ( ( d->handle = ::open( "/dev/dsp", O_WRONLY ) ) < 0 ) {
183#endif
172 184
173// perror("open(\"/dev/dsp\") sending to /dev/null instead");
174 perror("open(\"/dev/dsp\")"); 185 perror("open(\"/dev/dsp\")");
175 QString errorMsg=tr("Somethin's wrong with\nyour sound device.\nopen(\"/dev/dsp\")\n")+(QString)strerror(errno)+tr("\n\nClosing player now."); 186 QString errorMsg=tr("Somethin's wrong with\nyour sound device.\nopen(\"/dev/dsp\")\n")+(QString)strerror(errno)+tr("\n\nClosing player now.");
176 QMessageBox::critical(0, "Vmemo", errorMsg, tr("Abort")); 187 QMessageBox::critical(0, "Vmemo", errorMsg, tr("Abort"));
177 exit(-1); //harsh? 188 exit(-1); //harsh?
178// d->handle = ::open( "/dev/null", O_WRONLY );
179 // WTF?!?!
180 } 189 }
181#ifdef KEEP_DEVICE_OPEN 190#ifdef KEEP_DEVICE_OPEN
182 AudioDevicePrivate::dspFd = d->handle; 191 AudioDevicePrivate::dspFd = d->handle;
183 } else { 192 } else {
184 d->handle = AudioDevicePrivate::dspFd; 193 d->handle = AudioDevicePrivate::dspFd;
185 } 194 }
186#endif 195#endif
187 196
188 if(ioctl( d->handle, SNDCTL_DSP_GETCAPS, &capabilities )==-1) 197 if(ioctl( d->handle, SNDCTL_DSP_GETCAPS, &capabilities )==-1)
189 perror("ioctl(\"SNDCTL_DSP_GETCAPS\")"); 198 perror("ioctl(\"SNDCTL_DSP_GETCAPS\")");
190 if(ioctl( d->handle, SNDCTL_DSP_SETFRAGMENT, &fragments )==-1) 199 if(ioctl( d->handle, SNDCTL_DSP_SETFRAGMENT, &fragments )==-1)
191 perror("ioctl(\"SNDCTL_DSP_SETFRAGMENT\")"); 200 perror("ioctl(\"SNDCTL_DSP_SETFRAGMENT\")");
diff --git a/core/multimedia/opieplayer/libflash/libflashplugin.cpp b/core/multimedia/opieplayer/libflash/libflashplugin.cpp
index 538c695..78cf555 100644
--- a/core/multimedia/opieplayer/libflash/libflashplugin.cpp
+++ b/core/multimedia/opieplayer/libflash/libflashplugin.cpp
@@ -142,25 +142,29 @@ bool LibFlashPlugin::open( const QString& fileName ) {
142 142
143 if (!(file = FlashNew())) 143 if (!(file = FlashNew()))
144 exit(1); 144 exit(1);
145 145
146 do 146 do
147 status = FlashParse(file, 0, buffer, size); 147 status = FlashParse(file, 0, buffer, size);
148 while (status & FLASH_PARSE_NEED_DATA); 148 while (status & FLASH_PARSE_NEED_DATA);
149 149
150 free(buffer); 150 free(buffer);
151 FlashGetInfo(file, &fi); 151 FlashGetInfo(file, &fi);
152 //FlashSettings(flashHandle, PLAYER_LOOP); 152 //FlashSettings(flashHandle, PLAYER_LOOP);
153 FlashGraphicInit(file, fd); 153 FlashGraphicInit(file, fd);
154#ifdef QT_QWS_DEVFS
155 FlashSoundInit(file, "/dev/sound/dsp");
156#else
154 FlashSoundInit(file, "/dev/dsp"); 157 FlashSoundInit(file, "/dev/dsp");
158#endif
155 FlashSetGetUrlMethod(file, showUrl, 0); 159 FlashSetGetUrlMethod(file, showUrl, 0);
156 FlashSetGetSwfMethod(file, getSwf, (void*)file); 160 FlashSetGetSwfMethod(file, getSwf, (void*)file);
157 161
158 printf("opened file\n"); 162 printf("opened file\n");
159} 163}
160 164
161// If decoder doesn't support audio then return 0 here 165// If decoder doesn't support audio then return 0 here
162bool LibFlashPlugin::audioSetSample( long sample, int stream ) { return TRUE; } 166bool LibFlashPlugin::audioSetSample( long sample, int stream ) { return TRUE; }
163long LibFlashPlugin::audioGetSample( int stream ) { return 0; } 167long LibFlashPlugin::audioGetSample( int stream ) { return 0; }
164//bool LibFlashPlugin::audioReadMonoSamples( short *output, long samples, long& samplesRead, int stream ) { return TRUE; } 168//bool LibFlashPlugin::audioReadMonoSamples( short *output, long samples, long& samplesRead, int stream ) { return TRUE; }
165//bool LibFlashPlugin::audioReadStereoSamples( short *output, long samples, long& samplesRead, int stream ) { return FALSE; } 169//bool LibFlashPlugin::audioReadStereoSamples( short *output, long samples, long& samplesRead, int stream ) { return FALSE; }
166bool LibFlashPlugin::audioReadSamples( short *output, int channels, long samples, long& samplesRead, int stream ) { return FALSE; } 170bool LibFlashPlugin::audioReadSamples( short *output, int channels, long samples, long& samplesRead, int stream ) { return FALSE; }
diff --git a/core/multimedia/opieplayer/playlistwidget.cpp b/core/multimedia/opieplayer/playlistwidget.cpp
index efea385..b393230 100644
--- a/core/multimedia/opieplayer/playlistwidget.cpp
+++ b/core/multimedia/opieplayer/playlistwidget.cpp
@@ -1363,26 +1363,30 @@ void PlayListWidget::keyPressEvent( QKeyEvent *)
1363// case Key_P: //play 1363// case Key_P: //play
1364// qDebug("Play"); 1364// qDebug("Play");
1365// playSelected(); 1365// playSelected();
1366// break; 1366// break;
1367// case Key_Space: 1367// case Key_Space:
1368// qDebug("Play"); 1368// qDebug("Play");
1369// playSelected(); 1369// playSelected();
1370// break; 1370// break;
1371// } 1371// }
1372} 1372}
1373 1373
1374void PlayListWidget::doBlank() { 1374void PlayListWidget::doBlank() {
1375 // qDebug("do blanking"); 1375 // TODO: why do we blank this way, why don't we use ODevice or ScreenSaver?
1376#ifdef QT_QWS_DEVFS
1377 fd=open("/dev/fb/0",O_RDWR);
1378#else
1376 fd=open("/dev/fb0",O_RDWR); 1379 fd=open("/dev/fb0",O_RDWR);
1380#endif
1377 if (fd != -1) { 1381 if (fd != -1) {
1378 ioctl(fd,FBIOBLANK,1); 1382 ioctl(fd,FBIOBLANK,1);
1379 // close(fd); 1383 // close(fd);
1380 } 1384 }
1381} 1385}
1382 1386
1383void PlayListWidget::doUnblank() { 1387void PlayListWidget::doUnblank() {
1384 // this crashes opieplayer with a segfault 1388 // this crashes opieplayer with a segfault
1385 // int fd; 1389 // int fd;
1386 // fd=open("/dev/fb0",O_RDWR); 1390 // fd=open("/dev/fb0",O_RDWR);
1387 // qDebug("do unblanking"); 1391 // qDebug("do unblanking");
1388 if (fd != -1) { 1392 if (fd != -1) {