Added debug prints, better error return values.
[flashlight-appl] / src / flashlight_lib.h
1 /*
2  *  Flashlight applet (widget) for Maemo.
3  *  Copyright (C) 2009 Roman Moravcik
4  *
5  *  This program is free software; you can redistribute it and/or modify
6  *  it under the terms of the GNU General Public License as published by
7  *  the Free Software Foundation; either version 2 of the License, or
8  *  (at your option) any later version.
9  *
10  *  This program is distributed in the hope that it will be useful,
11  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  *  GNU General Public License for more details.
14  *
15  *  You should have received a copy of the GNU General Public License
16  *  along with this program; if not, write to the Free Software
17  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18  */
19
20 #ifndef FLASHLIGHT_LIB_H
21 #define FLASHLIGHT_LIB_H
22
23 #define FLASHLIGHT_STATUS_SHORT_CIRCUT_FAULT            0x0001
24 #define FLASHLIGHT_STATUS_OVERTEMPERATURE_FAULT         0x0002
25 #define FLASHLIGHT_STATUS_TIMEOUT_FAULT                 0x0004
26 #define FLASHLIGHT_STATUS_OVERVOLTAGE_FAULT             0x0008
27
28 #define ENOERROR         0
29 #define EGENERROR       -1
30 #define ENOCONTEXT      -2
31 #define ENODEVICE       -3
32
33 struct FlashlightContext {
34         /* device name */
35         char device_name[15];
36
37         /* file descriptor of device */
38         int fd;
39
40         int min_intensity;
41         int max_intensity;
42 };
43
44 typedef struct FlashlightContext FlashlightContext_t;
45
46 int flashlight_init (FlashlightContext_t **flashlight);
47 int flashlight_deinit (FlashlightContext_t *flashlight);
48
49 int flashlight_open (FlashlightContext_t *flashlight, const char *device_name);
50 int flashlight_close (FlashlightContext_t *flashlight);
51
52 int flashlight_set_intensity (FlashlightContext_t *flashlight, int intensity);
53 int flashlight_get_intensity (FlashlightContext_t *flashlight, int *intensity);
54
55 int flashlight_get_status (FlashlightContext_t *flashlight, int *status);
56
57 #endif