X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=Opusfile.xs;fp=Opusfile.xs;h=43ab5a608fe34a6a016fc38d98cbaea41d433452;hb=5fbea9a258070b0c9e770e80aa52d17d66730d44;hp=6a5f55da6f2148f3303cc97fe552abcd71cb5ecd;hpb=74630599cbd740ae41a7573fd64fb5c98c1c5df0;p=audio-opusfile.git diff --git a/Opusfile.xs b/Opusfile.xs index 6a5f55d..43ab5a6 100644 --- a/Opusfile.xs +++ b/Opusfile.xs @@ -21,19 +21,55 @@ op_open_file(path) const char *path; PREINIT: int err; -CODE: - RETVAL = op_open_file(path, &err); +C_ARGS: + path, &err +POSTCALL: if(err) croak("op_open_file returned error %d\n", err); + +OggOpusFile* +op_open_memory(const char *data, size_t length(data)) +PREINIT: + int err; +C_ARGS: + data, XSauto_length_of_data, &err +POSTCALL: + if(err) + croak("op_open_memory returned error %d\n", err); + +bool +op_test(const char *data, size_t length(data)) +PROTOTYPE: $ +PREINIT: + int ret; +CODE: + ret = op_test (NULL, data, XSauto_length_of_data); + if(ret < 0 && ret != OP_ENOTFORMAT && ret != OP_EBADHEADER) + croak("op_test returned error %d\n", RETVAL); + RETVAL = !ret; OUTPUT: RETVAL + void DESTROY(of) OggOpusFile *of; CODE: op_free(of); +bool +op_seekable(of) + OggOpusFile* of; + +int +op_link_count(of) + OggOpusFile* of; + +int +op_serialno(of, li = -1) + OggOpusFile* of; + int li; + const OpusHead* op_head(of, li = -1) OggOpusFile *of;