text: /*
   *			GPAC - Multimedia Framework C SDK
   *
   *			Authors: Arash Shafiei
   *			Copyright (c) Telecom ParisTech 2000-2013
   *					All rights reserved
   *
   *  This file is part of GPAC / dashcast
   *
   *  GPAC 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, or (at your option)
   *  any later version.
   *
   *  GPAC 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 Lesser General Public License for more details.
   *
   *  You should have received a copy of the GNU Lesser General Public
   *  License along with this library; see the file COPYING.  If not, write to
   *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
   *
   */
  
  #include "task.h"
  
  
  void dc_task_init(TaskList *list)
  {
  	list->tasks = gf_list_new();
  	list->size = 0;
  }
  
  void dc_task_destroy(TaskList *list)
  {
  	gf_list_del(list->tasks);
  }
  
  void dc_task_add(TaskList *list, int source_number, char *id_name, time_t start, time_t end)
  {
  	Task *task = (Task*)gf_malloc(sizeof(Task));
  	task->source_number = source_number;
  	strncpy(task->id, id_name, MAX_ID_SIZE-1);
  	task->start_time_t = start;
  	task->end_time_t = end;
  	gf_list_add(list->tasks, task);
  	list->size++;
  }
  
  int dc_task_get_current(TaskList *list, Task *task)
  {
  	u32 i;
  	time_t now_time = time(NULL);
  	for (i = 0; i<list->size; i++) {
  		Task *cur_task = (Task*)gf_list_get(list->tasks, i);
  		if (now_time > cur_task->start_time_t && now_time < cur_task->end_time_t) {
  			//strncpy(task->id, cur_task->id, MAX_ID_SIZE-1);
  			//memcpy(&task->start_time, &cur_task->start_time, sizeof(struct tm));
  			//memcpy(&task->end_time, &cur_task->end_time, sizeof(struct tm));
  			task->source_number = cur_task->source_number;
  			return 0;
  		}
  	}
  
  	task->source_number = 0;
  	return -1;
  }
  
  