Skip to content

Commit 9b56790

Browse files
committed
增加开机写PCM控制
1 parent 5b5e991 commit 9b56790

File tree

11 files changed

+94
-26
lines changed

11 files changed

+94
-26
lines changed

apps/player/SettingProvider.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ namespace mango
7979
int SettingProvider::insert(int id,int value){
8080
int ret = 0;
8181
char *pErrMsg = 0;
82-
char *ptr,sql[1024];
82+
char *ptr,sql[1024]={0};
8383

8484
ptr = sql;
8585
sprintf(ptr,"insert into settings values(%d,%d)",id,value);
@@ -95,7 +95,7 @@ namespace mango
9595
int SettingProvider::insert(int id,int value,const char *str){
9696
int ret = 0;
9797
char *pErrMsg = 0;
98-
char *ptr,sql[1024];
98+
char *ptr,sql[1024]={0};
9999

100100
if(id == SETTING_VOLUME_ID){
101101
saveVolume(value);
@@ -145,7 +145,7 @@ namespace mango
145145
int SettingProvider::updateSDcard(__u32 value,char* buf,int id){
146146
int ret = 0;
147147
char *pErrMsg = 0;
148-
char *ptr,sql[1024];
148+
char *ptr,sql[1024]={0};
149149

150150
ptr = sql;
151151
sprintf(ptr,"update settings set value=%d,name='%s' where _id=%d",value,buf,id);
@@ -164,7 +164,7 @@ namespace mango
164164
int SettingProvider::update(int id,int value){
165165
int ret = 0;
166166
char *pErrMsg = 0;
167-
char *ptr,sql[1024],safe[100];
167+
char *ptr,sql[1024]={0},safe[100]={0};
168168

169169
if(id == SETTING_VOLUME_ID){
170170
/*int retry = 3;
@@ -196,7 +196,7 @@ namespace mango
196196
int SettingProvider::queryCursor(int id,Cursor *cur){
197197
int ret = 0;
198198
char *pErrMsg = 0;
199-
char *ptr,sql[1024];
199+
char *ptr,sql[1024]={0};
200200

201201
ptr = sql;
202202
sprintf(ptr,"select * from settings where _id=%d",id);
@@ -213,7 +213,7 @@ namespace mango
213213
int SettingProvider::query(int id,int *value){
214214
int ret = 0;
215215
char *pErrMsg = 0;
216-
char *ptr,sql[1024];
216+
char *ptr,sql[1024]={0};
217217
IntegerArray *array;
218218
array = new IntegerArray();
219219

@@ -229,7 +229,7 @@ namespace mango
229229
ret = sqlite3_exec(db,sql,SettingProvider::sql_callback,(void*)array,&pErrMsg);
230230

231231
if(ret != SQLITE_OK){
232-
log_e("sqlite3_exec error : %s\n",pErrMsg);
232+
log_e("sqlite3_exec error : %s\n",pErrMsg);
233233
}
234234
if(value == NULL)
235235
return array->getItem(0);
@@ -249,7 +249,7 @@ namespace mango
249249
int SettingProvider::EqQuery(int id,int *value){
250250
int ret = 0;
251251
char *pErrMsg = 0;
252-
char *ptr,sql[1024];
252+
char *ptr,sql[1024]={0};
253253
IntegerArray *array;
254254
array = new IntegerArray();
255255

@@ -270,7 +270,7 @@ namespace mango
270270
int SettingProvider::EqInsert(int id,int *value){
271271
int ret = 0;
272272
char *pErrMsg = 0;
273-
char *ptr,sql[1024];
273+
char *ptr,sql[1024]={0};
274274

275275
ptr = sql;
276276
sprintf(ptr,"insert into eqdata values(%d,%d,%d,%d,%d,%d,%d,%d,%d)",
@@ -287,7 +287,7 @@ namespace mango
287287
int SettingProvider::EqUpdate(int id,int *value){
288288
int ret = 0;
289289
char *pErrMsg = 0;
290-
char *ptr,sql[1024];
290+
char *ptr,sql[1024]={0};
291291

292292
ptr = sql;
293293
sprintf(ptr,"update eqdata set val_0=%d,val_1=%d,val_2=%d,val_3=%d,val_4=%d,val_5=%d,val_6=%d,val_7=%d where _id=%d",

apps/player/SettingsView.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,12 @@ namespace mango
3333
if(mode){
3434
log_i("------------>set usb hifi");
3535
system("stop usbd");
36+
system("setprop persist.usb.debug 1");
3637
system("setprop persist.sys.usb.config hifi");
3738
system("start usbd");
3839
}else{
3940
log_i("------------>set usb storage");
40-
//system("stop usbd");
41+
system("setprop persist.usb.debug 0");
4142
system("setprop persist.sys.usb.config mass_storage");
4243
}
4344
}

apps/player/USBHiFi.cpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -528,7 +528,30 @@ int gSendingCount = 0;
528528
return 0;
529529
}
530530

531+
void PcmWrite::start(){
532+
int i;
533+
struct pcm* mHiFiOut;
534+
unsigned char data[HIFI_PACKET_SIZE - 4] = {0};
535+
536+
unsigned flags = PCM_OUT;
537+
flags |= PCM_STEREO;
538+
flags |= (AUDIO_HW_OUT_PERIOD_MULT - 1) << PCM_PERIOD_SZ_SHIFT;
539+
flags |= (AUDIO_HW_OUT_PERIOD_CNT - PCM_PERIOD_CNT_MIN) << PCM_PERIOD_CNT_SHIFT;
540+
541+
mHiFiOut = hifi_pcm_open(flags, 2, 44100, 16);
531542

543+
if (!hifi_pcm_ready(mHiFiOut)){
544+
hifi_pcm_close(mHiFiOut);
545+
log_i("fail to open pcm");
546+
return;
547+
}
548+
log_i("PcmWrite start-.");
549+
for(i=0;i<30;i++)
550+
pcm_write(mHiFiOut, data, HIFI_PACKET_SIZE - 4);
551+
552+
hifi_pcm_close(mHiFiOut);
553+
log_i("PcmWrite end.");
554+
}
532555

533556
USBHiFi::USBHiFi(void)
534557
{

apps/player/USBHiFi.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,10 @@ namespace mango
2626
Thread mSendCodecThread;
2727

2828
};
29+
class PcmWrite{
30+
public:
31+
PcmWrite(void){}
32+
~PcmWrite(void){}
33+
void start();
34+
};
2935
};

apps/player/audiousb.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -437,7 +437,7 @@ void sendAudioMsg(int rate,int bit){
437437

438438
while(1)
439439
{
440-
if (fp == NULL// && gReadingTouchCount
440+
if (fp == NULL //&& isHifiMode()
441441
)
442442
fp = fopen("/dev/android_hifi", "r");
443443
if (fp)
@@ -452,8 +452,6 @@ void sendAudioMsg(int rate,int bit){
452452
else
453453
{
454454
logi("fopen /dev/android_hifi fail usleep ");
455-
// strcpy((char*)buffer, "a12345");
456-
// WriteRingBuffer(buffer, 6);
457455
usleep(1000 * 1000);
458456
}
459457

apps/player/player.cpp

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ namespace mango
5959
mPlayinglist = new Playinglist();
6060
//mPlayinglist->initPlayintList();
6161
mPlayinglist->cursorInit();
62+
mPlayinglist->startSlient();
6263
//mango::Thread::sleep(1000 * 3);
6364

6465
mSpdifSwitch = new PlayerSwitch();
@@ -93,6 +94,7 @@ namespace mango
9394
//mUSBHiFi->onCreate();
9495
openOrCloseMute(true);
9596
Environment::openMute();
97+
9698
return messageLoop();
9799
}
98100
void Player::setBootWakeLock(int en){
@@ -493,7 +495,7 @@ namespace mango
493495

494496
int Player::getVolume(void)
495497
{
496-
#if CODEC_VOLUME
498+
if(gPlayer.mCodecType==0){
497499
FILE* file = NULL;
498500
char buffer[20]={0};
499501
int currentVolume;
@@ -517,19 +519,20 @@ namespace mango
517519
fclose(file);
518520
//log_i("Player::getVolume currentVolume=%d",currentVolume);
519521
return currentVolume;
520-
#else
522+
}
523+
else if(gPlayer.mCodecType==1){
521524
if(mPlayinglist)
522525
if(mPlayinglist->mParticleplayer)
523526
return mPlayinglist->mParticleplayer->getAudioVolume();
524527
return mPlayerVolume;
525-
#endif
528+
}
526529
return 0;
527530
}
528531

529532

530533
void Player::setVolume(int volume)
531534
{
532-
#if CODEC_VOLUME
535+
if(gPlayer.mCodecType==0){
533536
FILE* file = NULL;
534537
char buffer[20]={0};
535538
int ret;
@@ -548,12 +551,14 @@ namespace mango
548551
}
549552

550553
volumeMutex.unlock();
551-
#else
554+
}
555+
else if(gPlayer.mCodecType==1){
556+
552557
if(mPlayinglist)
553558
if(mPlayinglist->mParticleplayer)
554559
mPlayinglist->mParticleplayer->setAudioVolume(volume);
555560
mPlayerVolume = volume;
556-
#endif
561+
}
557562
}
558563
void Player::setHardwareVolume(int volume){
559564
FILE* file = NULL;

apps/player/player.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
#define ARRAY_LIST_NUM 100
4949
#define CONVERT_UTF8
5050
#define ES9018_VOLUME "/sys/class/codec/es9018_volume"
51-
#define CODEC_VOLUME 1
51+
#define CODEC_VOLUME 0
5252

5353
namespace mango
5454
{

apps/player/playingView.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -716,11 +716,19 @@ namespace mango
716716
isSdcardShare = 1;
717717
}else if(code == USBHIFI_AUDIO_MSG){
718718
mPlayinglist->stopPlayer();
719+
Environment::openMute();
720+
gPlayer.openWm8740Mute();
721+
gPlayer.closeWm8740Mute();
719722
gPlayer.showUSBAudioConnectView();
723+
//if(gPlayer.mCodecType==1)
724+
// gPlayer.setHardwareVolume(200);
720725
}else if(code == USBHIFI_AUDIO_STOP){
721726
system("stop usbd");
722727
gPlayer.dismissView(gPlayer.mUSBAudioConnectView);
723728
system("start usbd");
729+
//if(gPlayer.mCodecType==1)
730+
// gPlayer.setHardwareVolume(255);
731+
724732
log_i("----------USBHIFI_AUDIO_STOP");
725733
}
726734
return 0;

apps/player/playinglist.cpp

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,32 @@ static const char *PlayerLock = "playerlock";
1515
#ifndef WIN32
1616
// particle::MediaPlayerInterface* mParticleplayer = NULL; // = particle::createMediaPlayer();
1717
#endif
18+
19+
void Playinglist::startSlient(){
20+
#if 0
21+
particle::MediaPlayerInterface* mtemp = particle::createMediaPlayer();
22+
const char* etc = "/system/etc/T SN(LR).mp3";
23+
24+
if(FileAttr::FileExist(etc)){
25+
log_i("enter play slient.");
26+
gPlayer.openWm8740Mute();
27+
mtemp->stop();
28+
mtemp->setSource(etc);
29+
mtemp->prepare();
30+
mtemp->start();
31+
Thread::sleep(200);
32+
gPlayer.closeWm8740Mute();
33+
Thread::sleep(1000);
34+
log_i("play slient stop.");
35+
mtemp->stop();
36+
}
37+
#else
38+
PcmWrite pcmWrite;
39+
gPlayer.openWm8740Mute();
40+
gPlayer.closeWm8740Mute();
41+
pcmWrite.start();
42+
#endif
43+
}
1844
static char* mstrcpy(char *str,char *arg){
1945
int len;
2046
if(arg == NULL)
@@ -27,7 +53,7 @@ static const char *PlayerLock = "playerlock";
2753
}
2854

2955
Playinglist::Playinglist(){
30-
particle::MediaPlayerInterface* mtemp;
56+
3157

3258
len = 0;
3359
mCurrent = 0;
@@ -784,11 +810,11 @@ static const char *PlayerLock = "playerlock";
784810
gSettingProvider.query(SETTING_GAPLESS_ID,&gaplessEn);
785811
gSettingProvider.query(SETTING_EQMODE_ID,&eqMode);
786812
gSettingProvider.EqQuery(eqMode,EqValue);
787-
#if CODEC_VOLUME
813+
if(gPlayer.mCodecType==0){
788814
;
789-
#else
815+
}else if(gPlayer.mCodecType==1){
790816
mParticleplayer->setAudioVolume(gPlayer.mPlayerVolume);
791-
#endif
817+
}
792818
mParticleplayer->audioEqualizerEnable(eqOpen);
793819
mParticleplayer->setGaplessDuration(GaplessValue[gaplessEn]);
794820
setEq(EqValue);

apps/player/playinglist.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ namespace mango
3838

3939
Playinglist();
4040
~Playinglist();
41+
void startSlient();
4142
void setWakeLock();
4243
void releaseWakeLock();
4344
mediainfo *getPlayingItem();

apps/player/resource.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Module Name:
2121
2222
Revision History:
2323
24-
2014-3-15 16:36:58 Created by Fibo Lu
24+
2014-3-18 15:13:48 Created by Fibo Lu
2525
2626
--*/
2727

0 commit comments

Comments
 (0)