Changeset 5694:d31d31565f84 in roaraudio


Ignore:
Timestamp:
10/13/12 22:37:37 (11 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

small updates to scheduler API

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • include/libroar/scheduler.h

    r5692 r5694  
    5050}; 
    5151 
     52enum roar_scheduler_strategy { 
     53 ROAR_SCHEDULER_STRATEGY_DEFAULT = -1, 
     54 ROAR_SCHEDULER_STRATEGY_SELECT  =  1, 
     55 ROAR_SCHEDULER_STRATEGY_WAIT, 
     56 ROAR_SCHEDULER_STRATEGY_SELECTORWAIT, 
     57 ROAR_SCHEDULER_STRATEGY_WAITORSELECT, 
     58}; 
     59 
     60#define ROAR_SCHEDULER_FLAG_DEFAULT -1 
    5261#define ROAR_SCHEDULER_FLAG_NONE    0x0000 
    5362#define ROAR_SCHEDULER_FLAG_FREE    0x0001 
     
    7988struct roar_scheduler; 
    8089 
    81 struct roar_scheduler * roar_scheduler_new(void); 
     90struct roar_scheduler * roar_scheduler_new(int flags, enum roar_scheduler_strategy strategy); 
    8291int                     roar_scheduler_ref(struct roar_scheduler * sched); 
    8392int                     roar_scheduler_unref(struct roar_scheduler * sched); 
  • libroar/scheduler.c

    r5692 r5694  
    4848struct roar_scheduler { 
    4949 size_t refc; 
     50 int flags; 
     51 enum roar_scheduler_strategy strategy; 
    5052 struct roar_scheduler_source ** sources; 
    5153 size_t sources_len; 
     
    5658}; 
    5759 
    58 struct roar_scheduler * roar_scheduler_new(void) { 
     60struct roar_scheduler * roar_scheduler_new(int flags, enum roar_scheduler_strategy strategy) { 
    5961 struct roar_scheduler * sched = roar_mm_malloc(sizeof(struct roar_scheduler)); 
    6062 
     
    6264  return NULL; 
    6365 
     66 if ( flags == ROAR_SCHEDULER_FLAG_DEFAULT ) 
     67  flags = ROAR_SCHEDULER_FLAG_NONE; 
     68 
    6469 memset(sched, 0, sizeof(struct roar_scheduler)); 
    6570 sched->refc = 1; 
     71 sched->flags = flags; 
     72 sched->strategy = strategy; 
    6673 
    6774 sched->sources = roar_mm_malloc(INIT_SIZE*sizeof(struct roar_scheduler_source *)); 
     
    543550 } 
    544551 
     552 if ( source->flags == ROAR_SCHEDULER_FLAG_DEFAULT ) 
     553  source->flags = ROAR_SCHEDULER_FLAG_NONE; 
     554 
    545555 switch (source->type) { 
    546556  case ROAR_SCHEDULER_CPI_LISTEN: 
Note: See TracChangeset for help on using the changeset viewer.