diff --git a/src/display/utils.cc b/src/display/utils.cc index a3ff1154..aaa1b070 100644 --- a/src/display/utils.cc +++ b/src/display/utils.cc @@ -46,6 +46,7 @@ #include #include #include +#include #include "core/download.h" @@ -221,6 +222,14 @@ print_download_percentage_done(char* first, char* last, core::Download* d) { return print_buffer(first, last, "[%2u%%]", (d->download()->chunks_done() * 100) / d->download()->chunks_total()); } +char* +print_client_version(char* first, char* last, const torrent::ClientInfo& clientInfo) { + return print_buffer(first, last, "%s %hhu.%hhu.%hhu.%hhu", + clientInfo.short_description(), + clientInfo.version()[0], clientInfo.version()[1], + clientInfo.version()[2], clientInfo.version()[3]); +} + char* print_status_info(char* first, char* last) { if (torrent::up_throttle() == 0) diff --git a/src/display/utils.h b/src/display/utils.h index 414f97f0..a79969af 100644 --- a/src/display/utils.h +++ b/src/display/utils.h @@ -49,6 +49,7 @@ namespace utils { } namespace torrent { + class ClientInfo; class Entry; } @@ -69,6 +70,8 @@ char* print_download_status(char* first, char* last, core::Download* d); char* print_download_time_left(char* first, char* last, core::Download* d); char* print_download_percentage_done(char* first, char* last, core::Download* d); +char* print_client_version(char* first, char* last, const torrent::ClientInfo& clientInfo); + char* print_entry_tags(char* first, char* last); char* print_entry_file(char* first, char* last, const torrent::Entry& entry); diff --git a/src/display/window_peer_list.cc b/src/display/window_peer_list.cc index 09fd410f..4a1bd2b3 100644 --- a/src/display/window_peer_list.cc +++ b/src/display/window_peer_list.cc @@ -48,6 +48,7 @@ #include "canvas.h" #include "client_info.h" +#include "utils.h" #include "window_peer_list.h" namespace display { @@ -139,11 +140,10 @@ WindowPeerList::redraw() { x += 7; char buf[128]; - torrent::ClientInfo clientInfo = torrent::client_list()->parse_id(p.id()); + torrent::ClientInfo clientInfo; + torrent::client_list()->retrieve_id(&clientInfo, p.id()); - std::strncpy(buf, clientInfo.short_description(), 128); - -// control->client_info()->print(buf, buf + 128, p.id().data()); + print_client_version(buf, buf + 128, clientInfo); m_canvas->print(x, y, "%s", buf);