/*
* This file is part of libbluray
* Copyright (C) 2012-2014 libbluray
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see
* .
*/
#if !defined(_BLURAY_INTERNAL_H_)
#define _BLURAY_INTERNAL_H_
#include "util/attributes.h"
#include
struct bluray;
struct bd_disc;
BD_PRIVATE const uint8_t *bd_get_aacs_data(struct bluray *bd, int type);
/*
* VFS
*/
BD_PRIVATE struct bd_disc *bd_get_disc(struct bluray *bd);
BD_PRIVATE int bd_set_virtual_package(struct bluray *bd, const char *vp_path, int psr_init_backup);
/*
* UO mask, KIT
*/
#define BDJ_MENU_CALL_MASK 0x01
#define BDJ_TITLE_SEARCH_MASK 0x02
BD_PRIVATE uint64_t bd_get_uo_mask(struct bluray *bd);
BD_PRIVATE void bd_set_bdj_uo_mask(struct bluray *bd, unsigned mask);
BD_PRIVATE void bd_set_bdj_kit(struct bluray *bd, int mask);
/*
* title selection
*/
BD_PRIVATE int bd_play_title_internal(struct bluray *bd, unsigned title);
/*
* register access
*/
BD_PRIVATE uint32_t bd_reg_read(struct bluray *bd, int psr, int reg);
BD_PRIVATE int bd_reg_write(struct bluray *bd, int psr, int reg, uint32_t value, uint32_t psr_value_mask);
/*
* playback control
*/
enum bd_select_rate_reason {
BDJ_RATE_SET = 0,
BDJ_PLAYBACK_START = 1,
BDJ_PLAYBACK_STOP = 2,
};
BD_PRIVATE int bd_play_playlist_at(struct bluray *bd, int playlist, int playitem, int playmark, int64_t time);
BD_PRIVATE void bd_select_rate(struct bluray *bd, float rate, int reason);
BD_PRIVATE int bd_bdj_seek(struct bluray *bd, int playitem, int playmark, int64_t time);
BD_PRIVATE int bd_bdj_sound_effect(struct bluray *bd, int id);
/*
* BD-J overlay
*/
struct bd_argb_buffer_s;
BD_PRIVATE struct bd_argb_buffer_s *bd_lock_osd_buffer(struct bluray *bd);
BD_PRIVATE void bd_unlock_osd_buffer(struct bluray *bd);
BD_PRIVATE void bd_bdj_osd_cb(struct bluray *bd, const unsigned *img, int w, int h,
int x0, int y0, int x1, int y1);
#endif /* _BLURAY_INTERNAL_H_ */