[DEV] try to have faster load of every element in the listView
This commit is contained in:
parent
557545b74a
commit
95fdcfcc34
@ -124,6 +124,60 @@ void appl::widget::ListViewer::searchElements(std::string _filter) {
|
|||||||
}
|
}
|
||||||
elem->m_id = it;
|
elem->m_id = it;
|
||||||
elem->m_metadataUpdated = false;
|
elem->m_metadataUpdated = false;
|
||||||
|
// TODO : Type the "andThen" to simplify user experience
|
||||||
|
// TODO : Add the reference on the typed future in the function andTrn ... ==> then we can add later the cancel
|
||||||
|
appl::widget::ListViewerShared tmpWidget = ememory::staticPointerCast<appl::widget::ListViewer>(sharedFromThis());
|
||||||
|
remoteServiceVideo.mediaMetadataGetKey(it, "title")
|
||||||
|
.andThen([&](zeus::FutureBase _fut){
|
||||||
|
zeus::Future<std::string> futTmp(_fut);
|
||||||
|
elem->m_title = futTmp.get();;
|
||||||
|
tmpWidget->markToRedraw();
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
remoteServiceVideo.mediaMetadataGetKey(it, "series-name")
|
||||||
|
.andThen([&](zeus::FutureBase _fut){
|
||||||
|
zeus::Future<std::string> futTmp(_fut);
|
||||||
|
elem->m_serie = futTmp.get();;
|
||||||
|
tmpWidget->markToRedraw();
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
remoteServiceVideo.mediaMetadataGetKey(it, "saison")
|
||||||
|
.andThen([&](zeus::FutureBase _fut){
|
||||||
|
zeus::Future<std::string> futTmp(_fut);
|
||||||
|
elem->m_saison = futTmp.get();;
|
||||||
|
tmpWidget->markToRedraw();
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
remoteServiceVideo.mediaMetadataGetKey(it, "episode")
|
||||||
|
.andThen([&](zeus::FutureBase _fut){
|
||||||
|
zeus::Future<std::string> futTmp(_fut);
|
||||||
|
elem->m_episode = futTmp.get();;
|
||||||
|
tmpWidget->markToRedraw();
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
remoteServiceVideo.mediaMetadataGetKey(it, "description")
|
||||||
|
.andThen([&](zeus::FutureBase _fut){
|
||||||
|
zeus::Future<std::string> futTmp(_fut);
|
||||||
|
elem->m_description = futTmp.get();;
|
||||||
|
tmpWidget->markToRedraw();
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
elem->m_thumb = egami::load("DATA:Home.svg", ivec2(128,128));
|
||||||
|
remoteServiceVideo.mediaMineTypeGet(it)
|
||||||
|
.andThen([&](zeus::FutureBase _fut){
|
||||||
|
zeus::Future<std::string> futTmp(_fut);
|
||||||
|
elem->m_mineType = futTmp.get();
|
||||||
|
if (etk::start_with(elem->m_mineType, "video") == true) {
|
||||||
|
// TODO : Optimise this ...
|
||||||
|
elem->m_thumb = egami::load("DATA:Video.svg", ivec2(128,128));
|
||||||
|
} else if (etk::start_with(elem->m_mineType, "audio") == true) {
|
||||||
|
// TODO : Optimise this ...
|
||||||
|
elem->m_thumb = egami::load("DATA:MusicNote.svg", ivec2(128,128));
|
||||||
|
}
|
||||||
|
tmpWidget->markToRedraw();
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
/*
|
||||||
elem->m_title = remoteServiceVideo.mediaMetadataGetKey(it, "title").wait().get();
|
elem->m_title = remoteServiceVideo.mediaMetadataGetKey(it, "title").wait().get();
|
||||||
elem->m_serie = remoteServiceVideo.mediaMetadataGetKey(it, "series-name").wait().get();
|
elem->m_serie = remoteServiceVideo.mediaMetadataGetKey(it, "series-name").wait().get();
|
||||||
elem->m_saison = remoteServiceVideo.mediaMetadataGetKey(it, "saison").wait().get();
|
elem->m_saison = remoteServiceVideo.mediaMetadataGetKey(it, "saison").wait().get();
|
||||||
@ -138,21 +192,11 @@ void appl::widget::ListViewer::searchElements(std::string _filter) {
|
|||||||
elem->m_thumb = egami::load("DATA:MusicNote.svg", ivec2(128,128));
|
elem->m_thumb = egami::load("DATA:MusicNote.svg", ivec2(128,128));
|
||||||
}
|
}
|
||||||
elem->m_metadataUpdated = true;
|
elem->m_metadataUpdated = true;
|
||||||
|
*/
|
||||||
|
elem->m_metadataUpdated = true;
|
||||||
//elem->m_thumb = remoteServiceVideo.mediaThumbGet(it, 128).wait().get();
|
//elem->m_thumb = remoteServiceVideo.mediaThumbGet(it, 128).wait().get();
|
||||||
m_listElement.push_back(elem);
|
m_listElement.push_back(elem);
|
||||||
}
|
}
|
||||||
class ElementProperty {
|
|
||||||
public:
|
|
||||||
uint32_t id; //!< Remote Id of the Media
|
|
||||||
bool m_metadataUpdated; //!< Check value to know when metadata is getted (like thumb ...)
|
|
||||||
egami::Image thumb; //!< simple image describing the element
|
|
||||||
std::string title; //!< Title of the Element
|
|
||||||
std::string description; //!< Description of the element
|
|
||||||
std::string type; //!< video/audio/image/...
|
|
||||||
// TODO: float globalNote; //!< note over [0,0..1,0]
|
|
||||||
// TODO: int32_t countPersonalView; //!< number of view this media
|
|
||||||
// TODO: int64_t globalPersonalView; //!< number of time this media has been viewed
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void appl::widget::ListViewer::onDraw() {
|
void appl::widget::ListViewer::onDraw() {
|
||||||
|
@ -58,7 +58,7 @@
|
|||||||
</sizer>
|
</sizer>
|
||||||
<ListViewer name="ws-name-list-viewer" fill="true,true" expand="true,true"/>
|
<ListViewer name="ws-name-list-viewer" fill="true,true" expand="true,true"/>
|
||||||
<sizer mode="vert" name="ws-name-player" fill="true,true" expand="true,true">
|
<sizer mode="vert" name="ws-name-player" fill="true,true" expand="true,true">
|
||||||
<sizer mode="hori" fill="true,true" expand="true,true">
|
<sizer mode="hori" fill="true,true" expand="true,false">
|
||||||
<button name="bt-previous">
|
<button name="bt-previous">
|
||||||
<label>
|
<label>
|
||||||
previous
|
previous
|
||||||
|
Loading…
x
Reference in New Issue
Block a user