unit libVLC;


{ VideoLAN libvcl.dll (0.8.6b) Interface for Delphi (c)2007 by Paul TOTH
  - Modified by Keypad    libvcl.dll (0.9.2)                       }

// http://wiki.videolan.org/ExternalAPI#VLC_Control

interface

uses Dialogs, SysUtils, Forms;

{$IFDEF LINUX}
const
  LibName = 'libvlc.so.0.0.8';
{$ENDIF}
{$IFDEF WINDOWS}
const
  LibName = 'C:\Programme\VideoLAN\VLC\libvlc.dll';
{$ENDIF}

// Structures
type
  libvlc_exception = record
    Code: integer;
    Message: PChar;
  end;

type
  libvlc_playlist_item = record
    itemid: integer;
    itemurl: PChar;
    itemname: PChar
  end;

  libvlc_media_discoverer = pointer;
  libvlc_media_list = pointer;
  libvlc_media_list_player = pointer;
  libvlc_media_player = pointer;
  libvlc_media = pointer;
  libvlc_instance = pointer;
  libvlc_input = pointer;
  libvlc_time = integer;
  libvlc_state = integer;

// Core
function libvlc_new(argc: integer; args: ppchar; var Exception: libvlc_exception): libvlc_instance; cdecl external LibName;
procedure libvlc_exception_clear(var Exception: libvlc_exception); cdecl external LibName;
procedure libvlc_release(vlc: libvlc_instance); cdecl external LibName;

//AF ######################################
procedure libvlc_exception_init(var Exception: libvlc_exception); cdecl external LibName;
procedure libvlc_media_player_set_media(m_mp: libvlc_media_player; _m: libvlc_media; var _vlcexcep: libvlc_exception);
  cdecl external LibName;
procedure libvlc_media_player_set_drawable(m_mp: libvlc_media_player; para2: integer; var _vlcexcep: libvlc_exception);
  cdecl external LibName;
function libvlc_exception_raised(ex: libvlc_exception): boolean; cdecl external LibName;
function libvlc_exception_get_message(ex: libvlc_exception): PChar; cdecl external LibName;
//AF ######################################


// Media
function libvlc_media_new(vlc: libvlc_instance; var mrl: PChar; var Exception: libvlc_exception): libvlc_media;
  cdecl external LibName;
procedure libvlc_media_release(media: libvlc_media); cdecl external LibName;
function libvlc_media_add_option(media: libvlc_media; var options: PChar; var Exception: libvlc_exception): integer;
  cdecl external LibName;
function libvlc_media_subitems(media: libvlc_media; var Exception: libvlc_exception): libvlc_media_list; cdecl external LibName;
function libvlc_media_player_get_media(mediaplayer: libvlc_media_player; var Exception: libvlc_exception): libvlc_media;
  cdecl external LibName;
function libvlc_media_get_mrl(media: libvlc_media; var Exception: libvlc_exception): string; cdecl external LibName;

// Media player
procedure libvlc_media_player_play(mediaplayer: libvlc_media_player; var Exception: libvlc_exception); cdecl external LibName;
procedure libvlc_media_player_release(mediaplayer: libvlc_media_player); cdecl external LibName;
function libvlc_media_player_new_from_media(media: libvlc_media; var Exception: libvlc_exception): libvlc_media_player;
  cdecl external LibName;
function libvlc_media_player_new(vlc: libvlc_instance; var Exception: libvlc_exception): libvlc_media_player;
  cdecl external LibName;
function libvlc_media_player_get_length(mediaplayer: libvlc_media_player; var Exception: libvlc_exception): int64;
  cdecl external LibName;
function libvlc_media_player_get_time(mediaplayer: libvlc_media_player; var Exception: libvlc_exception): int64;
  cdecl external LibName;
function libvlc_media_player_get_position(mediaplayer: libvlc_media_player; var Exception: libvlc_exception): single;
  cdecl external LibName;
procedure libvlc_media_player_stop(mediaplayer: libvlc_media_player; var Exception: libvlc_exception); cdecl external LibName;
procedure libvlc_media_player_pause(mediaplayer: libvlc_media_player; var Exception: libvlc_exception); cdecl external LibName;
procedure libvlc_media_player_set_position(mediaplayer: libvlc_media_player; position: single;
  var Exception: libvlc_exception); cdecl external LibName;
function libvlc_media_player_set_time(mediaplayer: libvlc_media_player; timeset: libvlc_time;
  var Exception: libvlc_exception): int64; cdecl external LibName;
function libvlc_media_player_get_state(mediaplayer: libvlc_media_player; var Exception: libvlc_exception): libvlc_state;
  cdecl external LibName;
function libvlc_media_player_has_vout(mediaplayer: libvlc_media_player; var Exception: libvlc_exception): int64;
  cdecl external LibName;
function libvlc_media_player_is_seekable(mediaplayer: libvlc_media_player; var Exception: libvlc_exception): int64;
  cdecl external LibName;
function libvlc_media_player_get_rate(mediaplayer: libvlc_media_player; var Exception: libvlc_exception): single;
  cdecl external LibName;
function libvlc_media_player_set_rate(mediaplayer: libvlc_media_player; speed: single; var Exception: libvlc_exception): int64;
  cdecl external LibName;
function libvlc_media_player_get_chapter_count(mediaplayer: libvlc_media_player; var Exception: libvlc_exception): int64;
  cdecl external LibName;
function libvlc_media_player_retain(mediaplayer: libvlc_media_player): int64; cdecl external LibName;
// Media List Player
function libvlc_media_list_player_new(vlc: libvlc_instance; var Exception: libvlc_exception): libvlc_media_list_player;
  cdecl external LibName;
procedure libvlc_media_list_player_release(medialistplayer: libvlc_media_list_player); cdecl external LibName;
procedure libvlc_media_list_player_set_media_player(medialistplayer: libvlc_media_list_player;
  mediaplayer: libvlc_media_player; var Exception: libvlc_exception); cdecl external LibName;
procedure libvlc_media_list_player_play(medialistplayer: libvlc_media_list_player; var Exception: libvlc_exception);
  cdecl external LibName;
function libvlc_media_list_new(vlc: libvlc_instance; var Exception: libvlc_exception): libvlc_media_list; cdecl external LibName;
procedure libvlc_media_list_add_file_content(medialist: libvlc_media_list; filename: PChar; var Exception: libvlc_exception);
  cdecl external LibName;
procedure libvlc_media_list_player_set_media_list(medialistplayer: libvlc_media_list_player;
  medialist: libvlc_media_list; var Exception: libvlc_exception); cdecl external LibName;
procedure libvlc_media_list_player_next(medialistplayer: libvlc_media_list_player; var Exception: libvlc_exception);
  cdecl external LibName;
function libvlc_media_list_count(medialist: libvlc_media_list; var Exception: libvlc_exception): int64; cdecl external LibName;
function libvlc_media_discoverer_new_from_name(vlc: libvlc_instance; filename: PChar;
  var Exception: libvlc_exception): libvlc_media_discoverer; cdecl external LibName;
function libvlc_media_discoverer_media_list(mediadiscoverer: libvlc_media_discoverer;
  var Exception: libvlc_exception): libvlc_media_list; cdecl external LibName;
procedure libvlc_media_list_add_media(medialist: libvlc_media_list; media: libvlc_media; var Exception: libvlc_exception);
  cdecl external LibName;
procedure libvlc_media_list_lock(medialist: libvlc_media_list); cdecl external LibName;
procedure libvlc_media_list_player_play_item_at_index(medialistplayer: libvlc_media_list_player;
  numeroindex: integer; var Exception: libvlc_exception); cdecl external LibName;
procedure libvlc_media_list_unlock(medialist: libvlc_media_list); cdecl external LibName;
procedure libvlc_media_list_release(medialist: libvlc_media_list); cdecl external LibName;

// Playlist
function libvlc_playlist_add(vlc: libvlc_instance; fileName, Name: PChar; var Exception: libvlc_exception): integer;
  cdecl external LibName;
function libvlc_playlist_add_extended(vlc: libvlc_instance; fileName, Name: PChar; optCount: integer;
  opts: ppchar; var Exception: libvlc_exception): integer; cdecl external LibName;
procedure libvlc_playlist_clear(vlc: libvlc_instance; var Exception: libvlc_exception); cdecl external LibName;
function libvlc_playlist_items_count(vlc: libvlc_instance; var Exception: libvlc_exception): integer; cdecl external LibName;
function libvlc_playlist_isplaying(vlc: libvlc_instance; var Exception: libvlc_exception): longbool; cdecl external LibName;
procedure libvlc_playlist_play(vlc: libvlc_instance; index, optCount: integer; opts: ppchar; var Exception: libvlc_exception);
  cdecl external LibName;
procedure libvlc_playlist_pause(vlc: libvlc_instance; var Exception: libvlc_exception); cdecl external LibName;
procedure libvlc_playlist_stop(vlc: libvlc_instance; var Exception: libvlc_exception); cdecl external LibName;
procedure libvlc_playlist_next(vlc: libvlc_instance; var Exception: libvlc_exception); cdecl external LibName;
procedure libvlc_playlist_prev(vlc: libvlc_instance; var Exception: libvlc_exception); cdecl external LibName;
function libvlc_playlist_get_input(vlc: libvlc_instance; var Exception: libvlc_exception): libvlc_input; cdecl external LibName;
function libvlc_playlist_get_media_player(vlc: libvlc_instance; var Exception: libvlc_exception): libvlc_media_player;
  cdecl external LibName;
//function libvlc_playlist_get_current_index(vlc:libvlc_instance; var exception:libvlc_exception):int64; cdecl external lib;
function libvlc_playlist_get_current_index(vlc: libvlc_instance; var Exception: libvlc_exception): int64; cdecl external LibName;

procedure libvlc_playlist_lock(vlc: libvlc_instance); cdecl external LibName;
procedure libvlc_playlist_unlock(vlc: libvlc_instance); cdecl external LibName;

// Input
procedure libvlc_input_free(input: libvlc_input); cdecl external LibName;
procedure libvlc_toggle_fullscreen(input: libvlc_input; var Exception: libvlc_exception); cdecl external LibName;

// Video
function libvlc_video_get_width(input: libvlc_input; var Exception: libvlc_exception): integer; cdecl external LibName;
function libvlc_video_get_height(input: libvlc_input; var Exception: libvlc_exception): integer; cdecl external LibName;
procedure libvlc_set_fullscreen(mediaplayer: libvlc_media_player; fullscreen: integer; var Exception: libvlc_exception);
  cdecl external LibName;
function libvlc_get_fullscreen(mediaplayer: libvlc_media_player; var Exception: libvlc_exception): integer;
  cdecl external LibName;
procedure libvlc_video_take_snapshot(mediaplayer: libvlc_media_player; filepath: PChar; var Width: integer;
  var Height: integer; var Exception: libvlc_exception); cdecl external LibName;

// Audio
function libvlc_audio_get_mute(vlc: libvlc_instance; var Exception: libvlc_exception): longbool; cdecl external LibName;
procedure libvlc_audio_set_mute(vlc: libvlc_instance; mute: longbool; var Exception: libvlc_exception); cdecl external LibName;
function libvlc_audio_get_volume(vlc: libvlc_instance; var Exception: libvlc_exception): integer; cdecl external LibName;
procedure libvlc_audio_set_volume(vlc: libvlc_instance; volume: integer; var Exception: libvlc_exception);
  cdecl external LibName;

//Other
procedure libvlc_video_set_parent(vlc: libvlc_instance; libvlc_drawable_t: integer; var Exception: libvlc_exception);
  cdecl external LibName;
//function libvlc_video_get_parent(vlc:libvlc_instance; var exception:libvlc_exception):integer; cdecl external lib;


implementation

end.

