Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 158685 | Differences between
and this patch

Collapse All | Expand All

(-)old/smartdimmer/src/smartdimmer.c (-2 / +53 lines)
Lines 6-11 Link Here
6
 *                                                                            *
6
 *                                                                            *
7
 * July 23, 2005                                                              *
7
 * July 23, 2005                                                              *
8
 * Erik Waling <erikw@acc.umu.se>                                             *
8
 * Erik Waling <erikw@acc.umu.se>                                             *
9
 *                                                                            *
10
 * Fading logic by Alessandro Di Marco <dmr@c0nc3pt.com>                      *
9
 ******************************************************************************/
11
 ******************************************************************************/
10
12
11
#include <stdlib.h>
13
#include <stdlib.h>
Lines 16-21 Link Here
16
18
17
static struct option long_opts[] = {
19
static struct option long_opts[] = {
18
    { "get"     , no_argument      , 0, 'g' },
20
    { "get"     , no_argument      , 0, 'g' },
21
    { "fade"    , required_argument, 0, 'f' },
22
    { "delay"   , required_argument, 0, 'e' },
19
    { "set"     , required_argument, 0, 's' },
23
    { "set"     , required_argument, 0, 's' },
20
    { "increase", no_argument      , 0, 'i' },
24
    { "increase", no_argument      , 0, 'i' },
21
    { "decrease", no_argument      , 0, 'd' },
25
    { "decrease", no_argument      , 0, 'd' },
Lines 30-35 Link Here
30
    printf("Options:\n");
34
    printf("Options:\n");
31
    printf("\t-g  --get\t\tQuery brightness level.\n");
35
    printf("\t-g  --get\t\tQuery brightness level.\n");
32
    printf("\t-s  --set <level>\tSet brightness level (%d-%d)\n", MIN_LEVEL, MAX_LEVEL);
36
    printf("\t-s  --set <level>\tSet brightness level (%d-%d)\n", MIN_LEVEL, MAX_LEVEL);
37
    printf("\t-f  --fade <level>\tFade in/out up to the given brightness level (%d-%d)\n", MIN_LEVEL, MAX_LEVEL);
38
    printf("\t-e  --delay <usecs>\tFade cycle delay\n");
33
    printf("\t-i  --increase\t\tIncrease brightness with one level.\n");
39
    printf("\t-i  --increase\t\tIncrease brightness with one level.\n");
34
    printf("\t-d  --decrease\t\tDecrease brightness with one level.\n");
40
    printf("\t-d  --decrease\t\tDecrease brightness with one level.\n");
35
    printf("\t-h  --help\t\tPrints this help text.\n\n");
41
    printf("\t-h  --help\t\tPrints this help text.\n\n");
Lines 46-51 Link Here
46
    nv_card.PMC[PMC_SMARTDIM_OFFSET/4] = (level << SMARTDIM_SHIFT) | (nv_card.PMC[PMC_SMARTDIM_OFFSET/4] & ~SMARTDIM_MASK); 
52
    nv_card.PMC[PMC_SMARTDIM_OFFSET/4] = (level << SMARTDIM_SHIFT) | (nv_card.PMC[PMC_SMARTDIM_OFFSET/4] & ~SMARTDIM_MASK); 
47
}
53
}
48
54
55
void sd_fade_level(int end, unsigned long delay) {
56
    int i, start = sd_get_level();
57
58
    if (end < MIN_LEVEL)
59
	end = MIN_LEVEL;
60
    if (end > MAX_LEVEL)
61
	end = MAX_LEVEL;
62
63
    if (end >= start) {
64
	for (i = start + 1; i <= end; i++) {
65
	    nv_card.PMC[PMC_SMARTDIM_OFFSET/4] = (i << SMARTDIM_SHIFT) | (nv_card.PMC[PMC_SMARTDIM_OFFSET/4] & ~SMARTDIM_MASK);
66
	    usleep(delay);
67
	}
68
    } else {
69
	for (i = start - 1; i >= end; i--) {
70
	    nv_card.PMC[PMC_SMARTDIM_OFFSET/4] = (i << SMARTDIM_SHIFT) | (nv_card.PMC[PMC_SMARTDIM_OFFSET/4] & ~SMARTDIM_MASK);
71
	    usleep(delay);
72
	}
73
    }
74
}
75
49
int sd_get_level() {
76
int sd_get_level() {
50
    return (nv_card.PMC[PMC_SMARTDIM_OFFSET/4] & SMARTDIM_MASK) >> SMARTDIM_SHIFT;
77
    return (nv_card.PMC[PMC_SMARTDIM_OFFSET/4] & SMARTDIM_MASK) >> SMARTDIM_SHIFT;
51
}
78
}
Lines 65-70 Link Here
65
int main(int argc, char *argv[]) {
92
int main(int argc, char *argv[]) {
66
    
93
    
67
    int optind = 0, options = 0, setvalue = 0;
94
    int optind = 0, options = 0, setvalue = 0;
95
    unsigned long delay = 7000;
68
    int c;
96
    int c;
69
    
97
    
70
    if (argc < 2) {
98
    if (argc < 2) {
Lines 72-78 Link Here
72
        return 0;
100
        return 0;
73
    }
101
    }
74
    
102
    
75
    while ((c = getopt_long(argc, argv, "gs:idh", long_opts, &optind)) != -1) {
103
    while ((c = getopt_long(argc, argv, "gf:s:e:idh", long_opts, &optind)) != -1) {
76
        switch (c) {
104
        switch (c) {
77
            case '?':
105
            case '?':
78
                fprintf(stderr, "\nTry `%s --help' for help.\n", argv[0]);
106
                fprintf(stderr, "\nTry `%s --help' for help.\n", argv[0]);
Lines 93-98 Link Here
93
                   return 1;
121
                   return 1;
94
               }
122
               }
95
               break;
123
               break;
124
	    case 'e':
125
	       if (isdigit(*optarg)) {
126
		   delay = atol(optarg);
127
		   options |= DEL_BIT;
128
	       } else {
129
		   fprintf(stderr, "Illegal option value (-e): "
130
			   "Value has to be a non-negative number.\n");
131
		   return 1;
132
	       }
133
	       break;
134
	    case 'f':
135
	       if (isdigit(*optarg)) {
136
		   setvalue = atoi(optarg);
137
		   options |= FAD_BIT;
138
	       } else {
139
		   fprintf(stderr, "Illegal option value (-f): "
140
			   "Value has to be a non-negative number.\n");
141
		   return 1;
142
	       }
143
	       break;
96
            case 'i':
144
            case 'i':
97
               options |= INC_BIT;
145
               options |= INC_BIT;
98
               break;
146
               break;
Lines 102-108 Link Here
102
        }
150
        }
103
    } 
151
    } 
104
    
152
    
105
    if (!options) {
153
    if (!options || ((options & DEL_BIT) && !(options & FAD_BIT))) {
106
        sd_usage(argv[0]);
154
        sd_usage(argv[0]);
107
        return 1;
155
        return 1;
108
    }
156
    }
Lines 125-130 Link Here
125
    if (options & SET_BIT)
173
    if (options & SET_BIT)
126
        sd_set_level(setvalue);
174
        sd_set_level(setvalue);
127
    
175
    
176
    if (options & FAD_BIT)
177
	sd_fade_level(setvalue, delay);
178
128
    if (options & GET_BIT)
179
    if (options & GET_BIT)
129
        printf("SmartDimmer level: %d\n", sd_get_level());
180
        printf("SmartDimmer level: %d\n", sd_get_level());
130
    
181
    
(-)old/smartdimmer/src/smartdimmer.h (+3 lines)
Lines 27-35 Link Here
27
#define GET_BIT    2
27
#define GET_BIT    2
28
#define INC_BIT    4
28
#define INC_BIT    4
29
#define DEC_BIT    8
29
#define DEC_BIT    8
30
#define FAD_BIT    16
31
#define DEL_BIT    32
30
32
31
/* function prototypes */
33
/* function prototypes */
32
void sd_set_level(int level);
34
void sd_set_level(int level);
35
void sd_fade_level(int level, unsigned long delay);
33
int sd_get_level();
36
int sd_get_level();
34
int sd_init();
37
int sd_init();
35
void sd_usage();
38
void sd_usage();

Return to bug 158685