Skip to content

Commit 70bb265

Browse files
committed
add soft volume
1 parent bf5a89c commit 70bb265

8 files changed

+80
-8
lines changed

apps/player/MedaiPlayerService.cpp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -519,6 +519,23 @@ namespace particle
519519
}
520520

521521

522+
bool MediaPlayerService::setAudioVolume(int volume)
523+
{
524+
if (mPlayer)
525+
mPlayer->setAudioVolume(volume);
526+
}
527+
528+
529+
int MediaPlayerService::getAudioVolume()
530+
{
531+
if (mPlayer)
532+
return mPlayer->getAudioVolume();
533+
else
534+
return -1;
535+
}
536+
537+
538+
522539
bool MediaPlayerService::mediaInit(const char * filename)
523540
{
524541
XADataSource audioSource;

apps/player/MediaPlayerInterface.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,5 +184,16 @@ namespace particle
184184
return -1;
185185
}
186186

187+
bool MediaPlayerInterface::setAudioVolume(int volume)
188+
{
189+
return 0;
190+
}
191+
192+
int MediaPlayerInterface::getAudioVolume()
193+
{
194+
return -1;
195+
}
196+
197+
187198

188199
};

apps/player/MediaPlayerInterface.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,9 @@ namespace particle
100100
virtual bool selectAudioChunnel(int chunnel);
101101
virtual int getAudioChunnel();
102102

103+
virtual bool setAudioVolume(int volume);
104+
virtual int getAudioVolume();
105+
103106
};
104107

105108
extern MediaServiceData* gMediaServiceData;

apps/player/MediaPlayerService.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,9 @@ namespace particle
7676
bool selectAudioChunnel(int chunnel);
7777
int getAudioChunnel();
7878

79+
bool setAudioVolume(int volume);
80+
int getAudioVolume();
81+
7982
public:
8083
static void playerCallback(XAPlayItf caller, void * pContext, XAuint32 eventId);
8184
void playerCallbackProc(XAPlayItf caller, void * pContext, XAuint32 eventId);

apps/player/player.cpp

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,9 @@ namespace mango
5252
initialize();
5353
gSettingProvider.initialize();
5454
initSettings();
55-
56-
//spdifProbe();
55+
#if CODEC_VOLUME
56+
setHardwareVolume(255);
57+
#endif
5758
gmediaprovider.initialize();
5859

5960
mPlayinglist = new Playinglist();
@@ -475,7 +476,7 @@ namespace mango
475476

476477
int Player::getVolume(void)
477478
{
478-
#ifndef WIN32
479+
#if CODEC_VOLUME
479480
FILE* file = NULL;
480481
char buffer[20]={0};
481482
int currentVolume;
@@ -499,13 +500,19 @@ namespace mango
499500
fclose(file);
500501
//log_i("Player::getVolume currentVolume=%d",currentVolume);
501502
return currentVolume;
503+
#else
504+
if(mPlayinglist)
505+
if(mPlayinglist->mParticleplayer)
506+
return mPlayinglist->mParticleplayer->getAudioVolume();
507+
return mPlayerVolume;
502508
#endif
503509
return 0;
504510
}
505511

506512

507513
void Player::setVolume(int volume)
508514
{
515+
#if CODEC_VOLUME
509516
FILE* file = NULL;
510517
char buffer[20]={0};
511518
int ret;
@@ -524,6 +531,32 @@ namespace mango
524531
}
525532

526533
volumeMutex.unlock();
534+
#else
535+
if(mPlayinglist)
536+
if(mPlayinglist->mParticleplayer)
537+
mPlayinglist->mParticleplayer->setAudioVolume(volume);
538+
mPlayerVolume = volume;
539+
#endif
540+
}
541+
void Player::setHardwareVolume(int volume){
542+
FILE* file = NULL;
543+
char buffer[20]={0};
544+
int ret;
545+
546+
volumeMutex.lock();
547+
548+
if(FileAttr::FileExist("/dev/codec_volume"))
549+
file = fopen("/dev/codec_volume", "w");
550+
else if(FileAttr::FileExist(ES9018_VOLUME))
551+
file = fopen(ES9018_VOLUME, "w");
552+
553+
if (file != NULL) {
554+
sprintf(buffer, "%d", volume);
555+
ret = fwrite(buffer, 1, strlen(buffer) + 1, file);
556+
fclose(file);
557+
}
558+
559+
volumeMutex.unlock();
527560
}
528561
void Player::ioctrlBrightness(int cmd,int* brightness){
529562
int fd=0;

apps/player/player.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
#define ARRAY_LIST_NUM 100
4848
#define CONVERT_UTF8
4949
#define ES9018_VOLUME "/sys/class/codec/es9018_volume"
50+
#define CODEC_VOLUME 0
5051

5152
namespace mango
5253
{
@@ -213,6 +214,7 @@ namespace mango
213214
void dismissView(View *view);
214215
int getVolume(void);
215216
void setVolume(int volume);
217+
void setHardwareVolume(int volume);
216218
void setPowerState();
217219
void ioctrlBrightness(int cmd,int* brightness);
218220
int holdKeyProbe();
@@ -260,6 +262,7 @@ namespace mango
260262
PlayerSwitch *mSpdifSwitch;
261263
PlayerSwitch *mHeadestSwitch;
262264

265+
int mPlayerVolume;
263266
bool volumeInitFail;
264267
int mBoardType;//-1-unknow,0-rk2926,1-rk3026.
265268
int mCodecType;//-1-unknow,0-wm8740,1-es9018.

apps/player/playinglist.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -537,7 +537,7 @@ static const char *PlayerLock = "playerlock";
537537

538538
if(needStart)
539539
if(mParticleplayer->start()){log_i("start() success!");}else{log_i("start() fail!");goto Exit;}
540-
540+
mParticleplayer->setAudioVolume(gPlayer.mPlayerVolume);
541541
if(getPlayingItem()->isCue)
542542
{
543543
if(getPlayingItem()->cueStart>1000){
@@ -784,9 +784,11 @@ static const char *PlayerLock = "playerlock";
784784
gSettingProvider.query(SETTING_GAPLESS_ID,&gaplessEn);
785785
gSettingProvider.query(SETTING_EQMODE_ID,&eqMode);
786786
gSettingProvider.EqQuery(eqMode,EqValue);
787-
788-
log_i("PlayerInit eqOpen=%d,gaplessEn=%d",eqOpen,gaplessEn);
789-
787+
#if CODEC_VOLUME
788+
;
789+
#else
790+
mParticleplayer->setAudioVolume(gPlayer.mPlayerVolume);
791+
#endif
790792
mParticleplayer->audioEqualizerEnable(eqOpen);
791793
mParticleplayer->setGaplessDuration(GaplessValue[gaplessEn]);
792794
setEq(EqValue);

base/view/SeekBar.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ namespace mango
9696
if(mBkgImage>0)
9797
canvas.drawImageResource(mBkgImage, mBkgX, mBkgY);
9898
if(mSeekImage>0)
99-
canvas.drawImageResource(mSeekImage, mSeekX, mSeekY,mSeekWidth,10);
99+
canvas.drawImageResource(mSeekImage, mSeekX, mSeekY,mSeekWidth,4);
100100
#endif
101101
return 0;
102102
}

0 commit comments

Comments
 (0)