aboutsummaryrefslogtreecommitdiff
path: root/lib/DllLibbluray.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/DllLibbluray.h')
-rw-r--r--lib/DllLibbluray.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/DllLibbluray.h b/lib/DllLibbluray.h
index b7d9ff2272..63e0879000 100644
--- a/lib/DllLibbluray.h
+++ b/lib/DllLibbluray.h
@@ -31,6 +31,8 @@ extern "C"
#include <libbluray/overlay.h>
}
+typedef int(*read_blocks_f)(void *handle, void *buf, int lba, int num_blocks);
+
class DllLibblurayInterface
{
public:
@@ -41,6 +43,7 @@ public:
virtual void bd_free_title_info(BLURAY_TITLE_INFO *title_info)=0;
virtual BLURAY *bd_open(const char* device_path, const char* keyfile_path)=0;
virtual int bd_open_disc(BLURAY *bd, const char *device_path, const char *keyfile_path)=0;
+ virtual int bd_open_stream(BLURAY *bd, void *read_blocks_handle, read_blocks_f func) = 0;
virtual BLURAY *bd_init(void)= 0;
virtual void bd_close(BLURAY *bd)=0;
virtual int64_t bd_seek(BLURAY *bd, uint64_t pos)=0;
@@ -92,6 +95,7 @@ class DllLibbluray : public DllDynamic, DllLibblurayInterface
DEFINE_METHOD1(void, bd_free_title_info, (BLURAY_TITLE_INFO *p1))
DEFINE_METHOD2(BLURAY*, bd_open, (const char* p1, const char* p2))
DEFINE_METHOD3(int, bd_open_disc, (BLURAY *p1, const char *p2, const char *p3))
+ DEFINE_METHOD3(int, bd_open_stream, (BLURAY *p1, void *p2, read_blocks_f p3))
DEFINE_METHOD0(BLURAY*, bd_init)
DEFINE_METHOD1(void, bd_close, (BLURAY *p1))
DEFINE_METHOD2(int64_t, bd_seek, (BLURAY *p1, uint64_t p2))
@@ -140,6 +144,7 @@ class DllLibbluray : public DllDynamic, DllLibblurayInterface
RESOLVE_METHOD_RENAME(bd_free_title_info, bd_free_title_info)
RESOLVE_METHOD_RENAME(bd_open, bd_open)
RESOLVE_METHOD(bd_open_disc)
+ RESOLVE_METHOD(bd_open_stream)
RESOLVE_METHOD(bd_init)
RESOLVE_METHOD_RENAME(bd_close, bd_close)
RESOLVE_METHOD_RENAME(bd_seek, bd_seek)