On Sat, 01 Apr 2006 15:53:11 +0000, Stefan Huelswitt wrote: > Hi, > as many may have noticed, development of the MP3/MPlayer plugin > is somewhat stuck. This is partly due to lack of time, but also due > to missing motivation. > > However, some changes already have been done. I don't want to > hold them back any longer but most of them are only roughly > tested, so that I don't want to make a full release. > > I decided to put a pre-release on my homepage at > <http://www.muempf.de/down/vdr-mp3-0.9.15pre4.tar.gz> > > Please refer to the HISTORY file for changes. > NOTE: this is a BETA release! > If you don't dare to try it, please give feedback (positive or > negative). > > I'm going to update the pre-release version as necessary. You can > check at <http://www.muempf.de/down.html> for new versions too. > > Regards. Dear Stefan, I've tested your version and found that the mplayer volume fix does not work. The attached patch makes it *really* work (well at least it is working here :) On another issue how is the status stuff supposed to work ? Will it display the play position ? Soeren. --- ../mp3-0.9.15pre4/player-mplayer.c 2006-04-01 17:22:47.000000000 +0200 +++ PLUGINS/src/mplayer-0.9.15pre4/player-mplayer.c 2006-04-05 08:42:56.000000000 +0200 @@ -45,8 +45,6 @@ //#define DEBUG_SLAVE -#define MPLAYER_VOL_STEP 3.0 - const char *MPlayerCmd = "mplayer.sh"; int MPlayerAid=-1; @@ -67,7 +65,7 @@ // convert according cDvbDevice::SetVolumeDevice(); // take into account that VDR does non-linear changes, while // MPlayer does linear volume changes. - Volume=(float)(2*volume-volume*volume/255)/2.55; + Volume=((float)(2*volume-volume*volume/255))/2.56; Mute=mute; changed=false; Unlock(); @@ -543,23 +541,18 @@ void cMPlayerPlayer::SetMPlayerVolume(void) { - float mpNewVol; bool mute; Lock(); - if(status->GetVolume(mpNewVol,mute)) { + if(status->GetVolume(mpVolume,mute)) { if(mute) { if(!mpMute) { MPlayerControl("mute"); mpMute=true; } } else { if(mpMute) { MPlayerControl("mute"); mpMute=false; } - const int dir=mpNewVol>=mpVolume ? 1 : -1; - while(fabs(mpNewVol-mpVolume)>=(MPLAYER_VOL_STEP/2)) { - MPlayerControl("volume %d",dir); + MPlayerControl("volume %f 1",mpVolume); mpMute=false; - mpVolume+=MPLAYER_VOL_STEP * (float)dir; - } } - d(printf("mplayer: mpNewVol=%.2f mpVolume=%.2f mpMute=%d\n",mpNewVol,mpVolume,mpMute)) + d(printf("mplayer: mpVolume=%.2f mpMute=%d\n",mpVolume,mpMute)) } Unlock(); }