void lo_message_add_symbol(lo_message m, const char *a) { const int size = lo_strsize(a); char *nptr = lo_message_add_data(m, size); lo_message_add_typechar(m, LO_SYMBOL); strncpy(nptr, a, size); }
void lo_message_add_midi(lo_message m, uint8_t a[4]) { char *nptr = lo_message_add_data(m, sizeof(a)); lo_message_add_typechar(m, LO_MIDI); memcpy(nptr, a, sizeof(a)); }
void lo_message_add_string(lo_message m, const char *a) { const int size = lo_strsize(a); char *nptr = lo_message_add_data(m, size); lo_message_add_typechar(m, LO_STRING); strncpy(nptr, a, size); }
void lo_message_add_float(lo_message m, float a) { lo_pcast32 b; int32_t *nptr = lo_message_add_data(m, sizeof(a)); b.f = a; lo_message_add_typechar(m, LO_FLOAT); *nptr = lo_htoo32(b.nl); }
void lo_message_add_int32(lo_message m, int32_t a) { lo_pcast32 b; int32_t *nptr = lo_message_add_data(m, sizeof(a)); b.i = a; lo_message_add_typechar(m, LO_INT32); *nptr = lo_htoo32(b.nl); }
void lo_message_add_double(lo_message m, double a) { lo_pcast64 b; uint64_t *nptr = lo_message_add_data(m, sizeof(a)); b.f = a; lo_message_add_typechar(m, LO_DOUBLE); *nptr = lo_htoo64(b.nl); }
void lo_message_add_int64(lo_message m, int64_t a) { lo_pcast64 b; uint64_t *nptr = lo_message_add_data(m, sizeof(a)); b.i = a; lo_message_add_typechar(m, LO_INT64); *nptr = lo_htoo64(b.nl); }
void lo_message_add_timetag(lo_message m, lo_timetag a) { lo_pcast64 b; uint64_t *nptr = lo_message_add_data(m, sizeof(a)); b.tt = a; lo_message_add_typechar(m, LO_TIMETAG); *nptr = lo_htoo64(b.nl); }
void lo_message_add_char(lo_message m, char a) { lo_pcast32 b; int32_t *nptr = lo_message_add_data(m, sizeof(int32_t)); b.c = a; lo_message_add_typechar(m, LO_CHAR); *nptr = lo_htoo32(b.nl); }
int lo_message_add_midi(lo_message m, uint8_t a[4]) { char *nptr = lo_message_add_data(m, 4); if (!nptr) return -1; if (lo_message_add_typechar(m, LO_MIDI)) return -1; memcpy(nptr, a, 4 * sizeof(uint8_t)); return 0; }
void lo_message_add_blob(lo_message m, lo_blob a) { const int size = lo_blobsize(a); const int32_t dsize = lo_htoo32(lo_blob_datasize(a)); char *nptr = lo_message_add_data(m, size); lo_message_add_typechar(m, LO_BLOB); memset(nptr + size - 4, 0, 4); memcpy(nptr, &dsize, sizeof(dsize)); memcpy(nptr + sizeof(int32_t), lo_blob_dataptr(a), lo_blob_datasize(a)); }
int lo_message_add_symbol(lo_message m, const char *a) { const int size = lo_strsize(a); char *nptr = lo_message_add_data(m, size); if (!nptr) return -1; if (lo_message_add_typechar(m, LO_SYMBOL)) return -1; strncpy(nptr, a, size); return 0; }
int lo_message_add_int32(lo_message m, int32_t a) { lo_pcast32 b; int32_t *nptr = lo_message_add_data(m, sizeof(a)); if (!nptr) return -1; b.i = a; if (lo_message_add_typechar(m, LO_INT32)) return -1; *nptr = b.nl; return 0; }
int lo_message_add_int64(lo_message m, int64_t a) { lo_pcast64 b; uint64_t *nptr = lo_message_add_data(m, sizeof(a)); if (!nptr) return -1; b.i = a; if (lo_message_add_typechar(m, LO_INT64)) return -1; *nptr = b.nl; return 0; }
int lo_message_add_float(lo_message m, float a) { lo_pcast32 b; int32_t *nptr = lo_message_add_data(m, sizeof(a)); if (!nptr) return -1; b.f = a; if (lo_message_add_typechar(m, LO_FLOAT)) return -1; *nptr = b.nl; return 0; }
int lo_message_add_double(lo_message m, double a) { lo_pcast64 b; uint64_t *nptr = lo_message_add_data(m, sizeof(a)); if (!nptr) return -1; b.f = a; if (lo_message_add_typechar(m, LO_DOUBLE)) return -1; *nptr = b.nl; return 0; }
int lo_message_add_timetag(lo_message m, lo_timetag a) { uint32_t *nptr = lo_message_add_data(m, sizeof(a)); if (!nptr) return -1; if (lo_message_add_typechar(m, LO_TIMETAG)) return -1; *nptr = a.sec; nptr++; *nptr = a.frac; return 0; }
int lo_message_add_char(lo_message m, char a) { lo_pcast32 b; int32_t *nptr = lo_message_add_data(m, sizeof(int32_t)); if (!nptr) return -1; b.i = 0; // zero the 32 bits before writing the char b.c = a; if (lo_message_add_typechar(m, LO_CHAR)) return -1; *nptr = b.nl; return 0; }
int lo_message_add_blob(lo_message m, lo_blob a) { const uint32_t size = lo_blobsize(a); const uint32_t dsize = lo_blob_datasize(a); char *nptr = lo_message_add_data(m, size); if (!nptr) return -1; if (lo_message_add_typechar(m, LO_BLOB)) return -1; memset(nptr + size - 4, 0, 4); memcpy(nptr, &dsize, sizeof(dsize)); memcpy(nptr + sizeof(int32_t), lo_blob_dataptr(a), lo_blob_datasize(a)); return 0; }