Blame src/libbluray/bluray_internal.h

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