aboutsummaryrefslogtreecommitdiff
path: root/plat_sdl.c
diff options
context:
space:
mode:
authorneonloop2021-08-24 15:09:09 +0000
committerneonloop2021-08-24 15:09:09 +0000
commit702d6adc2133e21861e227cdb1ae8b0e4a89e410 (patch)
treee8c1d630c194d0254cfe4b203c3609e54e151479 /plat_sdl.c
parent38a49a2794e82568031c4315a0c797d23a920d69 (diff)
downloadpicoarch-702d6adc2133e21861e227cdb1ae8b0e4a89e410.tar.gz
picoarch-702d6adc2133e21861e227cdb1ae8b0e4a89e410.tar.bz2
picoarch-702d6adc2133e21861e227cdb1ae8b0e4a89e410.zip
Adds option for CPU % display
Diffstat (limited to 'plat_sdl.c')
-rw-r--r--plat_sdl.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/plat_sdl.c b/plat_sdl.c
index e4d2c1f..010d1b6 100644
--- a/plat_sdl.c
+++ b/plat_sdl.c
@@ -1,4 +1,5 @@
#include <SDL/SDL.h>
+#include <unistd.h>
#include "core.h"
#include "libpicofe/fonts.h"
#include "libpicofe/plat.h"
@@ -227,6 +228,31 @@ void plat_video_close(void)
{
}
+unsigned plat_cpu_ticks(void)
+{
+ long unsigned ticks = 0;
+ long ticksps = 0;
+ FILE *file = NULL;
+
+ file = fopen("/proc/self/stat", "r");
+ if (!file)
+ goto finish;
+
+ if (!fscanf(file, "%*d %*s %*c %*d %*d %*d %*d %*d %*u %*u %*u %*u %*u %lu", &ticks))
+ goto finish;
+
+ ticksps = sysconf(_SC_CLK_TCK);
+
+ if (ticksps)
+ ticks = ticks * 100 / ticksps;
+
+finish:
+ if (file)
+ fclose(file);
+
+ return ticks;
+}
+
static void plat_sound_callback(void *unused, uint8_t *stream, int len)
{
int16_t *p = (int16_t *)stream;