ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/RCU/Lirc/Lirc.xs
Revision: 1.1
Committed: Sun Nov 6 17:17:37 2005 UTC (19 years, 1 month ago) by root
Branch: MAIN
CVS Tags: HEAD
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.1 #include "EXTERN.h"
2     #include "perl.h"
3     #include "XSUB.h"
4    
5     #include <lirc/lirc_client.h>
6    
7     struct lirc_config *config;
8    
9     MODULE = RCU::Lirc PACKAGE = RCU::Lirc
10    
11     PROTOTYPES: ENABLE
12    
13     int
14     lirc_init(prog,verbose=0)
15     char * prog
16     int verbose
17    
18     int
19     lirc_deinit()
20    
21     int
22     lirc_readconfig(file=Nullch)
23     char * file
24     CODE:
25     RETVAL = lirc_readconfig (file, &config, NULL);
26     if (RETVAL != 0)
27     config = 0;
28     OUTPUT:
29     RETVAL
30    
31     void
32     lirc_freeconfig()
33     CODE:
34     if (config)
35     lirc_freeconfig (config);
36    
37     void
38     _get_code()
39     PPCODE:
40     char *code;
41    
42     if (lirc_nextcode (&code) != 0)
43     croak ("communication error with lircd");
44    
45     if (code)
46     {
47     char *text;
48    
49     if (!config || lirc_code2char (config, code, &text) != 0)
50     text = 0;
51    
52     XPUSHs (sv_2mortal (newSVpvn (code, 16)));
53     if (text)
54     XPUSHs (sv_2mortal (newSVpv (text, 0)));
55     else
56     XPUSHs (sv_2mortal (newSVpvn (code + 20, strchr (code + 20, ' ') - code - 20)));
57    
58     free (code);
59     }
60    
61