This repository has been archived on 2022-05-21. You can view files and clone it, but cannot push or open issues or pull requests.
LEFTONE/util/jukebox/decoder.h
falsycat 84c3a02b9a [RELEASE] u22-v03
This version is submitted to U22 breau.
2020-09-14 00:00:00 +00:00

72 lines
1.3 KiB
C

#pragma once
#include <stddef.h>
#include "util/math/rational.h"
#include "./format.h"
struct jukebox_decoder_t;
typedef struct jukebox_decoder_t jukebox_decoder_t;
jukebox_decoder_t* /* OWNERSHIP */
jukebox_decoder_new_from_file(
const jukebox_format_t* format,
const char* path
);
jukebox_decoder_t* /* OWNERSHIP */
jukebox_decoder_new_from_memory_mp3(
const jukebox_format_t* format,
const void* buf,
size_t len
);
void
jukebox_decoder_delete(
jukebox_decoder_t* decoder /* OWNERSHIP */
);
void
jukebox_decoder_play(
jukebox_decoder_t* decoder,
const rational_t* st,
bool loop
);
void
jukebox_decoder_resume(
jukebox_decoder_t* decoder,
bool loop
);
void
jukebox_decoder_stop_after(
jukebox_decoder_t* decoder,
const rational_t* dur
);
void
jukebox_decoder_set_loop(
jukebox_decoder_t* decoder,
const rational_t* start, /* NULLABLE */
const rational_t* end /* NULLABLE */
);
void
jukebox_decoder_unset_loop(
jukebox_decoder_t* decoder
);
void
jukebox_decoder_get_seek_position(
const jukebox_decoder_t* decoder,
rational_t* time
);
void
jukebox_decoder_get_duration(
const jukebox_decoder_t* decoder,
rational_t* time
);