package com.kitty.poclient.util;
import java.util.ArrayList;
import java.util.List;
import android.util.Log;
import com.kitty.poclient.R;
import com.kitty.poclient.common.Constant;
import com.kitty.poclient.common.UpnpApp;
import com.kitty.poclient.common.WatchDog;
import com.kitty.poclient.dao.PackDao;
import com.kitty.poclient.data.VirtualData;
import com.kitty.poclient.domain.Album;
import com.kitty.poclient.domain.AlbumDetail;
import com.kitty.poclient.domain.Disk;
import com.kitty.poclient.domain.Music;
import com.kitty.poclient.domain.Pack;
import com.kitty.poclient.service.impl.AlbumDetailServiceImpl;
public class MediaInfoUtil {
public static String TAG = "MediaInfoUtil";
public static boolean getCurrentPlayingInfo(String currengURI,String mediaDuration){
Log.i(TAG, "currengURI=" + currengURI);
URIParams uriParams=new URIParams(currengURI);
int type=uriParams.getType();
long musicId=0;
switch (type) {
case 1://allmusic
WatchDog.mediaOutOfService=false;
//初始化播放列表
WatchDog.currentList=(ArrayList<Music>) VirtualData.musics;
WatchDog.currentListType = Constant.URI_MUSIC;
WatchDog.currentListId = 0L;
musicId=Long.parseLong(uriParams.getParams().get("musicid"));
break;
case 2://music
WatchDog.mediaOutOfService=false;
//初始化播放列表
WatchDog.currentList=(ArrayList<Music>) VirtualData.musics;
WatchDog.currentListType = Constant.URI_MUSIC;
WatchDog.currentListId = 0L;
musicId=Long.parseLong(uriParams.getParams().get("id"));
break;
case 3://album
WatchDog.mediaOutOfService=false;
long albumId=Long.parseLong(uriParams.getParams().get("id"));
for (Album album:VirtualData.albums) {
if (album.getId()==albumId) {
List<Music> list =new ArrayList<Music>();
AlbumDetail detail=new AlbumDetailServiceImpl().getAblumDetail(albumId);
for(Disk d:detail.getDisklist()){
list.addAll(d.getMusicList());
}
//初始化播放列表
WatchDog.currentList=(ArrayList<Music>) list;
WatchDog.currentListType = Constant.URI_ALBUM;
WatchDog.currentListId=albumId;
}
}
musicId=Long.parseLong(uriParams.getParams().get("musicid"));
break;
case 4://theme
WatchDog.mediaOutOfService=false;
long themeId=Long.parseLong(uriParams.getParams().get("id"));
for (Pack theme:VirtualData.packs) {
if (theme.getId()==themeId) {
//初始化播放列表
WatchDog.currentList=(ArrayList<Music>) theme.getLi();//没有拿到主题音乐列表,主动操作以外根本拿不到
if (WatchDog.currentList==null) {
WatchDog.currentList=(ArrayList<Music>) new PackDao().getPackDetailById(theme).getLi();
}
WatchDog.currentListType = Constant.URI_THEME;
WatchDog.currentListId=themeId;
}
}
musicId=Long.parseLong(uriParams.getParams().get("musicid"));
break;
case 5://playlist
WatchDog.mediaOutOfService=true;
WatchDog.mediaOutOfServiceReson=UpnpApp.context.getResources().getString(R.string.mosReasonPlaylist);
// UpnpApp.context.sendBroadcast(new Intent("mediaOutOfServiceReceiver"));
musicId=Long.parseLong(uriParams.getParams().get("musicid"));
break;
case URIParams.URI_TYPE_USB://usb
//TODO
break;
case URIParams.URI_TYPE_CUE://usb
//TODO cue child uri:"xxbox://cue?source=/mnt/usb_storage/USB_DISK0/udisk0/music%20and%20video/cue/CDImage.cue&title=零时十分&start=239210&end=440430"
break;
}
if (WatchDog.currentList==null) {
WatchDog.currentList=(ArrayList<Music>) VirtualData.musics;
}
for (Music music:WatchDog.currentList) {
if (music.getId()==musicId) {
WatchDog.currentPlayingMusic=music;
WatchDog.currentPlayingId=WatchDog.currentPlayingMusic.getId();
WatchDog.currentPlayingName=music.getName();
WatchDog.currentArtistName=music.getArtistName();
}
}
return true;
}
}