/*
* This file is part of libbluray
* Copyright (C) 2010 William Hahne
*
* 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
* .
*/
#ifndef BDJ_H_
#define BDJ_H_
#include "util/attributes.h"
#include
typedef enum {
/* Note: these must be in sync with Libbluray.java ! */
BDJ_EVENT_NONE = 0,
/* Application control */
BDJ_EVENT_START = 1, /* param: title number */
BDJ_EVENT_STOP = 2,
BDJ_EVENT_PSR102 = 3,
/* Playback status */
BDJ_EVENT_PLAYLIST = 4,
BDJ_EVENT_PLAYITEM = 5,
BDJ_EVENT_CHAPTER = 6,
BDJ_EVENT_MARK = 7,
BDJ_EVENT_PTS = 8,
BDJ_EVENT_END_OF_PLAYLIST = 9,
BDJ_EVENT_SEEK = 10,
BDJ_EVENT_RATE = 11,
BDJ_EVENT_ANGLE = 12,
BDJ_EVENT_AUDIO_STREAM = 13,
BDJ_EVENT_SUBTITLE = 14,
BDJ_EVENT_SECONDARY_STREAM = 15,
/* User interaction */
BDJ_EVENT_VK_KEY = 16,
BDJ_EVENT_UO_MASKED = 17,
BDJ_EVENT_MOUSE = 18,
BDJ_EVENT_LAST = 18,
} BDJ_EVENT;
typedef struct {
char *persistent_root; /* BD-J Xlet persistent storage */
char *cache_root; /* BD-J binding unit data area */
char *classpath; /* BD-J implementation class path (location of libbluray.jar) */
uint8_t no_persistent_storage; /* disable persistent storage (remove files at close) */
} BDJ_STORAGE;
typedef struct bdjava_s BDJAVA;
struct bluray;
BD_PRIVATE BDJAVA* bdj_open(const char *path, struct bluray *bd,
const char *bdj_disc_id, BDJ_STORAGE *storage);
BD_PRIVATE void bdj_close(BDJAVA *bdjava);
BD_PRIVATE int bdj_process_event(BDJAVA *bdjava, unsigned ev, unsigned param);
BD_PRIVATE int bdj_jvm_available(BDJ_STORAGE *storage); /* 0: no. 1: only jvm. 2: jvm + libbluray.jar. */
BD_PRIVATE void bdj_storage_cleanup(BDJ_STORAGE *);
#endif