Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-1.1
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-1.1
Commits
1f319885
Commit
1f319885
authored
Dec 06, 2005
by
Clément Stenac
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Interaction facility (Refs:#27)
parent
0ec68fc6
Changes
6
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
303 additions
and
103 deletions
+303
-103
include/vlc_interaction.h
include/vlc_interaction.h
+42
-11
include/vlc_interface.h
include/vlc_interface.h
+1
-2
include/vlc_playlist.h
include/vlc_playlist.h
+0
-1
include/vlc_symbols.h
include/vlc_symbols.h
+12
-4
src/input/input.c
src/input/input.c
+3
-1
src/interface/interaction.c
src/interface/interaction.c
+245
-84
No files found.
include/vlc_interaction.h
View file @
1f319885
...
...
@@ -58,10 +58,36 @@ struct interaction_dialog_t
vlc_bool_t
b_have_answer
;
//< Has an answer been given ?
vlc_bool_t
b_reusable
;
//< Do we have to reuse this ?
vlc_bool_t
b_updated
;
//< Update for this one ?
vlc_bool_t
b_finished
;
//< Hidden by interface
void
*
p_private
;
//< Private interface data
};
/**
* Possible interaction types
*/
enum
{
INTERACT_PROGRESS
,
//< Progress bar
INTERACT_WARNING
,
//< Warning message ("codec not supported")
INTERACT_FATAL
,
//< Fatal message ("File not found")
INTERACT_FATAL_LIST
,
//< List of fatal messages ("File not found")
INTERACT_ASK
,
//< Full-featured dialog box (password)
};
/**
* Predefined reusable dialogs
*/
enum
{
DIALOG_NOACCESS
,
DIALOG_NOCODEC
,
DIALOG_NOAUDIO
,
DIALOG_LAST_PREDEFINED
,
};
/**
* This structure contains the active interaction dialogs, and is
* used by teh manager
...
...
@@ -72,25 +98,30 @@ struct interaction_t
int
i_dialogs
;
//< Number of dialogs
interaction_dialog_t
**
pp_dialogs
;
//< Dialogs
};
intf_thread_t
*
p_intf
;
//< Interface to use
int
i_last_id
;
//< Last attributed ID
};
/**
* Possible
interaction type
s
* Possible
action
s
*/
enum
{
INTERACT_PROGRESS
,
//< Progress bar
INTERACT_WARNING
,
//< Warning message ("codec not supported")
INTERACT_FATAL
,
//< Fatal message ("File not found")
INTERACT_ASK
,
//< Full-featured dialog box (password)
INTERACT_NEW
,
INTERACT_UPDATE
,
INTERACT_HIDE
};
/***************************************************************************
* Exported symbols
***************************************************************************/
#define intf_Interact( a,b ) __intf_Interact( VLC_OBJECT(a), b )
VLC_EXPORT
(
int
,
__intf_Interact
,(
vlc_object_t
*
,
interaction_dialog_t
*
)
);
#if 0
VLC_NO_EXPORT_YET( int,__intf_InteractionManage,( playlist_t *) );
#endif
VLC_EXPORT
(
void
,
intf_UserFatal
,(
vlc_object_t
*
,
const
char
*
,
const
char
*
,
...));
#define intf_UserFatal( a,b, c, d, e... ) __intf_UserFatal( a,b,c,d, ## e )
VLC_EXPORT
(
void
,
__intf_UserFatal
,(
vlc_object_t
*
,
int
,
const
char
*
,
const
char
*
,
...)
);
VLC_EXPORT
(
void
,
intf_InteractionManage
,(
playlist_t
*
)
);
VLC_EXPORT
(
void
,
intf_InteractionDestroy
,(
interaction_t
*
)
);
include/vlc_interface.h
View file @
1f319885
...
...
@@ -66,8 +66,7 @@ struct intf_thread_t
intf_dialog_args_t
*
);
/** Interaction stuff */
int
i_last_id
;
int
(
*
pf_interact
)
(
intf_thread_t
*
,
interaction_dialog_t
*
,
vlc_bool_t
);
int
(
*
pf_interact
)
(
intf_thread_t
*
,
interaction_dialog_t
*
,
int
);
/** Video window callbacks */
void
*
(
*
pf_request_window
)
(
intf_thread_t
*
,
vout_thread_t
*
,
...
...
include/vlc_playlist.h
View file @
1f319885
...
...
@@ -216,7 +216,6 @@ struct playlist_t
// The following members are about user interaction
// The playlist manages the user interaction to avoid creating another
// thread
vlc_bool_t
b_manage_interaction
;
interaction_t
*
p_interaction
;
/*@}*/
...
...
include/vlc_symbols.h
View file @
1f319885
...
...
@@ -121,6 +121,7 @@ char* httpd_ClientIP (httpd_client_t *cl, char *psz_ip);
void
httpd_FileDelete
(
httpd_file_t
*
);
module_t
*
__module_Need
(
vlc_object_t
*
,
const
char
*
,
const
char
*
,
vlc_bool_t
);
const
char
*
VLC_Changeset
(
void
);
void
intf_InteractionDestroy
(
interaction_t
*
);
void
LocaleFree
(
const
char
*
);
void
__vlc_object_attach
(
vlc_object_t
*
,
vlc_object_t
*
);
stream_t
*
__stream_UrlNew
(
vlc_object_t
*
p_this
,
const
char
*
psz_url
);
...
...
@@ -296,6 +297,7 @@ subpicture_t * spu_CreateSubpicture (spu_t *);
void
httpd_MsgAdd
(
httpd_message_t
*
,
char
*
psz_name
,
char
*
psz_value
,
...);
int
vout_vaControlDefault
(
vout_thread_t
*
,
int
,
va_list
);
int
playlist_NodeEmpty
(
playlist_t
*
,
playlist_item_t
*
,
vlc_bool_t
);
void
__intf_UserFatal
(
vlc_object_t
*
,
int
,
const
char
*
,
const
char
*
,
...);
spu_t
*
__spu_Create
(
vlc_object_t
*
);
int
playlist_NodeRemoveItem
(
playlist_t
*
,
playlist_item_t
*
,
playlist_item_t
*
);
int
__net_Accept
(
vlc_object_t
*
,
int
*
,
mtime_t
);
...
...
@@ -325,6 +327,7 @@ int playlist_PreparseEnqueue (playlist_t *, input_item_t *);
aout_buffer_t
*
aout_FifoPop
(
aout_instance_t
*
p_aout
,
aout_fifo_t
*
p_fifo
);
int
__vout_InitPicture
(
vlc_object_t
*
p_this
,
picture_t
*
p_pic
,
uint32_t
i_chroma
,
int
i_width
,
int
i_height
,
int
i_aspect
);
int
playlist_LockClear
(
playlist_t
*
);
void
intf_InteractionManage
(
playlist_t
*
);
char
*
mstrtime
(
char
*
psz_buffer
,
mtime_t
date
);
void
aout_FormatPrepare
(
audio_sample_format_t
*
p_format
);
void
spu_DisplaySubpicture
(
spu_t
*
,
subpicture_t
*
);
...
...
@@ -395,7 +398,6 @@ stream_t * __stream_MemoryNew (vlc_object_t *p_obj, uint8_t *p_buffer, int64_t i
void
mwait
(
mtime_t
date
);
void
__config_ResetAll
(
vlc_object_t
*
);
httpd_redirect_t
*
httpd_RedirectNew
(
httpd_host_t
*
,
const
char
*
psz_url_dst
,
const
char
*
psz_url_src
);
void
intf_UserFatal
(
vlc_object_t
*
,
const
char
*
,
const
char
*
,
...);
playlist_item_t
*
playlist_LockItemGetById
(
playlist_t
*
,
int
);
mtime_t
date_Get
(
const
date_t
*
);
int
aout_DecPlay
(
aout_instance_t
*
,
aout_input_t
*
,
aout_buffer_t
*
);
...
...
@@ -854,7 +856,9 @@ struct module_symbols_t
void
(
*
__input_Read_inner
)
(
vlc_object_t
*
,
input_item_t
*
,
vlc_bool_t
);
int
(
*
__net_ConnectUDP_inner
)
(
vlc_object_t
*
p_this
,
const
char
*
psz_host
,
int
i_port
,
int
hlim
);
int
(
*
__intf_Interact_inner
)
(
vlc_object_t
*
,
interaction_dialog_t
*
);
void
(
*
intf_UserFatal_inner
)
(
vlc_object_t
*
,
const
char
*
,
const
char
*
,
...);
void
(
*
intf_InteractionManage_inner
)
(
playlist_t
*
);
void
(
*
intf_InteractionDestroy_inner
)
(
interaction_t
*
);
void
(
*
__intf_UserFatal_inner
)
(
vlc_object_t
*
,
int
,
const
char
*
,
const
char
*
,
...);
};
# if defined (__PLUGIN__)
# define aout_FiltersCreatePipeline (p_symbols)->aout_FiltersCreatePipeline_inner
...
...
@@ -1267,7 +1271,9 @@ struct module_symbols_t
# define __input_Read (p_symbols)->__input_Read_inner
# define __net_ConnectUDP (p_symbols)->__net_ConnectUDP_inner
# define __intf_Interact (p_symbols)->__intf_Interact_inner
# define intf_UserFatal (p_symbols)->intf_UserFatal_inner
# define intf_InteractionManage (p_symbols)->intf_InteractionManage_inner
# define intf_InteractionDestroy (p_symbols)->intf_InteractionDestroy_inner
# define __intf_UserFatal (p_symbols)->__intf_UserFatal_inner
# elif defined (HAVE_DYNAMIC_PLUGINS) && !defined (__BUILTIN__)
/******************************************************************
* STORE_SYMBOLS: store VLC APIs into p_symbols for plugin access.
...
...
@@ -1683,7 +1689,9 @@ struct module_symbols_t
((p_symbols)->__input_Read_inner) = __input_Read; \
((p_symbols)->__net_ConnectUDP_inner) = __net_ConnectUDP; \
((p_symbols)->__intf_Interact_inner) = __intf_Interact; \
((p_symbols)->intf_UserFatal_inner) = intf_UserFatal; \
((p_symbols)->intf_InteractionManage_inner) = intf_InteractionManage; \
((p_symbols)->intf_InteractionDestroy_inner) = intf_InteractionDestroy; \
((p_symbols)->__intf_UserFatal_inner) = __intf_UserFatal; \
(p_symbols)->net_ConvertIPv4_deprecated = NULL; \
# endif
/* __PLUGIN__ */
...
...
src/input/input.c
View file @
1f319885
...
...
@@ -38,6 +38,7 @@
#include "stream_output.h"
#include "vlc_playlist.h"
#include "vlc_interface.h"
#include "vlc_interaction.h"
/*****************************************************************************
* Local prototypes
...
...
@@ -2094,7 +2095,8 @@ static int InputSourceInit( input_thread_t *p_input,
if
(
in
->
p_access
==
NULL
)
{
msg_Err
(
p_input
,
"no suitable access module for `%s'"
,
psz_mrl
);
intf_UserFatal
(
p_input
,
"Unable to open '%s'"
,
psz_mrl
);
intf_UserFatal
(
VLC_OBJECT
(
p_input
),
DIALOG_NOACCESS
,
"Unable to open '%s'"
,
psz_mrl
);
goto
error
;
}
...
...
src/interface/interaction.c
View file @
1f319885
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment