Changeset 1950:1ae5ccbd2fd2 in roaraudio for libroarlight/roardmx.c
- Timestamp:
- 06/08/09 18:46:06 (15 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libroarlight/roardmx.c
r1947 r1950 25 25 #include "libroarlight.h" 26 26 27 // base(ic) check 28 #define BCHK(x) if ( (x) == NULL ) return -1 29 30 int roar_roardmx_message_new (struct roar_roardmx_message * mes) { 31 BCHK(mes); 32 33 memset(mes, 0, sizeof(struct roar_roardmx_message)); 34 35 mes->version = ROAR_ROARDMX_VERSION; 36 37 return 0; 38 } 39 40 // low level: 41 //int roar_roardmx_message_set_flag(struct roar_roardmx_message * mes, unsigned char flag); 42 //int roar_roardmx_message_set_len (struct roar_roardmx_message * mes, size_t type); 43 //int roar_roardmx_message_get_data(struct roar_roardmx_message * mes, unsigned char ** data); 44 45 // mdium level: 46 int roar_roardmx_message_set_type(struct roar_roardmx_message * mes, unsigned char type) { 47 BCHK(mes); 48 49 if ( (type | ROAR_ROARDMX_MASK_TYPE) - ROAR_ROARDMX_MASK_TYPE ) 50 return -1; 51 52 mes->type = type; 53 54 return 0; 55 } 56 57 int roar_roardmx_message_get_flag(struct roar_roardmx_message * mes, unsigned char * flag) { 58 BCHK(mes); 59 60 *flag = mes->flags; 61 62 return 0; 63 } 64 65 int roar_roardmx_message_get_type(struct roar_roardmx_message * mes, unsigned char * type) { 66 BCHK(mes); 67 68 *type = mes->type; 69 70 return 0; 71 } 72 73 int roar_roardmx_message_get_len (struct roar_roardmx_message * mes, size_t * length) { 74 BCHK(mes); 75 76 *length = mes->length; 77 78 return 0; 79 } 80 81 82 // IO: 83 int roar_roardmx_message_send(struct roar_roardmx_message * mes, struct roar_vio_calls * vio); 84 int roar_roardmx_message_recv(struct roar_roardmx_message * mes, struct roar_vio_calls * vio); 85 86 // Data/high level: 87 // * SSET: 88 int roar_roardmx_message_new_sset (struct roar_roardmx_message * mes) { 89 if ( roar_roardmx_message_new(mes) == -1 ) 90 return -1; 91 92 mes->type = ROAR_ROARDMX_TYPE_SSET; 93 94 return 0; 95 } 96 97 int roar_roardmx_message_add_chanval(struct roar_roardmx_message * mes, uint16_t channel, unsigned char val) { 98 uint16_t * chan; 99 100 BCHK(mes); 101 102 if ( (mes->length + 3) > ROAR_ROARDMX_DATA_LENGTH ) // message would be to long 103 return -1; 104 105 chan = (uint16_t *) &(mes->data[mes->length]); 106 107 *chan = ROAR_HOST2NET16(channel); 108 109 mes->data[mes->length + 2] = val; 110 111 mes->length += 3; 112 113 return 0; 114 } 115 116 27 117 //ll
Note: See TracChangeset
for help on using the changeset viewer.