Changeset 15746


Ignore:
Timestamp:
05/17/12 14:36:16 (10 years ago)
Author:
nit
Message:

[titan] add tuxtxt rc for rc simulation

Location:
titan
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • titan/doc/copyright.txt

    r15335 r15746  
    55/* copyright by NIT                                  */
    66/*****************************************************/
     7
     8
     9#*****************************************************#
     10#* this file is part of the tiTan / tiTanNIT Project *#
     11#* and allowed only for use with this.               *#
     12#*                                                   *#
     13#* copyright by NIT                                  *#
     14#*****************************************************#
  • titan/titan/rc.h

    r15682 r15746  
    22#define RC_H
    33
    4 int openrcsim()
    5 {
    6         status.fdrcsim = -1;
    7 
    8         mkfifo("/tmp/rcsimpipe", 0666);
    9         status.fdrcsim = open("/tmp/rcsimpipe", O_RDWR);
    10         if(status.fdrcsim < 0)
    11         {
    12                 perr("open or create /tmp/rcsimpipe");
    13                 return 1;
    14         }
    15 
    16         closeonexec(status.fdrcsim);
     4int sendtuxtxt(int code)
     5{
     6        int rc;
     7   
     8        if((rc = open("/tmp/block.tmp", O_RDONLY)) >= 0)
     9        {
     10                close(rc);
     11       
     12                if(status.fdrctxt <= 0)
     13                {
     14                        struct sockaddr_un vAddr;
     15                        vAddr.sun_family = AF_UNIX;
     16                        strcpy(vAddr.sun_path, "/tmp/rc.socket");
     17                        status.fdrctxt = socket(PF_UNIX, SOCK_STREAM, 0);
     18       
     19                        if(status.fdrctxt <= 0)
     20                        {
     21                                err("open tuxtxt rc socket");
     22                                return 1;
     23                        };
     24
     25                        if(connect(status.fdrctxt, (struct sockaddr *)&vAddr, sizeof(vAddr)) !=0)
     26                        {
     27                                close(status.fdrctxt);
     28                                status.fdrctxt = -1;
     29                                err("connect to tuxtxt rc socket");
     30                                return 1;
     31                        }
     32                }
     33       
     34                if(status.fdrctxt > 0)
     35                {
     36                        char* tmpstr = malloc(8);
     37                        if(tmpstr != NULL)
     38                        {
     39                                sprintf(tmpstr, "%08d", code);
     40
     41                                if(write(status.fdrctxt, tmpstr, 8) <= 0)
     42                                {
     43                                        err("forwarding to rc socket");
     44                                        close(status.fdrctxt);
     45                                        status.fdrctxt = -1;
     46                                        free(tmpstr); tmpstr = NULL;
     47                                        return 1;
     48                                }
     49                        }
     50                        free(tmpstr); tmpstr = NULL;
     51                }
     52                else
     53                {
     54                        err("forwarding to rc socket");
     55                }
     56                return 0;
     57        }
     58
     59        if(status.fdrctxt != -1)
     60        {
     61                close(status.fdrctxt);
     62                status.fdrctxt = -1;
     63        }
    1764        return 0;
    1865}
     
    124171
    125172        gettimeofday(&akttime, 0);
    126        
     173        sendtuxtxt(keycode);
     174
    127175        rcdata.time = akttime;
    128176        rcdata.type = EV_KEY;
     
    130178        rcdata.value = 1;
    131179        write(status.fdrc, &rcdata, sizeof(rcdata));
    132        
     180
    133181        rcdata.time = akttime;
    134182        rcdata.type = EV_KEY;
    135183        rcdata.code = keycode;
    136184        rcdata.value = 0;
    137 
    138         //return write(status.fdrcsim, &rcdata, sizeof(rcdata));
    139         return write(status.fdrc, &rcdata, sizeof(rcdata));
     185       
     186        return  write(status.fdrc, &rcdata, sizeof(rcdata));
    140187}
    141188
     
    168215                }
    169216        }
    170  
    171   return 0;
     217
     218        return 0;
    172219}
    173220
     
    196243                FD_ZERO(&rfds);
    197244                FD_SET(status.fdrc, &rfds);
    198                 FD_SET(status.fdrcsim, &rfds);
    199245
    200246                if(fromthread == 0) status.sec = 0;
    201247                if((fromthread == 0 && status.rckey == 0) || fromthread == 1)
    202248                {
    203                         ret = TEMP_FAILURE_RETRY(select(status.fdrcsim + 1, &rfds, NULL, NULL, &tv));
     249                        ret = TEMP_FAILURE_RETRY(select(status.fdrc + 1, &rfds, NULL, NULL, &tv));
    204250                        if(status.rcowner != NULL && status.rcowner != owner)
    205251                        {
     
    214260                        if(FD_ISSET(status.fdrc, &rfds))
    215261                                len = TEMP_FAILURE_RETRY(read(status.fdrc, &rcdata, sizeof(struct input_event)));
    216                         if(FD_ISSET(status.fdrcsim, &rfds))
    217                                 len = TEMP_FAILURE_RETRY(read(status.fdrcsim, &rcdata, sizeof(struct input_event)));
    218262
    219263                        if(rcdata.type != EV_KEY)
  • titan/titan/struct.h

    r15724 r15746  
    936936        // rc filedescriptor
    937937        int fdrc;
    938         // rc filedescriptor for simulating keypress (fifo)
    939         int fdrcsim;
     938        // rc filedescriptor for tuxtxt
     939        int fdrctxt;
    940940        int writeconfig;
    941941        int writeownconfig;
  • titan/titan/titan.c

    r15630 r15746  
    559559                goto starterror;
    560560        }
    561         ret = openrcsim();
    562         if(ret != 0)
    563         {
    564                 tmpstr = ostrcat(tmpstr, _("Error: open rcsim device !!"), 1, 0);
    565                 goto starterror;
    566         }
    567561
    568562        if(fegetdev() < 1)
Note: See TracChangeset for help on using the changeset viewer.