2014-04-14 14:55:00 -04:00
|
|
|
#include <sstream>
|
2015-01-09 08:52:50 -05:00
|
|
|
#include <sys/sysinfo.h>
|
2014-04-14 14:47:51 -04:00
|
|
|
|
|
|
|
#include "memory.h"
|
2014-04-14 14:55:00 -04:00
|
|
|
#include "../luts.h"
|
2014-04-14 14:47:51 -04:00
|
|
|
|
|
|
|
std::string mem_string( bool use_colors = false ) {
|
|
|
|
std::ostringstream oss;
|
|
|
|
|
2015-01-09 08:52:50 -05:00
|
|
|
struct sysinfo sinfo;
|
|
|
|
sysinfo(&sinfo);
|
2014-04-14 14:47:51 -04:00
|
|
|
|
2015-01-09 08:52:50 -05:00
|
|
|
unsigned int total_mem = sinfo.totalram / 1014;
|
|
|
|
unsigned int used_mem = total_mem - sinfo.freeram / 1024;
|
|
|
|
// we don't need this for now
|
|
|
|
//unsigned int unused_mem = sinfo.freeram / 1024;
|
|
|
|
|
2014-04-14 14:47:51 -04:00
|
|
|
if( use_colors ) {
|
|
|
|
oss << mem_lut[(100 * used_mem) / total_mem];
|
|
|
|
}
|
|
|
|
|
|
|
|
oss << used_mem / 1024 << '/' << total_mem / 1024 << "MB";
|
|
|
|
|
|
|
|
if( use_colors ) {
|
|
|
|
oss << "#[fg=default,bg=default]";
|
|
|
|
}
|
|
|
|
|
|
|
|
return oss.str();
|
|
|
|
}
|
|
|
|
|