diff --git a/src/tvheadend.h b/src/tvheadend.h index 4dd4e2b9..e1a4e4d0 100644 --- a/src/tvheadend.h +++ b/src/tvheadend.h @@ -436,8 +436,14 @@ void sbuf_err(sbuf_t *sb); void sbuf_alloc(sbuf_t *sb, int len); -void sbuf_append(sbuf_t *sb, const uint8_t *data, int len); +void sbuf_append(sbuf_t *sb, const void *data, int len); void sbuf_cut(sbuf_t *sb, int off); +void sbuf_put_be32(sbuf_t *sb, uint32_t u32); + +void sbuf_put_be16(sbuf_t *sb, uint16_t u16); + +void sbuf_put_byte(sbuf_t *sb, uint8_t u8); + #endif /* TV_HEAD_H */ diff --git a/src/utils.c b/src/utils.c index 1a293dc8..65a2de2f 100644 --- a/src/utils.c +++ b/src/utils.c @@ -265,13 +265,34 @@ sbuf_alloc(sbuf_t *sb, int len) } void -sbuf_append(sbuf_t *sb, const uint8_t *data, int len) +sbuf_append(sbuf_t *sb, const void *data, int len) { sbuf_alloc(sb, len); memcpy(sb->sb_data + sb->sb_ptr, data, len); sb->sb_ptr += len; } +void +sbuf_put_be32(sbuf_t *sb, uint32_t u32) +{ + u32 = htonl(u32); + sbuf_append(sb, &u32, 4); +} + +void +sbuf_put_be16(sbuf_t *sb, uint16_t u16) +{ + u16 = htons(u16); + sbuf_append(sb, &u16, 2); +} + +void +sbuf_put_byte(sbuf_t *sb, uint8_t u8) +{ + sbuf_append(sb, &u8, 1); +} + + void sbuf_cut(sbuf_t *sb, int off) {