1 /* 2 * This program is free software; you can redistribute it and/or modify 3 * it under the terms of the GNU General Public License as published by 4 * the Free Software Foundation; either version 2 of the License, or 5 * (at your option) any later version. 6 * 7 * This program is distributed in the hope that it will be useful, 8 * but WITHOUT ANY WARRANTY; without even the implied warranty of 9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 * GNU General Public License for more details. 11 * 12 * You should have received a copy of the GNU General Public License 13 * along with this program; if not, write to the Free Software 14 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 15 * 16 * Provided by fon.com 17 * Copyright (C) 2009 John Crispin <blogic@openwrt.org> 18 */ 19 20 21 #include <stdio.h> 22 #include <string.h> 23 #include <syslog.h> 24 #include <unistd.h> 25 #include "include/ucix.h" 26 #include "include/log.h" 27 #include "include/timer.h" 28 #include "include/led.h" 29 30 static char usbled[16]; 31 32 void led_ping(void) 33 { 34 FILE *fp; 35 static int last = 0; 36 static struct uci_context *ctx; 37 int mounted, count; 38 int led = 1; 39 char path[256]; 40 ctx = ucix_init("mountd"); 41 mounted = ucix_get_option_int(ctx, "mountd", "mountd", "mounted", 0); 42 count = ucix_get_option_int(ctx, "mountd", "mountd", "count", 0); 43 ucix_cleanup(ctx); 44 if(!count) 45 led = 0; 46 if(count && !mounted) 47 led = 1; 48 if(count && mounted) 49 last = led = (last + 1) % 2; 50 snprintf(path, 256, "/sys/class/leds/%s/brightness", usbled); 51 fp = fopen(path, "w"); 52 if(fp) 53 { 54 fprintf(fp, "%d", led); 55 fclose(fp); 56 } 57 } 58 59 void led_init(char *led) 60 { 61 if(led) 62 { 63 strncpy(usbled, led, 16); 64 timer_add(led_ping, 1); 65 } 66 } 67
This page was automatically generated by LXR 0.3.1. • OpenWrt