source: npl/mediabox/lcdproc_edwin/src/server/drivers/lcddriver.c @ c5c522c

gcc484ntopperl-5.22
Last change on this file since c5c522c was c5c522c, checked in by Edwin Eefting <edwin@datux.nl>, 8 years ago

initial commit, transferred from cleaned syn3 svn tree

  • Property mode set to 100644
File size: 2.5 KB
Line 
1/* lcddriver.cd - test/demo of LIBIR's to interface with lcdproc (LCDd) */
2/* Copyright (C) 1999 David Glaude loosely based on workmanir.c */
3/* workmanir.c - test/demo of LIBIR's high level command functions */
4/* Copyright (C) 1998 Tom Wheeley, see file COPYING for details    */
5
6#include <config.h>
7
8#include <stdlib.h>
9#include <stdio.h>
10#include <string.h>
11#include <unistd.h>
12#include <errno.h>
13
14#include "irman.h"
15
16char *progname = "lcddriver";
17
18char *codes[] = {
19        /* dummy */     NULL,
20        /* KeyToLcd */  "lcdproc-A",
21        /* KeyToLcd */  "lcdproc-B",
22        /* KeyToLcd */  "lcdproc-C",
23        /* KeyToLcd */  "lcdproc-D",
24        /* KeyToLcd */  "lcdproc-E",
25        /* KeyToLcd */  "lcdproc-F",
26        /* KeyToLcd */  "lcdproc-G",
27        /* KeyToLcd */  "lcdproc-H",
28        /* KeyToLcd */  "lcdproc-I",
29        /* KeyToLcd */  "lcdproc-J",
30        /* KeyToLcd */  "lcdproc-K",
31        /* KeyToLcd */  "lcdproc-L",
32        /* KeyToLcd */  "lcdproc-M",
33        /* KeyToLcd */  "lcdproc-N",
34        /* KeyToLcd */  "lcdproc-O",
35        /* KeyToLcd */  "lcdproc-P",
36        /* KeyToLcd */  "lcdproc-Q",
37        /* KeyToLcd */  "lcdproc-R",
38        /* KeyToLcd */  "lcdproc-S",
39        /* KeyToLcd */  "lcdproc-T",
40        /* KeyToLcd */  "lcdproc-U",
41        /* KeyToLcd */  "lcdproc-V",
42        /* KeyToLcd */  "lcdproc-W",
43        /* KeyToLcd */  "lcdproc-X",
44        /* KeyToLcd */  "lcdproc-Y",
45        /* KeyToLcd */  "lcdproc-Z",
46        /* end */       NULL
47};
48
49
50//void sigterm(int sig)
51//{
52//  ir_free_commands();
53//  ir_finish();
54//  raise(sig);
55//}
56
57
58// INIT $$$
59int INIT()
60{
61  int i;
62  char *filename;
63
64  if (ir_init_commands(NULL, 1) < 0) {
65    fprintf(stderr, "error initialising commands: %s\n", strerror(errno));
66    exit(1);
67  }
68 
69  filename = ir_default_portname();
70  filename = "option";
71  }
72
73  for (i=1; codes[i] != NULL; i++) {
74    if (ir_register_command(codes[i], i) < 0) {
75      if (errno == ENOENT) {
76        fprintf(stderr, "%s: no code set for `%s'\n", progname, codes[i]);
77      } else {
78        fprintf(stderr, "error registering `%s': `%s'\n", codes[i], strerror(errno));
79      }
80    }
81  }
82
83  errno = 0; 
84  if (ir_init(filename) < 0) {
85    fprintf(stderr, "%s: error initialising Irman: `%s'\n", strerror(errno));
86    exit(1);
87  }
88
89  return 0;
90}
91
92// KEY $$$
93int KEY(void)
94{
95  int i;
96  int cmd;
97  char key;
98
99  key=(char)0;
100  for(i=1;i;) {
101    switch (cmd=ir_get_command()) {
102      case IR_CMD_ERROR:
103        fprintf(stderr, "%s: error reading command: %s\n", progname, strerror(errno));
104//      No exit in LCDd !!!
105//        exit(1);
106
107      case IR_CMD_UNKNOWN:
108        fprintf(stderr,"IR unknown command\n");
109      default: key='A'-1+cmd; break;
110    }
111  }
112}
113
114
115// CLOSE $$$
116int CLOSE()
117{
118  ir_free_commands();
119  ir_finish();
120
121  return 0;
122}
123
124/* end of lcddriver.c */
Note: See TracBrowser for help on using the repository browser.