1 /* 2 * SpanDSP - a series of DSP components for telephony 3 * 4 * schedule.h 5 * 6 * Written by Steve Underwood <steveu@coppice.org> 7 * 8 * Copyright (C) 2004 Steve Underwood 9 * 10 * All rights reserved. 11 * 12 * This program is free software; you can redistribute it and/or modify 13 * it under the terms of the GNU Lesser General Public License version 2.1, 14 * as published by the Free Software Foundation. 15 * 16 * This program is distributed in the hope that it will be useful, 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * GNU Lesser General Public License for more details. 20 * 21 * You should have received a copy of the GNU Lesser General Public 22 * License along with this program; if not, write to the Free Software 23 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 24 */ 25 26 /*! \file */ 27 28 /*! \page schedule_page Scheduling 29 \section schedule_page_sec_1 What does it do? 30 ???. 31 32 \section schedule_page_sec_2 How does it work? 33 ???. 34 */ 35 36 #if !defined(_SPANDSP_SCHEDULE_H_) 37 #define _SPANDSP_SCHEDULE_H_ 38 39 /*! A scheduled event entry. */ 40 typedef struct span_sched_s span_sched_t; 41 42 /*! A scheduled event queue. */ 43 typedef struct span_sched_state_s span_sched_state_t; 44 45 typedef void (*span_sched_callback_func_t)(span_sched_state_t *s, void *user_data); 46 47 #if defined(__cplusplus) 48 extern "C" 49 { 50 #endif 51 52 SPAN_DECLARE(uint64_t) span_schedule_next(span_sched_state_t *s); 53 SPAN_DECLARE(uint64_t) span_schedule_time(span_sched_state_t *s); 54 55 SPAN_DECLARE(int) span_schedule_event(span_sched_state_t *s, int us, span_sched_callback_func_t function, void *user_data); 56 SPAN_DECLARE(void) span_schedule_update(span_sched_state_t *s, int us); 57 SPAN_DECLARE(void) span_schedule_del(span_sched_state_t *s, int id); 58 59 SPAN_DECLARE(span_sched_state_t *) span_schedule_init(span_sched_state_t *s); 60 SPAN_DECLARE(int) span_schedule_release(span_sched_state_t *s); 61 SPAN_DECLARE(int) span_schedule_free(span_sched_state_t *s); 62 63 #if defined(__cplusplus) 64 } 65 #endif 66 67 #endif 68 /*- End of file ------------------------------------------------------------*/ 69