/*
- * Copyright (C) 2005-2009 Team XBMC
- * http://www.xbmc.org
+ * Copyright (C) 2005-2013 Team XBMC
+ * http://xbmc.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with XBMC; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
- * http://www.gnu.org/copyleft/gpl.html
+ * along with XBMC; see the file COPYING. If not, see
+ * <http://www.gnu.org/licenses/>.
*
*/
#pragma once
{
#include <libbluray/bluray.h>
#include <libbluray/filesystem.h>
-#ifndef HAVE_LIBBLURAY_NOLOGCONTROL
#include <libbluray/log_control.h>
-#endif
+#include <libbluray/keys.h>
+#include <libbluray/overlay.h>
}
class DllLibblurayInterface
virtual BD_FILE_OPEN bd_register_file(BD_FILE_OPEN p)=0;
virtual BD_DIR_OPEN bd_register_dir(BD_DIR_OPEN p)=0;
-#ifndef HAVE_LIBBLURAY_NOLOGCONTROL
virtual void bd_set_debug_handler(BD_LOG_FUNC)=0;
virtual void bd_set_debug_mask(uint32_t mask)=0;
virtual uint32_t bd_get_debug_mask(void)=0;
+ virtual const BLURAY_DISC_INFO *bd_get_disc_info(BLURAY *bd)=0;
+
+ virtual int bd_get_event (BLURAY *bd, BD_EVENT *event)=0;
+ virtual int bd_play (BLURAY *bd)=0;
+ virtual int bd_read_ext (BLURAY *bd, unsigned char *buf, int len, BD_EVENT *event)=0;
+ virtual int bd_read_skip_still (BLURAY *bd)=0;
+ virtual int bd_user_input (BLURAY *bd, int64_t pts, uint32_t key)=0;
+ virtual int bd_set_player_setting (BLURAY *bd, uint32_t idx, uint32_t value)=0;
+ virtual int bd_set_player_setting_str (BLURAY *bd, uint32_t idx, const char *s)=0;
+ virtual void bd_register_overlay_proc (BLURAY *bd, void *handle, bd_overlay_proc_f func)=0;
+#ifdef HAVE_LIBBLURAY_BDJ
+ virtual void bd_register_argb_overlay_proc(BLURAY *bd, void *handle, bd_argb_overlay_proc_f func, struct bd_argb_buffer_s *buf)=0;
#endif
+ virtual int bd_menu_call (BLURAY *bd, int64_t pts)=0;
};
class DllLibbluray : public DllDynamic, DllLibblurayInterface
{
DECLARE_DLL_WRAPPER(DllLibbluray, DLL_PATH_LIBBLURAY)
-#ifdef HAVE_LIBBBLURAY_HAVE_LIBBLURAY_NOANGLE
- DEFINE_METHOD3(uint32_t, bd_get_titles, (BLURAY *p1, uint8_t p2))
- DEFINE_METHOD3(BLURAY_TITLE_INFO*, bd_get_title_info, (BLURAY *p1, uint32_t p2))
- DEFINE_METHOD3(BLURAY_TITLE_INFO*, bd_get_playlist_info, (BLURAY *p1, uint32_t p2))
-#else
DEFINE_METHOD3(uint32_t, bd_get_titles, (BLURAY *p1, uint8_t p2, uint32_t p3))
DEFINE_METHOD3(BLURAY_TITLE_INFO*, bd_get_title_info, (BLURAY *p1, uint32_t p2, unsigned p3))
DEFINE_METHOD3(BLURAY_TITLE_INFO*, bd_get_playlist_info, (BLURAY *p1, uint32_t p2, unsigned p3))
-#endif
DEFINE_METHOD1(void, bd_free_title_info, (BLURAY_TITLE_INFO *p1))
DEFINE_METHOD2(BLURAY*, bd_open, (const char* p1, const char* p2))
DEFINE_METHOD1(void, bd_close, (BLURAY *p1))
DEFINE_METHOD1(BD_FILE_OPEN, bd_register_file, (BD_FILE_OPEN p1))
DEFINE_METHOD1(BD_DIR_OPEN, bd_register_dir, (BD_DIR_OPEN p1))
-#ifndef HAVE_LIBBLURAY_NOLOGCONTROL
DEFINE_METHOD1(void, bd_set_debug_handler, (BD_LOG_FUNC p1))
DEFINE_METHOD1(void, bd_set_debug_mask, (uint32_t p1))
DEFINE_METHOD0(uint32_t, bd_get_debug_mask)
+ DEFINE_METHOD1(const BLURAY_DISC_INFO*, bd_get_disc_info, (BLURAY *p1))
+
+ DEFINE_METHOD2(int, bd_get_event, (BLURAY *p1, BD_EVENT *p2))
+ DEFINE_METHOD1(int, bd_play, (BLURAY *p1))
+ DEFINE_METHOD4(int, bd_read_ext, (BLURAY *p1, unsigned char *p2, int p3, BD_EVENT *p4))
+ DEFINE_METHOD1(int, bd_read_skip_still, (BLURAY *p1))
+ DEFINE_METHOD3(int, bd_user_input, (BLURAY *p1, int64_t p2, uint32_t p3))
+ DEFINE_METHOD3(int, bd_set_player_setting, (BLURAY *p1, uint32_t p2, uint32_t p3))
+ DEFINE_METHOD3(int, bd_set_player_setting_str, (BLURAY *p1, uint32_t p2, const char *p3))
+ DEFINE_METHOD3(void, bd_register_overlay_proc, (BLURAY *p1, void *p2, bd_overlay_proc_f p3))
+#ifdef HAVE_LIBBLURAY_BDJ
+ DEFINE_METHOD4(void, bd_register_argb_overlay_proc, (BLURAY *p1, void *p2, bd_argb_overlay_proc_f p3, struct bd_argb_buffer_s *p4))
#endif
+ DEFINE_METHOD2(int, bd_menu_call, (BLURAY *p1, int64_t p2))
BEGIN_METHOD_RESOLVE()
RESOLVE_METHOD(bd_get_titles)
RESOLVE_METHOD_RENAME(bd_tell_time, bd_tell_time)
RESOLVE_METHOD_RENAME(bd_register_file, bd_register_file)
RESOLVE_METHOD_RENAME(bd_register_dir, bd_register_dir)
-#ifndef HAVE_LIBBLURAY_NOLOGCONTROL
RESOLVE_METHOD(bd_set_debug_handler)
RESOLVE_METHOD(bd_set_debug_mask)
RESOLVE_METHOD(bd_get_debug_mask)
-#endif
- END_METHOD_RESOLVE()
+ RESOLVE_METHOD(bd_get_disc_info)
-#ifdef HAVE_LIBBBLURAY_HAVE_LIBBLURAY_NOANGLE
- uint32_t bd_get_titles(BLURAY *bd, uint8_t flags, uint32_t min_title_length)
- {return bd_get_titles_noangle(bd, flags); }
- BLURAY_TITLE_INFO* bd_get_title_info(BLURAY *bd, uint32_t title_idx, unsigned angle)
- {return bd_get_title_info_noangle(bd, title_idx); }
- BLURAY_TITLE_INFO* bd_get_playlist_info(BLURAY *bd, uint32_t playlist, unsigned angle)
- {return bd_get_playlist_info_noangle(bd, playlist); }
+ RESOLVE_METHOD(bd_get_event)
+ RESOLVE_METHOD(bd_play)
+ RESOLVE_METHOD(bd_read_ext)
+ RESOLVE_METHOD(bd_read_skip_still)
+ RESOLVE_METHOD(bd_user_input)
+ RESOLVE_METHOD(bd_set_player_setting)
+ RESOLVE_METHOD(bd_set_player_setting_str)
+ RESOLVE_METHOD(bd_register_overlay_proc)
+#ifdef HAVE_LIBBLURAY_BDJ
+ RESOLVE_METHOD(bd_register_argb_overlay_proc)
#endif
+ RESOLVE_METHOD(bd_menu_call)
+ END_METHOD_RESOLVE()
public:
static void file_close(BD_FILE_H *file);