/** * GMyth Library * * @file gmyth/gmyth_scheduler.h * * @brief

The scheduler encapsulates all functions for browsing, scheduling * and modifying the recorded content. * * Copyright (C) 2006 INdT - Instituto Nokia de Tecnologia. * @author Alexsandro Jose Virginio dos Santos * *//* * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef __GMYTH_SCHEDULER_H__ #define __GMYTH_SCHEDULER_H__ #include #include #include "gmyth_common.h" #include "gmyth_query.h" #include "gmyth_backendinfo.h" G_BEGIN_DECLS #define GMYTH_SCHEDULER_TYPE (gmyth_scheduler_get_type ()) #define GMYTH_SCHEDULER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMYTH_SCHEDULER_TYPE, GMythScheduler)) #define GMYTH_SCHEDULER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GMYTH_SCHEDULER_TYPE, GMythSchedulerClass)) #define IS_GMYTH_SCHEDULER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GMYTH_SCHEDULER_TYPE)) #define IS_GMYTH_SCHEDULER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GMYTH_SCHEDULER_TYPE)) #define GMYTH_SCHEDULER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GMYTH_SCHEDULER_TYPE, GMythSchedulerClass)) typedef struct _GMythScheduler GMythScheduler; typedef struct _GMythSchedulerClass GMythSchedulerClass; struct _GMythSchedulerClass { GObjectClass parent_class; /* callbacks */ /* no one for now */ }; struct _GMythScheduler { GObject parent; unsigned long recordid; unsigned long type; unsigned long search; GString *profile; long dupin; long dupmethod; long autoexpire; short int autotranscode; long transcoder; short int autocommflag; short int autouserjob1; short int autouserjob2; short int autouserjob3; short int autouserjob4; long startoffset; long endoffset; long maxepisodes; long maxnewest; long recpriority; GString *recgroup; GString *playgroup; long prefinput; short int inactive; GString *searchType; GString *searchForWhat; GMythQuery *msqlquery; GMythBackendInfo *backend_info; }; typedef struct { gint record_id; gint program_id; gint channel_id; GTimeVal* start_time; GTimeVal* end_time; GString *title; GString *subtitle; GString *description; GString *category; } ScheduleInfo; typedef struct { guint record_id; guint program_id; guint channel_id; GTimeVal* start_time; GTimeVal* end_time; GString *title; GString *subtitle; GString *description; GString *category; GString *basename; guint64 filesize; } RecordedInfo; GType gmyth_scheduler_get_type (void); GMythScheduler* gmyth_scheduler_new (); gboolean gmyth_scheduler_connect (GMythScheduler *scheduler, GMythBackendInfo *backend_info); gboolean gmyth_scheduler_connect_with_timeout (GMythScheduler *scheduler, GMythBackendInfo *backend_info, guint timeout); gboolean gmyth_scheduler_disconnect (GMythScheduler *scheduler); gint gmyth_scheduler_get_schedule_list (GMythScheduler *scheduler, GList **sched_list); gint gmyth_scheduler_get_recorded_list (GMythScheduler *scheduler, GList **rec_list); GMythProgramInfo* gmyth_scheduler_get_recorded (GMythScheduler *scheduler, GString *channel, GTimeVal* starttime); gint gmyth_scheduler_add_schedule(GMythScheduler *scheduler, ScheduleInfo *schedule_info); gint gmyth_scheduler_delete_schedule (GMythScheduler *scheduler, gint record_id); gint gmyth_scheduler_delete_recorded (GMythScheduler *scheduler, gint record_id); void gmyth_scheduler_recorded_info_get_preview (RecordedInfo *info, GByteArray* data); void gmyth_scheduler_schedule_info_free (ScheduleInfo *info); void gmyth_scheduler_recorded_info_free (RecordedInfo *info); G_END_DECLS #endif /* __GMYTH_SCHEDULER_H__ */