1 #ifndef SERVERMONITOR_H
2 #define SERVERMONITOR_H
4 #include <sys/socket.h>
20 #define VG_MSG_V1_SUPPORT
21 #define VG_LOG_SOURCE_INFO
22 #define VG_TIMESTEP_FIXED (1.0/60.0)
26 #include "vg/vg_lines.h"
27 #include "vg/vg_imgui.h"
28 #include "monitorinfo.h"
30 int main( int argc
, char *argv
[] ){
31 vg_mem
.use_libc_malloc
= 0;
32 vg_set_mem_quota( 160*1024*1024 );
33 vg_enter( argc
, argv
, "Server Monitor" );
37 VG_STATIC
void vg_launch_opt(void){}
39 static int sockfd
= -1;
41 static void connect_to_monitor_server(void){
42 struct sockaddr_un serv_addr
;
44 if((sockfd
= socket(AF_UNIX
, SOCK_STREAM
|SOCK_NONBLOCK
, 0)) < 0){
45 vg_error("Could not create socket\n");
50 memset( &serv_addr
, 0, sizeof(serv_addr
) );
52 serv_addr
.sun_family
= AF_UNIX
;
53 strcpy( serv_addr
.sun_path
, MONITOR_SOCK_PATH
);
55 vg_info( "Connecting...\n" );
56 if( connect(sockfd
, (struct sockaddr
*)&serv_addr
, sizeof(serv_addr
)) < 0 ){
57 vg_error("Connect Failed \n");
63 vg_success( "Connected\n" );
66 VG_STATIC
void vg_preload(void){}
68 VG_STATIC
void vg_load(void){
70 vg_console_load_autos();
75 * ---------------------------------------------------------------------------*/
77 VG_STATIC
void vg_pre_update(void){
78 if( sockfd
== -1 ) return;
81 int len
= read(sockfd
, recvBuff
, sizeof(recvBuff
)-1);
85 vg_info( "%s", recvBuff
);
89 VG_STATIC
void vg_fixed_update(void){
92 VG_STATIC
void vg_post_update(void){
97 * ---------------------------------------------------------------------------*/
99 VG_STATIC
void vg_framebuffer_resize( int w
, int h
){
102 VG_STATIC
void vg_render(void){
103 glBindFramebuffer( GL_FRAMEBUFFER
, 0 );
104 glViewport( 0,0, vg
.window_x
, vg
.window_y
);
105 glDisable( GL_DEPTH_TEST
);
106 glDisable( GL_BLEND
);
108 glClearColor( 0.1f
, 0.1f
, 0.1f
, 1.0f
);
109 glClear( GL_COLOR_BUFFER_BIT
|GL_DEPTH_BUFFER_BIT
);
114 VG_STATIC
void vg_gui(void){
115 vg_ui
.wants_mouse
= 1;
117 ui_rect panel
= { 0, 0, vg
.window_x
, vg
.window_y
};
118 ui_rect_pad( panel
, (ui_px
[]){ 8, 8 } );
120 const char *pages
[] = { "Status", "Options" };
121 ui_tabs( panel
, panel
, pages
, vg_list_size(pages
), &page
);
125 snprintf( buf
, 511, "%sSockfd: %d", (sockfd
==-1?KRED
:KGRN
), sockfd
);
126 ui_info( panel
, buf
);
129 if( ui_button( panel
, "Reconnect" ) == 1 ){
130 connect_to_monitor_server();
134 if( ui_button( panel
, "Disconnect" ) == 1 ){
142 #endif /* SERVERMONITOR_H */