~ubuntu-branches/ubuntu/natty/gnome-dvb-daemon/natty

« back to all changes in this revision

Viewing changes to src/Timer.c

  • Committer: Bazaar Package Importer
  • Author(s): Sebastian Dröge
  • Date: 2009-11-19 15:55:34 UTC
  • mfrom: (1.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20091119155534-lky88n43jb0htalm
Tags: 0.1.13-1
* New upstream release:
  + debian/control.in:
    - Update build dependencies.

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
 
23
23
#include <glib.h>
24
24
#include <glib-object.h>
 
25
#include <gst/gst.h>
 
26
#include <time.h>
25
27
#include <stdlib.h>
26
28
#include <string.h>
27
 
#include <gst/gst.h>
28
 
#include <time.h>
29
29
 
30
30
 
31
31
#define DVB_TYPE_TIMER (dvb_timer_get_type ())
49
49
typedef struct _DVBChannel DVBChannel;
50
50
typedef struct _DVBChannelClass DVBChannelClass;
51
51
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
52
 
#define _g_free0(var) (var = (g_free (var), NULL))
53
52
#define _gst_object_unref0(var) ((var == NULL) ? NULL : (var = (gst_object_unref (var), NULL)))
54
53
 
55
54
#define DVB_TYPE_OVERLAP_TYPE (dvb_overlap_type_get_type ())
66
65
struct _DVBTimerPrivate {
67
66
        guint32 _Id;
68
67
        DVBChannel* _Channel;
69
 
        char* _Name;
70
 
        guint _Year;
71
 
        guint _Month;
72
 
        guint _Day;
73
 
        guint _Hour;
74
 
        guint _Minute;
75
68
        guint _Duration;
76
69
        GstElement* _sink;
77
70
        guint _EventID;
95
88
        DVB_TIMER_DUMMY_PROPERTY,
96
89
        DVB_TIMER_ID,
97
90
        DVB_TIMER_CHANNEL,
98
 
        DVB_TIMER_NAME,
99
 
        DVB_TIMER_YEAR,
100
 
        DVB_TIMER_MONTH,
101
 
        DVB_TIMER_DAY,
102
 
        DVB_TIMER_HOUR,
103
 
        DVB_TIMER_MINUTE,
104
91
        DVB_TIMER_DURATION,
105
92
        DVB_TIMER_SINK,
106
93
        DVB_TIMER_EVENT_ID
107
94
};
108
 
static void dvb_timer_set_Id (DVBTimer* self, guint32 value);
109
 
static void dvb_timer_set_Channel (DVBTimer* self, DVBChannel* value);
110
 
void dvb_timer_set_Name (DVBTimer* self, const char* value);
111
 
void dvb_timer_set_Year (DVBTimer* self, guint value);
112
 
void dvb_timer_set_Month (DVBTimer* self, guint value);
113
 
void dvb_timer_set_Day (DVBTimer* self, guint value);
114
 
void dvb_timer_set_Hour (DVBTimer* self, guint value);
115
 
void dvb_timer_set_Minute (DVBTimer* self, guint value);
116
95
void dvb_timer_set_EventID (DVBTimer* self, guint value);
117
96
void dvb_timer_set_Duration (DVBTimer* self, guint value);
118
97
void dvb_utils_create_time (gint year, gint month, gint day, gint hour, gint minute, gint second, struct tm* result);
119
 
DVBTimer* dvb_timer_new (guint32 id, DVBChannel* channel, gint year, gint month, gint day, gint hour, gint minute, guint duration, const char* name);
120
 
DVBTimer* dvb_timer_construct (GType object_type, guint32 id, DVBChannel* channel, gint year, gint month, gint day, gint hour, gint minute, guint duration, const char* name);
 
98
DVBTimer* dvb_timer_new (guint32 id, DVBChannel* channel, gint year, gint month, gint day, gint hour, gint minute, guint duration);
 
99
DVBTimer* dvb_timer_construct (GType object_type, guint32 id, DVBChannel* channel, gint year, gint month, gint day, gint hour, gint minute, guint duration);
121
100
static time_t dvb_timer_get_start_time_timestamp (DVBTimer* self);
122
101
DVBChannel* dvb_timer_get_Channel (DVBTimer* self);
123
102
gboolean dvb_channel_on_same_transport_stream (DVBChannel* self, DVBChannel* channel);
128
107
DVBOverlapType dvb_timer_get_overlap_local (DVBTimer* self, guint start_year, guint start_month, guint start_day, guint start_hour, guint start_minute, guint duration);
129
108
DVBOverlapType dvb_timer_get_overlap_utc (DVBTimer* self, guint start_year, guint start_month, guint start_day, guint start_hour, guint start_minute, guint duration);
130
109
void dvb_timer_add_to_start_time (DVBTimer* self, gint minutes);
131
 
guint dvb_timer_get_Year (DVBTimer* self);
132
 
guint dvb_timer_get_Month (DVBTimer* self);
133
 
guint dvb_timer_get_Day (DVBTimer* self);
134
 
guint dvb_timer_get_Hour (DVBTimer* self);
135
 
guint dvb_timer_get_Minute (DVBTimer* self);
136
110
guint* dvb_timer_get_start_time (DVBTimer* self, int* result_length1);
137
111
void dvb_timer_get_start_time_time (DVBTimer* self, struct tm* result);
138
112
guint* dvb_timer_get_end_time (DVBTimer* self, int* result_length1);
143
117
guint dvb_timer_get_Duration (DVBTimer* self);
144
118
char* dvb_timer_to_string (DVBTimer* self);
145
119
guint32 dvb_timer_get_Id (DVBTimer* self);
146
 
const char* dvb_timer_get_Name (DVBTimer* self);
 
120
static void dvb_timer_set_Id (DVBTimer* self, guint32 value);
 
121
static void dvb_timer_set_Channel (DVBTimer* self, DVBChannel* value);
147
122
GstElement* dvb_timer_get_sink (DVBTimer* self);
148
123
void dvb_timer_set_sink (DVBTimer* self, GstElement* value);
149
124
guint dvb_timer_get_EventID (DVBTimer* self);
153
128
 
154
129
 
155
130
 
156
 
DVBTimer* dvb_timer_construct (GType object_type, guint32 id, DVBChannel* channel, gint year, gint month, gint day, gint hour, gint minute, guint duration, const char* name) {
157
 
        GParameter * __params;
158
 
        GParameter * __params_it;
 
131
DVBTimer* dvb_timer_construct (GType object_type, guint32 id, DVBChannel* channel, gint year, gint month, gint day, gint hour, gint minute, guint duration) {
159
132
        DVBTimer * self;
160
133
        struct tm _tmp0_ = {0};
161
134
        g_return_val_if_fail (channel != NULL, NULL);
162
 
        __params = g_new0 (GParameter, 2);
163
 
        __params_it = __params;
164
 
        __params_it->name = "Id";
165
 
        g_value_init (&__params_it->value, G_TYPE_UINT);
166
 
        g_value_set_uint (&__params_it->value, id);
167
 
        __params_it++;
168
 
        __params_it->name = "Channel";
169
 
        g_value_init (&__params_it->value, DVB_TYPE_CHANNEL);
170
 
        g_value_set_object (&__params_it->value, channel);
171
 
        __params_it++;
172
 
        self = g_object_newv (object_type, __params_it - __params, __params);
173
 
        dvb_timer_set_Name (self, name);
174
 
        dvb_timer_set_Year (self, (guint) year);
175
 
        dvb_timer_set_Month (self, (guint) month);
176
 
        dvb_timer_set_Day (self, (guint) day);
177
 
        dvb_timer_set_Hour (self, (guint) hour);
178
 
        dvb_timer_set_Minute (self, (guint) minute);
 
135
        self = (DVBTimer*) g_object_new (object_type, "Id", id, "Channel", channel, NULL);
179
136
        dvb_timer_set_EventID (self, (guint) 0);
180
137
        dvb_timer_set_Duration (self, duration);
181
138
        self->priv->starttime = (dvb_utils_create_time (year, month, day, hour, minute, 0, &_tmp0_), _tmp0_);
182
 
        while (__params_it > __params) {
183
 
                --__params_it;
184
 
                g_value_unset (&__params_it->value);
185
 
        }
186
 
        g_free (__params);
187
139
        return self;
188
140
}
189
141
 
190
142
 
191
 
DVBTimer* dvb_timer_new (guint32 id, DVBChannel* channel, gint year, gint month, gint day, gint hour, gint minute, guint duration, const char* name) {
192
 
        return dvb_timer_construct (DVB_TYPE_TIMER, id, channel, year, month, day, hour, minute, duration, name);
 
143
DVBTimer* dvb_timer_new (guint32 id, DVBChannel* channel, gint year, gint month, gint day, gint hour, gint minute, guint duration) {
 
144
        return dvb_timer_construct (DVB_TYPE_TIMER, id, channel, year, month, day, hour, minute, duration);
193
145
}
194
146
 
195
147
 
312
264
        g_return_if_fail (self != NULL);
313
265
        self->priv->starttime.tm_min = self->priv->starttime.tm_min + minutes;
314
266
        mktime (&self->priv->starttime);
315
 
        dvb_timer_set_Year (self, (guint) (self->priv->starttime.tm_year + 1900));
316
 
        dvb_timer_set_Month (self, (guint) (self->priv->starttime.tm_mon + 1));
317
 
        dvb_timer_set_Day (self, (guint) self->priv->starttime.tm_mday);
318
 
        dvb_timer_set_Hour (self, (guint) self->priv->starttime.tm_hour);
319
 
        dvb_timer_set_Minute (self, (guint) self->priv->starttime.tm_min);
320
267
}
321
268
 
322
269
 
329
276
        guint* start;
330
277
        guint* _tmp2_;
331
278
        g_return_val_if_fail (self != NULL, NULL);
332
 
        start = (_tmp1_ = (_tmp0_ = g_new0 (guint, 5), _tmp0_[0] = self->priv->_Year, _tmp0_[1] = self->priv->_Month, _tmp0_[2] = self->priv->_Day, _tmp0_[3] = self->priv->_Hour, _tmp0_[4] = self->priv->_Minute, _tmp0_), start_length1 = 5, start_size = start_length1, _tmp1_);
 
279
        start = (_tmp1_ = (_tmp0_ = g_new0 (guint, 5), _tmp0_[0] = (guint) (self->priv->starttime.tm_year + 1900), _tmp0_[1] = (guint) (self->priv->starttime.tm_mon + 1), _tmp0_[2] = (guint) self->priv->starttime.tm_mday, _tmp0_[3] = (guint) self->priv->starttime.tm_hour, _tmp0_[4] = (guint) self->priv->starttime.tm_min, _tmp0_), start_length1 = 5, start_size = start_length1, _tmp1_);
333
280
        result = (_tmp2_ = start, *result_length1 = start_length1, _tmp2_);
334
281
        return result;
335
282
        start = (g_free (start), NULL);
432
379
 
433
380
char* dvb_timer_to_string (DVBTimer* self) {
434
381
        char* result;
 
382
        guint* _tmp1_;
 
383
        gint start_size;
 
384
        gint start_length1;
 
385
        gint _tmp0_;
 
386
        guint* start;
435
387
        g_return_val_if_fail (self != NULL, NULL);
436
 
        result = g_strdup_printf ("channel: %u, start: %04u-%02u-%02u %02u:%02u, duration: %u", dvb_channel_get_Sid (self->priv->_Channel), self->priv->_Year, self->priv->_Month, self->priv->_Day, self->priv->_Hour, self->priv->_Minute, self->priv->_Duration);
 
388
        start = (_tmp1_ = dvb_timer_get_start_time (self, &_tmp0_), start_length1 = _tmp0_, start_size = start_length1, _tmp1_);
 
389
        result = g_strdup_printf ("channel: %u, start: %04u-%02u-%02u %02u:%02u, duration: %u", dvb_channel_get_Sid (self->priv->_Channel), start[0], start[1], start[2], start[3], start[4], self->priv->_Duration);
 
390
        start = (g_free (start), NULL);
437
391
        return result;
438
392
}
439
393
 
490
444
}
491
445
 
492
446
 
493
 
const char* dvb_timer_get_Name (DVBTimer* self) {
494
 
        const char* result;
495
 
        g_return_val_if_fail (self != NULL, NULL);
496
 
        result = self->priv->_Name;
497
 
        return result;
498
 
}
499
 
 
500
 
 
501
 
void dvb_timer_set_Name (DVBTimer* self, const char* value) {
502
 
        char* _tmp0_;
503
 
        g_return_if_fail (self != NULL);
504
 
        self->priv->_Name = (_tmp0_ = g_strdup (value), _g_free0 (self->priv->_Name), _tmp0_);
505
 
        g_object_notify ((GObject *) self, "Name");
506
 
}
507
 
 
508
 
 
509
 
guint dvb_timer_get_Year (DVBTimer* self) {
510
 
        guint result;
511
 
        g_return_val_if_fail (self != NULL, 0U);
512
 
        result = self->priv->_Year;
513
 
        return result;
514
 
}
515
 
 
516
 
 
517
 
void dvb_timer_set_Year (DVBTimer* self, guint value) {
518
 
        g_return_if_fail (self != NULL);
519
 
        self->priv->_Year = value;
520
 
        g_object_notify ((GObject *) self, "Year");
521
 
}
522
 
 
523
 
 
524
 
guint dvb_timer_get_Month (DVBTimer* self) {
525
 
        guint result;
526
 
        g_return_val_if_fail (self != NULL, 0U);
527
 
        result = self->priv->_Month;
528
 
        return result;
529
 
}
530
 
 
531
 
 
532
 
void dvb_timer_set_Month (DVBTimer* self, guint value) {
533
 
        g_return_if_fail (self != NULL);
534
 
        self->priv->_Month = value;
535
 
        g_object_notify ((GObject *) self, "Month");
536
 
}
537
 
 
538
 
 
539
 
guint dvb_timer_get_Day (DVBTimer* self) {
540
 
        guint result;
541
 
        g_return_val_if_fail (self != NULL, 0U);
542
 
        result = self->priv->_Day;
543
 
        return result;
544
 
}
545
 
 
546
 
 
547
 
void dvb_timer_set_Day (DVBTimer* self, guint value) {
548
 
        g_return_if_fail (self != NULL);
549
 
        self->priv->_Day = value;
550
 
        g_object_notify ((GObject *) self, "Day");
551
 
}
552
 
 
553
 
 
554
 
guint dvb_timer_get_Hour (DVBTimer* self) {
555
 
        guint result;
556
 
        g_return_val_if_fail (self != NULL, 0U);
557
 
        result = self->priv->_Hour;
558
 
        return result;
559
 
}
560
 
 
561
 
 
562
 
void dvb_timer_set_Hour (DVBTimer* self, guint value) {
563
 
        g_return_if_fail (self != NULL);
564
 
        self->priv->_Hour = value;
565
 
        g_object_notify ((GObject *) self, "Hour");
566
 
}
567
 
 
568
 
 
569
 
guint dvb_timer_get_Minute (DVBTimer* self) {
570
 
        guint result;
571
 
        g_return_val_if_fail (self != NULL, 0U);
572
 
        result = self->priv->_Minute;
573
 
        return result;
574
 
}
575
 
 
576
 
 
577
 
void dvb_timer_set_Minute (DVBTimer* self, guint value) {
578
 
        g_return_if_fail (self != NULL);
579
 
        self->priv->_Minute = value;
580
 
        g_object_notify ((GObject *) self, "Minute");
581
 
}
582
 
 
583
 
 
584
447
guint dvb_timer_get_Duration (DVBTimer* self) {
585
448
        guint result;
586
449
        g_return_val_if_fail (self != NULL, 0U);
640
503
        G_OBJECT_CLASS (klass)->finalize = dvb_timer_finalize;
641
504
        g_object_class_install_property (G_OBJECT_CLASS (klass), DVB_TIMER_ID, g_param_spec_uint ("Id", "Id", "Id", 0, G_MAXUINT, 0U, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
642
505
        g_object_class_install_property (G_OBJECT_CLASS (klass), DVB_TIMER_CHANNEL, g_param_spec_object ("Channel", "Channel", "Channel", DVB_TYPE_CHANNEL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
643
 
        g_object_class_install_property (G_OBJECT_CLASS (klass), DVB_TIMER_NAME, g_param_spec_string ("Name", "Name", "Name", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
644
 
        g_object_class_install_property (G_OBJECT_CLASS (klass), DVB_TIMER_YEAR, g_param_spec_uint ("Year", "Year", "Year", 0, G_MAXUINT, 0U, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
645
 
        g_object_class_install_property (G_OBJECT_CLASS (klass), DVB_TIMER_MONTH, g_param_spec_uint ("Month", "Month", "Month", 0, G_MAXUINT, 0U, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
646
 
        g_object_class_install_property (G_OBJECT_CLASS (klass), DVB_TIMER_DAY, g_param_spec_uint ("Day", "Day", "Day", 0, G_MAXUINT, 0U, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
647
 
        g_object_class_install_property (G_OBJECT_CLASS (klass), DVB_TIMER_HOUR, g_param_spec_uint ("Hour", "Hour", "Hour", 0, G_MAXUINT, 0U, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
648
 
        g_object_class_install_property (G_OBJECT_CLASS (klass), DVB_TIMER_MINUTE, g_param_spec_uint ("Minute", "Minute", "Minute", 0, G_MAXUINT, 0U, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
649
506
        g_object_class_install_property (G_OBJECT_CLASS (klass), DVB_TIMER_DURATION, g_param_spec_uint ("Duration", "Duration", "Duration", 0, G_MAXUINT, 0U, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
650
507
        g_object_class_install_property (G_OBJECT_CLASS (klass), DVB_TIMER_SINK, g_param_spec_object ("sink", "sink", "sink", GST_TYPE_ELEMENT, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
651
508
        g_object_class_install_property (G_OBJECT_CLASS (klass), DVB_TIMER_EVENT_ID, g_param_spec_uint ("EventID", "EventID", "EventID", 0, G_MAXUINT, 0U, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
661
518
        DVBTimer * self;
662
519
        self = DVB_TIMER (obj);
663
520
        _g_object_unref0 (self->priv->_Channel);
664
 
        _g_free0 (self->priv->_Name);
665
521
        _gst_object_unref0 (self->priv->_sink);
666
522
        G_OBJECT_CLASS (dvb_timer_parent_class)->finalize (obj);
667
523
}
687
543
                case DVB_TIMER_CHANNEL:
688
544
                g_value_set_object (value, dvb_timer_get_Channel (self));
689
545
                break;
690
 
                case DVB_TIMER_NAME:
691
 
                g_value_set_string (value, dvb_timer_get_Name (self));
692
 
                break;
693
 
                case DVB_TIMER_YEAR:
694
 
                g_value_set_uint (value, dvb_timer_get_Year (self));
695
 
                break;
696
 
                case DVB_TIMER_MONTH:
697
 
                g_value_set_uint (value, dvb_timer_get_Month (self));
698
 
                break;
699
 
                case DVB_TIMER_DAY:
700
 
                g_value_set_uint (value, dvb_timer_get_Day (self));
701
 
                break;
702
 
                case DVB_TIMER_HOUR:
703
 
                g_value_set_uint (value, dvb_timer_get_Hour (self));
704
 
                break;
705
 
                case DVB_TIMER_MINUTE:
706
 
                g_value_set_uint (value, dvb_timer_get_Minute (self));
707
 
                break;
708
546
                case DVB_TIMER_DURATION:
709
547
                g_value_set_uint (value, dvb_timer_get_Duration (self));
710
548
                break;
731
569
                case DVB_TIMER_CHANNEL:
732
570
                dvb_timer_set_Channel (self, g_value_get_object (value));
733
571
                break;
734
 
                case DVB_TIMER_NAME:
735
 
                dvb_timer_set_Name (self, g_value_get_string (value));
736
 
                break;
737
 
                case DVB_TIMER_YEAR:
738
 
                dvb_timer_set_Year (self, g_value_get_uint (value));
739
 
                break;
740
 
                case DVB_TIMER_MONTH:
741
 
                dvb_timer_set_Month (self, g_value_get_uint (value));
742
 
                break;
743
 
                case DVB_TIMER_DAY:
744
 
                dvb_timer_set_Day (self, g_value_get_uint (value));
745
 
                break;
746
 
                case DVB_TIMER_HOUR:
747
 
                dvb_timer_set_Hour (self, g_value_get_uint (value));
748
 
                break;
749
 
                case DVB_TIMER_MINUTE:
750
 
                dvb_timer_set_Minute (self, g_value_get_uint (value));
751
 
                break;
752
572
                case DVB_TIMER_DURATION:
753
573
                dvb_timer_set_Duration (self, g_value_get_uint (value));
754
574
                break;