]> hackdaworld.org Git - my-code/ivac.git/commitdiff
display api improvements - to be continued
authorhackbard <hackbard>
Wed, 19 May 2004 17:25:08 +0000 (17:25 +0000)
committerhackbard <hackbard>
Wed, 19 May 2004 17:25:08 +0000 (17:25 +0000)
src/display.c
src/display.h
src/ivac.c
src/ivac.h

index 914ab63667cb166c812cf0633a52e4e36aef2332..89c6472edbfd09f1578887bc558e97fa8170cf4c 100644 (file)
@@ -11,12 +11,17 @@ int display_init(t_display *display) {
   puts("[display] initializing display ...");
 
   /* init stuff next .. */
+  display->max_x=atoi(getenv("COLUMNS"));
+  display->max_y=atoi(getenv("LINES"));
 
   return D_SUCCESS;
 }
 
 int display_refresh(t_display *display) {
 
+  display->max_x=atoi(getenv("COLUMNS"));
+  display->max_y=atoi(getenv("LINES"));
+
   return D_SUCCESS;
 }
 
@@ -26,3 +31,21 @@ int display_shutdown(t_display *display) {
 
   return D_SUCCESS;
 }
+
+int display_term_line(t_display *display,char sym) {
+
+  int i;
+
+  for(i=0;i<display->max_x;i++) printf("%c",sym);
+  printf("\n");
+
+  return D_SUCCESS;
+}
+
+int display_term_string(t_display *display,char *string) {
+
+  /* to be continued ... */
+
+  return D_SUCCESS;
+}
+
index 113e89258003989ea327a62b410875617ea9bbdd..a12f3807b5bb57f5743976730da42f4f4edb6a03 100644 (file)
@@ -2,11 +2,18 @@
 
 /* includes */
 #include <stdio.h>
+#include <stdlib.h>
 
 /* defines */
 #define D_SUCCESS 1
 #define D_ERROR -1
 
+#define MAX_TERM_STRING 64
+
+#define CENTERED (1<<0)
+#define LEFT (1<<1)
+#define RIGHT (1<<2)
+
 /* display specific variables */
 typedef struct s_display {
   int max_x;
@@ -19,3 +26,5 @@ typedef struct s_display {
 int display_init(t_display *display);
 int display_refresh(t_display *display);
 int display_shutdown(t_display *display);
+int display_term_line(t_display *display,char sym);
+int display_term_string(t_display *display,char *string);
index 44e831c8b649ad08a996269ac48ec9a27907e639..60338eec055ce19eb75578facb3e3d6124a4c643 100644 (file)
@@ -130,7 +130,13 @@ int main(int argc,char **argv) {
   audio_setup(&(ivac.audio));
 
   /* display */
-  ivac_display(&(ivac.display));
+#ifdef XXX_GUI
+  /* "constant" graphics */
+  ivac_display_head(&ivac);
+  ivac_display_box(&ivac);
+  ivac_display_console(&ivac);
+#endif
+  ivac_display(&ivac);
 
   /* start event system - callbacks used: ivac_event_cb + ivac_regular_cb */
   event_start(&(ivac.event),(void *)&ivac,ivac_event_cb,ivac_regular_cb);
@@ -273,7 +279,7 @@ int ivac_event_cb(t_event *event,void *ptr) {
       event_math(ivac->net.connection[channel].fd,event,READ,ADD);
       ivac_send_info(channel,ivac);
     }
-    ivac_display_content(ivac);
+    ivac_display(ivac);
   }
 
   /* wait for user info */
@@ -287,7 +293,7 @@ int ivac_event_cb(t_event *event,void *ptr) {
           sprintf(c_str,"channel %02d: broken pipe - disconnected",channel);
           ivac_add_to_monitor(ivac,c_str);
         }
-        ivac_display_content(ivac);
+        ivac_display(ivac);
       }
     }
   } 
@@ -320,7 +326,7 @@ int ivac_parse_command(t_input *input,void *ptr) {
   data=input->content;
   valid=0;
 
-  /* refresh prompt content only! */
+  /* refresh prompt content only */
   ivac_display_prompt_content(ivac);
 
   /* parse command routines */
@@ -453,7 +459,7 @@ int ivac_parse_command(t_input *input,void *ptr) {
     ivac_add_to_monitor(ivac,c_str);
 
     /* refresh whole display content */
-    ivac_display_content(ivac);
+    ivac_display(ivac);
 
     /* delete content buffer + reset counter */
     memset(input->content,0,input->c_count-1);
@@ -464,16 +470,26 @@ int ivac_parse_command(t_input *input,void *ptr) {
   return SUCCESS;
 }
 
-int ivac_display_head(t_display *display) {
+int ivac_display_head(t_ivac *ivac) {
 
-  puts("#########################################################");
+#ifndef XXX_GUI
+  display_term_line(&(ivac->display),'#');
   puts("##### ivac - -  Copyright (C) 2004 Frank Zirkelbach #####");
   puts("#########################################################");
+#endif
 
   return SUCCESS;
 }
 
-int ivac_display_box(t_display *display) {
+int ivac_display_box(t_ivac *ivac) {
+
+#ifndef XXX_GUI
+  puts("---------------------------------------------------------------------");
+  printf("username: %s, capabilities: %02x|%04x\n",ivac->username,ivac->g_cap,
+                                                   ivac->av_cap);
+  puts("---------------------------------------------------------------------");
+  puts("connections:");
+#endif
  
   return SUCCESS;
 }
@@ -487,10 +503,26 @@ int ivac_display_box_content(t_ivac *ivac) {
     if(ivac->challenger[channel].name[0]==0)
       strcpy(ivac->challenger[channel].name,"<empty>");
 
+#ifndef XXX_GUI
+  for(channel=0;channel<MAX_CONNECTIONS;channel++) {
+    if(ivac->net.connection[channel].status&C_INFO_A)
+      printf("channel %02d: %s:%d, status: %02x, name: %s\n",channel,
+             ivac->net.connection[channel].ip,
+             ivac->net.connection[channel].port,
+             ivac->net.connection[channel].status,
+             ivac->challenger[channel].name);
+  }
+#endif
+
   return SUCCESS;
 }
 
-int ivac_display_console(t_display *display) {
+int ivac_display_console(t_ivac *ivac) {
+
+#ifndef XXX_GUI
+  puts("---------------------------------------------------------------------");
+  puts("console messages:");
+#endif
 
   return SUCCESS;
 }
@@ -499,54 +531,58 @@ int ivac_display_console_content(t_ivac *ivac) {
 
   int i;
 
+#ifndef XXX_GUI
   for(i=0;i<IVAC_CONSOLE_LEN;i++)
-    printf("[ivac] console line %d: %s\n",i,ivac->console[i]);
+    printf("| %s\n",ivac->console[i]);
+#endif
 
   return SUCCESS;
 }
 
-int ivac_display_prompt(t_display *display) {
+int ivac_display_prompt(t_ivac *ivac) {
+
+#ifndef XXX_GUI
+  puts("---------------------------------------------------------------------");
+  printf("prompt: ");
+#endif
 
   return SUCCESS;
 }
 
 int ivac_display_prompt_content(t_ivac *ivac) {
 
+#ifndef XXX_GUI
   printf("%c",ivac->input.content[ivac->input.c_count-1]);
   fflush(NULL);
+#endif
 
   return SUCCESS;
 }
 
-int ivac_display(t_display *display) {
+int ivac_display(t_ivac *ivac) {
 
   int x,y;
 
+#ifndef XXX_GUI
   /* display head */
-  ivac_display_head(display);
+  ivac_display_head(ivac);
 
   /* display box */
-  ivac_display_box(display);
-
-  /* display console */
-  ivac_display_console(display);
-
-  /* display command prompt */
-  ivac_display_prompt(display);
-
-  return SUCCESS;
-}
-
-int ivac_display_content(t_ivac *ivac) {
-
-  /* display box content */
+  ivac_display_box(ivac);
+#endif
   ivac_display_box_content(ivac);
 
-  /* display console content */
+#ifndef XXX_GUI
+  /* display console */
+  ivac_display_console(ivac);
+#endif
   ivac_display_console_content(ivac);
 
-  /* display prompt content */
-  ivac_display_prompt_content(ivac);
+#ifndef XXX_GUI
+  /* display command prompt */
+  ivac_display_prompt(ivac);
+#endif
+  fflush(NULL);
 
   return SUCCESS;
 }
index 2bd69c52628302523530f40949406583d85c5587..af2932bfb065a96d49f0636d206857e2d31912f8 100644 (file)
@@ -73,15 +73,14 @@ int ivac_receive_info(int channel,t_ivac *ivac);
 int ivac_event_cb(t_event *event,void *ptr);
 int ivac_regular_cb(t_event *event,void *ptr);
 int ivac_parse_command(t_input *input,void *ptr);
-int ivac_display_head(t_display *display);
-int ivac_display_box(t_display *display);
+int ivac_display_head(t_ivac *ivac);
+int ivac_display_box(t_ivac *ivac);
 int ivac_display_box_content(t_ivac *ivac);
-int ivac_display_console(t_display *display);
+int ivac_display_console(t_ivac *ivac);
 int ivac_display_console_content(t_ivac *ivac);
-int ivac_display_prompt(t_display *display);
+int ivac_display_prompt(t_ivac *ivac);
 int ivac_display_prompt_content(t_ivac *ivac);
-int ivac_display(t_display *display);
-int ivac_display_content(t_ivac *ivac);
+int ivac_display(t_ivac *ivac);
 int ivac_add_to_monitor(t_ivac *ivac,char *msg);
 
 #endif