0a1f8b8beaf323cf0a406d64fdb075e16a67c6f6
[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 buffer {
34         void *start;
35         size_t length;
36 };
37
38 struct FlashlightContext {
39         /* device name */
40         char device_name[15];
41
42         /* file descriptor of device */
43         int fd;
44
45         int min_intensity;
46         int max_intensity;
47
48         unsigned int n_buffers;
49         struct buffer *buffers;
50 };
51
52 typedef struct FlashlightContext FlashlightContext_t;
53
54 int flashlight_init (FlashlightContext_t **flashlight);
55 int flashlight_deinit (FlashlightContext_t *flashlight);
56
57 int flashlight_open (FlashlightContext_t *flashlight, const char *device_name);
58 int flashlight_close (FlashlightContext_t *flashlight);
59
60 int flashlight_set_intensity (FlashlightContext_t *flashlight, int intensity);
61 int flashlight_get_intensity (FlashlightContext_t *flashlight, int *intensity);
62
63 int flashlight_get_status (FlashlightContext_t *flashlight, int *status);
64
65 #endif