Skip to content

Commit 40995a0

Browse files
committed
1.增加playinglist的排序
2.删掉部分多余的log
1 parent dbc9f43 commit 40995a0

File tree

8 files changed

+106
-20
lines changed

8 files changed

+106
-20
lines changed

apps/player/SettingProvider.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ namespace mango
241241
*value = 170;
242242
}
243243
}
244-
log_i("SettingProvider::query array=%d",array->getCount());
244+
//log_i("SettingProvider::query array=%d",array->getCount());
245245
return array->getCount();
246246
}
247247
}

apps/player/mediaView.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -296,12 +296,13 @@ namespace mango
296296
case SETTING_TITLE:{
297297
switch(getMainState()){
298298
case 0x1300:
299+
case 0x1100:
299300
if(menuIsShow())
300301
dismissOrderByMenu();
301302
else
302303
showOrderByMenu();
303304
break;
304-
}
305+
}
305306
break;
306307
}
307308
case MEDIA_ORDER_TILE:
@@ -310,7 +311,10 @@ namespace mango
310311
case MEDIA_ORDER_TIME:
311312
dismissOrderByMenu();
312313
mListView->deleteAllItems();
313-
mMusicAdapter->setMusicOrderby(id);
314+
switch(getMainState()){
315+
case 0x1300:mMusicAdapter->setMusicOrderby(id);break;
316+
case 0x1100:mPlayinglist->sort(id-MEDIA_ORDER_TILE);mPlayingListAdapter->refresh();break;
317+
}
314318
break;
315319
}
316320
return -1;
@@ -1260,7 +1264,7 @@ namespace mango
12601264
}
12611265

12621266
void MediaView::onMainStateChange(int mainState){
1263-
if(mainState == 0x1300){
1267+
if(mainState == 0x1300 || mainState == 0x1100){
12641268
mTitle->setShowIcon(true);
12651269
}else{
12661270
mTitle->setShowIcon(false);

apps/player/mediaprovider.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -546,7 +546,7 @@ namespace mango
546546
}
547547

548548
p = (i+1)*100/(fileArray.mLen + sdcard.imgSrcArray.getCount()/ 5);
549-
549+
//log_i("p=%d,i=%d,mLen=%d,count=%d",p,i,fileArray.mLen,sdcard.imgSrcArray.getCount()/ 5);
550550
if(progress<p){
551551
progress = p;
552552
sendMsgProgress(progress);

apps/player/playingView.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -182,8 +182,6 @@ namespace mango
182182
}
183183

184184
void PlayingView::ViewInit(void){
185-
log_i("PlayingView::ViewInit");
186-
187185
Mstring* mstr;
188186
mediainfo* currentinfo;
189187
int duration = 0;
@@ -375,7 +373,6 @@ namespace mango
375373
}else{
376374
mEqState->setTextResoure(0);
377375
}
378-
log_i("end");
379376
}
380377

381378
void PlayingView::updateAudioInfo(){
@@ -470,10 +467,8 @@ namespace mango
470467
isNeedFresh = 0;
471468
}else if(fromView == NULL && code == NM_PLAY_COM){
472469
Playinglist *list = (Playinglist *)parameter;
473-
log_i("PlayingView::onNotify NM_PLAY_COM");
474470
list->callbackPlay();
475471
ViewInit();
476-
log_i("PlayingView::onNotify NM_PLAY_COM leave");
477472
}else if(parameter == mSeekBar){
478473
switch(code){
479474
case NM_SEEKBAR_DOWM:
@@ -740,7 +735,6 @@ namespace mango
740735

741736
int PlayingView::onKeyUp(int keyCode, int flag)
742737
{
743-
log_i("enter");
744738
switch(keyCode) {
745739
case KEYCODE_BACK:
746740
break;

apps/player/playinglist.cpp

Lines changed: 88 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -463,7 +463,7 @@ static const char *PlayerLock = "playerlock";
463463
PlayerInit();
464464
Environment::openMute();
465465
}
466-
466+
467467
if(mParticleplayer == NULL)
468468
return -1;
469469

@@ -472,6 +472,8 @@ static const char *PlayerLock = "playerlock";
472472

473473
char *playPath = getPlayingItem()->path;
474474

475+
log_i("Playinglist::startPlayPosition needStart=%d, %d/%d:%s",needStart,mCurrent,len,playPath);
476+
475477
if(getPlayingItem()->isCue == 0
476478
&& mPlayingPath != NULL
477479
&& mPlayingPath == playPath
@@ -491,7 +493,7 @@ static const char *PlayerLock = "playerlock";
491493

492494
mPlayingPath = playPath;
493495
mIsCue = getPlayingItem()->isCue;
494-
mCueStart = getPlayingItem()->cueStart;
496+
mCueStart = getPlayingItem()->cueStart;
495497
return 0;
496498
}
497499

@@ -502,7 +504,7 @@ static const char *PlayerLock = "playerlock";
502504
if(playPath == NULL || !FileAttr::FileExist(playPath) || Environment::get_file_size(playPath)<10)
503505
return -3;
504506

505-
log_i("Playinglist::startPlayPosition needStart=%d, %d/%d:%s",needStart,mCurrent,len,playPath);
507+
506508

507509
if(inPause){
508510
inPause = 0;
@@ -905,6 +907,89 @@ static const char *PlayerLock = "playerlock";
905907
mParticleplayer->seekTo(pos);
906908
}
907909
}
910+
void Playinglist::sort(int sortby){
911+
mediainfo info;
912+
int i,count;
913+
914+
log_i("ArrayMediaInfo sort by %d,len=%d",sortby,len);
915+
916+
for(count = len;count>1;count--){
917+
for(i=0;i<count-1;i++){
918+
if(compare(&mplaylist[i],&mplaylist[i+1],sortby) > 0){
919+
info = mplaylist[i];
920+
mplaylist[i] = mplaylist[i+1];
921+
mplaylist[i+1] = info;
922+
923+
if(mCurrent == i)
924+
mCurrent = i+1;
925+
else if(mCurrent == (i+1))
926+
mCurrent = i;
927+
}
928+
}
929+
}
930+
}
931+
bool Playinglist::needSortByTrack(){
932+
int i,count = 0;
933+
934+
for(i=0;i<len;i++){
935+
if(mplaylist[i].track<1000)
936+
count++;
937+
}
938+
939+
if(count>1)
940+
return true;
941+
else
942+
return false;
943+
}
944+
int Playinglist::compare(mediainfo *first,mediainfo *end,int sortby){
945+
int ret=0;
946+
947+
if(sortby == 0){//order by name
948+
if(first->name_key == NULL)
949+
ret = -1;
950+
else if(end->name_key ==NULL)
951+
ret = 1;
952+
else
953+
ret = strcmp(first->title_key,end->title_key);
954+
}else if(sortby == 1){//order by track
955+
ret = strcmp(first->album_key,end->album_key);
956+
if(ret == 0){
957+
if(first->track < end->track){
958+
if(first->track != 0) //zero order in the end.
959+
ret = -1;
960+
else
961+
ret = 1;
962+
}else if(first->track > end->track){
963+
if(end->track!=0) //zero order in the end.
964+
ret = 1;
965+
else
966+
ret = -1;
967+
}else{
968+
ret = strcmp(first->title_key,end->title_key);
969+
}
970+
}
971+
}else if(sortby == 2){
972+
ret = strcmp(first->artist_key,end->artist_key);
973+
if(!ret){
974+
ret = strcmp(first->album_key,end->album_key);
975+
if(!ret){
976+
if(first->track < end->track)
977+
ret = 1;
978+
else if(first->track > end->track)
979+
ret = -1;
980+
}
981+
}
982+
}else if(sortby == 3){
983+
if(first->times < end->times)
984+
ret = 1;
985+
else if(first->times > end->times)
986+
ret = -1;
987+
else
988+
ret = 0;
989+
}
990+
//log_i("ArrayMediaInfo::compare ret = %d",ret);
991+
return ret;
992+
}
908993

909994
Playinglist *mPlayinglist = NULL;
910995
};

apps/player/playinglist.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@ namespace mango
9090
void fastRewind();
9191
void mediaInfoCpy(int des,mediainfo *src);
9292
void clearPlay();
93+
void sort(int sortby = 0);
94+
bool needSortByTrack();
95+
int compare(mediainfo *first,mediainfo *end,int sortby);
9396
//char* mstrcpy(char *str,char *arg);
9497
static void playerCallback(void* calldata, int evnet, int param0, int param1);
9598
static unsigned int CloseMuteRunnig(void *parameter);

base/party/session.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ namespace mango
156156
evnetCount = readBytes / sizeof(struct input_event);
157157
for (i = 0 ; i < evnetCount ; i++)
158158
{
159-
log_i("type = %d, code = %d, value = %d", EventBuf[i].type, EventBuf[i].code, EventBuf[i].value);
159+
//log_i("type = %d, code = %d, value = %d", EventBuf[i].type, EventBuf[i].code, EventBuf[i].value);
160160

161161
switch (EventBuf[i].type)
162162
{
@@ -182,10 +182,10 @@ namespace mango
182182
break;
183183

184184
default:
185-
log_d ("Unknow type %d \n", EventBuf[i].type) ;
185+
//log_d ("Unknow type %d \n", EventBuf[i].type) ;
186186
break ;
187187
}
188-
log_i("end");
188+
//log_i("end");
189189
}
190190

191191
}

include/mango/controls.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,10 @@ namespace mango
4545
pathlen = strlen(path)+1;
4646
mFilePath = new char[pathlen];
4747
memcpy(mFilePath,path,pathlen);
48-
log_i("open file:%s",mFilePath);
48+
4949
mFile = fopen(mFilePath, "rb");
5050
if (mFile == NULL) {
51-
log_e ("Can't open resource file %s \n", path);
51+
log_e ("Can't open resource file %s", path);
5252
safeDelete(mFilePath);
5353
return;
5454
}
@@ -57,7 +57,7 @@ namespace mango
5757

5858
width = headr[0];
5959
height = headr[1];
60-
log_i("width=%d,height=%d",width,height);
60+
6161
mBits = new int[width*height];
6262

6363
fseek(mFile,sizeof(int)*2,SEEK_SET);

0 commit comments

Comments
 (0)