DPF

DISTRHO Plugin Framework
Log | Files | Refs | Submodules | README | LICENSE

bstream.h (1568B)


      1 /*
      2  * travesty, pure C VST3-compatible interface
      3  * Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com>
      4  *
      5  * Permission to use, copy, modify, and/or distribute this software for any purpose with
      6  * or without fee is hereby granted, provided that the above copyright notice and this
      7  * permission notice appear in all copies.
      8  *
      9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD
     10  * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN
     11  * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
     12  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
     13  * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
     14  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
     15  */
     16 
     17 #pragma once
     18 
     19 #include "base.h"
     20 
     21 enum v3_seek_mode {
     22 	V3_SEEK_SET = 0,
     23 	V3_SEEK_CUR,
     24 	V3_SEEK_END
     25 };
     26 
     27 struct v3_bstream {
     28 #ifndef __cplusplus
     29 	struct v3_funknown;
     30 #endif
     31 	v3_result (V3_API *read)(void* self, void* buffer, int32_t num_bytes, int32_t* bytes_read);
     32 	v3_result (V3_API *write)(void* self, void* buffer, int32_t num_bytes, int32_t* bytes_written);
     33 	v3_result (V3_API *seek)(void* self, int64_t pos, int32_t seek_mode, int64_t* result);
     34 	v3_result (V3_API *tell)(void* self, int64_t* pos);
     35 };
     36 
     37 static constexpr const v3_tuid v3_bstream_iid =
     38 	V3_ID(0xC3BF6EA2, 0x30994752, 0x9B6BF990, 0x1EE33E9B);
     39 
     40 #ifdef __cplusplus
     41 
     42 /**
     43  * C++ variants
     44  */
     45 
     46 struct v3_bstream_cpp : v3_funknown {
     47 	v3_bstream stream;
     48 };
     49 
     50 #endif