Ejemplo n.º 1
0
void FPlaylistForm::FillListItems() {
	curplayingitemid = -1;
	int curplayingitemindex = -1;
	UList_->SetTextOfEmptyList(L"Empty playlist");
	Osp::Base::Collection::IEnumerator * pEnum;
	FMainForm *pMainForm = static_cast<FMainForm *>(Application::GetInstance()->GetAppFrame()->GetFrame()->GetControl("FMainForm"));
	if (pMainForm->isstreaming) {
		pEnum = pMainForm->playliststream->GetEnumeratorN();
	} else {
		pEnum = publicfunc_->playlist->GetEnumeratorN();
	}
	PlayListItem * playlistitem_ = null;
	int listitemindex = 1;
	while (pEnum->MoveNext() == E_SUCCESS) {
		playlistitem_ = static_cast<PlayListItem *> (pEnum->GetCurrent());
		if (pMainForm->isstreaming) {
			playlistitem_->iscurrent = (pMainForm->streamingcurrentitemindex == (listitemindex-1));
		}
		Osp::Base::String artist = playlistitem_->artist;
		Osp::Base::String title = playlistitem_->title;
		artist.Trim();
		title.Trim();
		if ((title == L"") && (artist == L"")) {
			title = publicfunc_->GetTitleFromUri(playlistitem_->uri);
			artist = "Unknown artist - without metadata";
		}
		if (artist == L"") {
			artist = L"Unknown artist";
		}
		if (title == L"") {
			title = L"Unknown title";
		}
		if (playlistitem_->iscurrent) {
			AddListItem(listitemindex, artist, title, currenticon);
			curplayingitemid = listitemindex;
			curplayingitemindex = listitemindex-1;
		} else {
			AddListItem(listitemindex, artist, title, null);
		}
		listitemindex++;
	}
	delete pEnum;
	if (curplayingitemindex > 1) {
		UList_->ScrollToTop(curplayingitemindex-1);
	} else {
		UList_->ScrollToTop();
	}
	this->RequestRedraw();
}