41 #ifndef __TIMETABLE_AGGREGATE_H__
42 #define __TIMETABLE_AGGREGATE_H__
47 struct timetable_aggregate_entry {
49 unsigned short episodes;
53 struct timetable_aggregate {
54 struct timetable_aggregate_entry *entries;
60 #define TIMETABLE_AGGREGATE_DECLARE(name) \
61 struct timetable_aggregate name
64 #define TIMETABLE_AGGREGATE(name, size) \
65 static struct timetable_aggregate_entry CC_CONCAT(name,_entries)[size]; \
66 static struct timetable_aggregate name = { \
67 CC_CONCAT(name,_entries), \
72 #define TIMETABLE_AGGREGATE_NONSTATIC(name, size) \
73 static struct timetable_aggregate_entry CC_CONCAT(name,_entries)[size]; \
74 struct timetable_aggregate name = { \
75 CC_CONCAT(name,_entries), \
80 void timetable_aggregate_print_detailed(
struct timetable_aggregate *a);
82 void timetable_aggregate_print_categories(
struct timetable_aggregate *a);
84 void timetable_aggregate_reset(
struct timetable_aggregate *a);
86 void timetable_aggregate_compute_detailed(
struct timetable_aggregate *a,
87 struct timetable *timetable);
88 void timetable_aggregate_compute_categories(
struct timetable_aggregate *a,
89 struct timetable *timetable);