This commit is contained in:
46
CgeSample.h
Normal file
46
CgeSample.h
Normal file
@@ -0,0 +1,46 @@
|
||||
#ifndef CGE_SAMPLE_H
|
||||
#define CGE_SAMPLE_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
|
||||
enum CgeSampleFormat {
|
||||
CGE_SAMPLE_UNKNOWN, /* Invalid or unknown format */
|
||||
CGE_SAMPLE_S8, /* 8-bit signed integer, range: -128 to 127 */
|
||||
CGE_SAMPLE_U8, /* 8-bit unsigned integer, range: 0 to 255 */
|
||||
CGE_SAMPLE_S16, /* 16-bit signed integer, range: -32768 to 32767 */
|
||||
CGE_SAMPLE_U16, /* 16-bit unsigned integer, range: 0 to 65535 */
|
||||
CGE_SAMPLE_S24, /* 24-bit signed integer */
|
||||
CGE_SAMPLE_U24, /* 24-bit unsigned integer */
|
||||
CGE_SAMPLE_S32, /* 32-bit signed integer */
|
||||
CGE_SAMPLE_U32, /* 32-bit unsigned integer */
|
||||
CGE_SAMPLE_F32, /* 32-bit IEEE 754 float */
|
||||
CGE_SAMPLE_F64, /* 64-bit IEEE 754 double */
|
||||
};
|
||||
|
||||
typedef struct CgeSampleBuf {
|
||||
void *data;
|
||||
int format;
|
||||
size_t count;
|
||||
size_t stride;
|
||||
} CgeSampleBuf;
|
||||
|
||||
size_t CgeSampleInitLayout(CgeSampleBuf *buf, int format, size_t count);
|
||||
float CgeSampleGetF32(const CgeSampleBuf *buf, size_t index);
|
||||
void CgeSampleSetF32(CgeSampleBuf *buf, size_t index, float value);
|
||||
int16_t CgeSampleGetS16(const CgeSampleBuf *buf, size_t index);
|
||||
void CgeSampleSetS16(CgeSampleBuf *buf, size_t index, int16_t value);
|
||||
|
||||
void CgeSampleConvert(void *src, int srcFormat, size_t srcStride,
|
||||
void *dst, int dstFormat, size_t dstStride,
|
||||
size_t count);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* CGE_SAMPLE_H */
|
||||
Reference in New Issue
Block a user