summaryrefslogtreecommitdiffstats
path: root/lib/libucsi/dvb/Makefile
blob: 6f36e113b7286e3058d378e148e0dfe7c29f9e66 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# Makefile for linuxtv.org dvb-apps/lib/libucsi/dvb

.PHONY: sub-error-dvb

sub-error-dvb:
	$(error You can't use this makefile directly.)

ifneq ($(lib_name),)

objects += dvb/bat_section.o           \
           dvb/dit_section.o           \
           dvb/eit_section.o           \
           dvb/int_section.o           \
           dvb/nit_section.o           \
           dvb/rst_section.o           \
           dvb/sdt_section.o           \
           dvb/sit_section.o           \
           dvb/st_section.o            \
           dvb/tdt_section.o           \
           dvb/tot_section.o           \
           dvb/tva_container_section.o \
           dvb/types.o

sub-install += dvb

else

includes = ac3_descriptor.h                                    \
           adaptation_field_data_descriptor.h                  \
           ait_application_descriptor.h                        \
           ait_application_icons_descriptor.h                  \
           ait_application_name_descriptor.h                   \
           ait_external_application_authorisation_descriptor.h \
           ancillary_data_descriptor.h                         \
           announcement_support_descriptor.h                   \
           application_signalling_descriptor.h                 \
           bat_section.h                                       \
           bouquet_name_descriptor.h                           \
           ca_identifier_descriptor.h                          \
           cable_delivery_descriptor.h                         \
           cell_frequency_link_descriptor.h                    \
           cell_list_descriptor.h                              \
           component_descriptor.h                              \
           content_descriptor.h                                \
           content_identifier_descriptor.h                     \
           country_availability_descriptor.h                   \
           data_broadcast_descriptor.h                         \
           data_broadcast_id_descriptor.h                      \
           default_authority_descriptor.h                      \
           descriptor.h                                        \
           dit_section.h                                       \
           dsng_descriptor.h                                   \
           eit_section.h                                       \
           extended_event_descriptor.h                         \
           frequency_list_descriptor.h                         \
           int_section.h                                       \
           ip_mac_platform_name_descriptor.h                   \
           ip_mac_platform_provider_name_descriptor.h          \
           ip_mac_stream_location_descriptor.h                 \
           linkage_descriptor.h                                \
           local_time_offset_descriptor.h                      \
           mhp_data_broadcast_id_descriptor.h                  \
           mosaic_descriptor.h                                 \
           mpe_fec_section.h                                   \
           multilingual_bouquet_name_descriptor.h              \
           multilingual_component_descriptor.h                 \
           multilingual_network_name_descriptor.h              \
           multilingual_service_name_descriptor.h              \
           network_name_descriptor.h                           \
           nit_section.h                                       \
           nvod_reference_descriptor.h                         \
           parental_rating_descriptor.h                        \
           partial_transport_stream_descriptor.h               \
           pdc_descriptor.h                                    \
           private_data_specifier_descriptor.h                 \
           related_content_descriptor.h                        \
           rnt_rar_over_dvb_stream_descriptor.h                \
           rnt_rar_over_ip_descriptor.h                        \
           rnt_rnt_scan_descriptor.h                           \
           rst_section.h                                       \
           s2_satellite_delivery_descriptor.h                  \
           satellite_delivery_descriptor.h                     \
           scrambling_descriptor.h                             \
           sdt_section.h                                       \
           section.h                                           \
           service_availability_descriptor.h                   \
           service_descriptor.h                                \
           service_identifier_descriptor.h                     \
           service_list_descriptor.h                           \
           service_move_descriptor.h                           \
           short_event_descriptor.h                            \
           short_smoothing_buffer_descriptor.h                 \
           sit_section.h                                       \
           st_section.h                                        \
           stream_identifier_descriptor.h                      \
           stuffing_descriptor.h                               \
           subtitling_descriptor.h                             \
           target_ip_address_descriptor.h                      \
           target_ipv6_address_descriptor.h                    \
           target_ip_slash_descriptor.h                        \
           target_ip_source_slash_descriptor.h                 \
           target_ipv6_slash_descriptor.h                      \
           target_ipv6_source_slash_descriptor.h               \
           tdt_section.h                                       \
           telephone_descriptor.h                              \
           teletext_descriptor.h                               \
           terrestrial_delivery_descriptor.h                   \
           time_shifted_event_descriptor.h                     \
           time_shifted_service_descriptor.h                   \
           time_slice_fec_identifier_descriptor.h              \
           tot_section.h                                       \
           transport_stream_descriptor.h                       \
           tva_container_section.h                             \
           tva_id_descriptor.h                                 \
           types.h                                             \
           vbi_data_descriptor.h                               \
           vbi_teletext_descriptor.h

include ../../../Make.rules

lib_name = libucsi/dvb

endif
> /* evaluate expressions */ val1 = 0.0; if (Bar->tree1 != NULL) { Eval(Bar->tree1, &result); val1 = R2N(&result); DelResult(&result); } val2 = val1; if (Bar->tree2 != NULL) { Eval(Bar->tree2, &result); val2 = R2N(&result); DelResult(&result); } /* minimum: if expression is empty, do auto-scaling */ if (Bar->tree_min != NULL) { Eval(Bar->tree_min, &result); min = R2N(&result); DelResult(&result); } else { min = Bar->min; if (val1 < min) min = val1; if (val2 < min) min = val2; } /* maximum: if expression is empty, do auto-scaling */ if (Bar->tree_max != NULL) { Eval(Bar->tree_max, &result); max = R2N(&result); DelResult(&result); } else { max = Bar->max; if (val1 > max) max = val1; if (val2 > max) max = val2; } /* calculate bar values */ Bar->min = min; Bar->max = max; if (max > min) { Bar->val1 = (val1 - min) / (max - min); Bar->val2 = (val2 - min) / (max - min); } else { Bar->val1 = 0.0; Bar->val2 = 0.0; } /* finally, draw it! */ if (W->class->draw) W->class->draw(W); } int widget_bar_init(WIDGET * Self) { char *section; char *c; WIDGET_BAR *Bar; /* prepare config section */ /* strlen("Widget:")=7 */ section = malloc(strlen(Self->name) + 8); strcpy(section, "Widget:"); strcat(section, Self->name); Bar = malloc(sizeof(WIDGET_BAR)); memset(Bar, 0, sizeof(WIDGET_BAR)); /* get raw expressions (we evaluate them ourselves) */ Bar->expression1 = cfg_get_raw(section, "expression", NULL); Bar->expression2 = cfg_get_raw(section, "expression2", NULL); /* sanity check */ if (Bar->expression1 == NULL || *Bar->expression1 == '\0') { error("widget %s has no expression, using '0.0'", Self->name); Bar->expression1 = "0"; } /* minimum and maximum value */ Bar->expr_min = cfg_get_raw(section, "min", NULL); Bar->expr_max = cfg_get_raw(section, "max", NULL); /* compile all expressions */ Compile(Bar->expression1, &Bar->tree1); Compile(Bar->expression2, &Bar->tree2); Compile(Bar->expr_min, &Bar->tree_min); Compile(Bar->expr_max, &Bar->tree_max); /* bar length, default 1 */ cfg_number(section, "length", 1, 0, -1, &(Bar->length)); /* direction: East (default), West, North, South */ c = cfg_get(section, "direction", "E"); switch (toupper(*c)) { case 'E': Bar->direction = DIR_EAST; break; case 'W': Bar->direction = DIR_WEST; break; case 'N': Bar->direction = DIR_NORTH; break; case 'S': Bar->direction = DIR_SOUTH; break; default: error("widget %s has unknown direction '%s', using 'East'", Self->name, c); Bar->direction = DIR_EAST; } free(c); /* style: none (default), hollow */ c = cfg_get(section, "style", "0"); switch (toupper(*c)) { case 'H': Bar->style = STYLE_HOLLOW; if (!(Bar->direction & (DIR_EAST | DIR_WEST))) { error("widget %s with style \"hollow\" not implemented", Self->name); Bar->style = 0; } break; default: Bar->style = 0; } free(c); /* update interval (msec), default 1 sec */ cfg_number(section, "update", 1000, 10, -1, &(Bar->update)); /* get widget special colors */ Bar->color_valid[0] = widget_color(section, Self->name, "barcolor0", &Bar->color[0]); Bar->color_valid[1] = widget_color(section, Self->name, "barcolor1", &Bar->color[1]); free(section); Self->data = Bar; timer_add(widget_bar_update, Self, Bar->update, 0); return 0; } int widget_bar_quit(WIDGET * Self) { if (Self) { if (Self->data) { WIDGET_BAR *Bar = Self->data; DelTree(Bar->tree1); DelTree(Bar->tree2); DelTree(Bar->tree_min); DelTree(Bar->tree_max); free(Self->data); } Self->data = NULL; } return 0; } WIDGET_CLASS Widget_Bar = { name:"bar", type:WIDGET_TYPE_RC, init:widget_bar_init, draw:NULL, quit:widget_bar_quit, };