IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Dec 27, 2005, 5:06:32 AM (21 years ago)
Author:
eugene
Message:

converting to use libkapa commands instead of raw graph commands

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/opihi/lib.data/open_image.c

    r4301 r5846  
    11# include "display.h"
     2
    23# define DEBUG 0
    34
     
    1819 
    1920  for (i = 0; i < NXIMAGE; i++) {
    20     if (Ximage[i] > 0) {
    21       SendGraphCommand (Ximage[i], 4, "QUIT");
    22     }
     21    KiiClose (Ximage[i]);
    2322  }
    2423}
    25 
    2624
    2725void InitImage () {
     
    4846int open_image (int N) {
    4947
    50   int InitSocket, status, addreslen;
    51   struct sockaddr_un Address;
    52   char temp[128], socket_name[64], *kii_exec;
    53   int Ntry, fd;
     48  int fd;
     49  char *kii_exec;
    5450
    5551  kii_exec = get_variable ("KII");
     
    5955  }
    6056
    61   sprintf (socket_name, "/tmp/Kii.XXXXXX");
    62   if ((fd = mkstemp (socket_name)) == -1) {
     57  fd = KiiOpen (kii_exec, NULL);
     58  free (kii_exec);
     59
     60  if (fd < 0) {
    6361    fprintf (stderr, "error starting kii\n");
    6462    return (FALSE);
    65   }
    66   close (fd);
    67   unlink (socket_name);
     63  }
    6864
    69   strcpy (Address.sun_path, socket_name);
    70   Address.sun_family = AF_UNIX;
    71   InitSocket = socket (AF_UNIX, SOCK_STREAM, 0);
    72   status = bind (InitSocket, (struct sockaddr *) &Address, sizeof (Address));
    73   status = listen (InitSocket, 1);
    74  
    75   sprintf (temp, "%s %s &", kii_exec, socket_name);
    76   free (kii_exec);
    77 
    78 # if DEBUG
    79   fprintf (stderr, "start kii, press return: %s\n", temp);
    80   fscanf (stdin, "%d", &i);
    81 # else 
    82   system (temp);
    83 # endif
    84  
    85   addreslen =  sizeof (Address);
    86   fcntl (InitSocket, F_SETFL, O_NONBLOCK);
    87 
    88 # define NTRY 2000
    89   Ntry = 0;
    90   while (Ntry < NTRY) {
    91     Ximage[N] = accept (InitSocket, (struct sockaddr *)&Address, &addreslen);
    92     if (Ximage[N] == -1) {
    93       if (errno == EAGAIN) {
    94         usleep (10000);
    95         Ntry ++;
    96       } else {
    97         Ntry = NTRY;
    98       }
    99     } else {
    100       Ntry = NTRY;
    101     }
    102   }
    103 
    104   if (Ximage[N] < 0) {
    105     fprintf (stderr, "error starting kii\n");
    106     return (FALSE);
    107   } else {
    108     fcntl (Ximage[N], F_SETFL, !O_NONBLOCK);
    109     return (TRUE);
    110   }
    111  
     65  Ximage[N] = fd;
     66  return (TRUE);
    11267}
    11368
Note: See TracChangeset for help on using the changeset viewer.