Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
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
Commits
86f2f732
Commit
86f2f732
authored
Sep 23, 2007
by
Rémi Denis-Courmont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Pass --playlist-enqueue from started instance to running instance: fixes #869
parent
d1167c21
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
28 additions
and
28 deletions
+28
-28
src/misc/win32_specific.c
src/misc/win32_specific.c
+28
-28
No files found.
src/misc/win32_specific.c
View file @
86f2f732
...
@@ -128,6 +128,12 @@ void system_Init( libvlc_int_t *p_this, int *pi_argc, char *ppsz_argv[] )
...
@@ -128,6 +128,12 @@ void system_Init( libvlc_int_t *p_this, int *pi_argc, char *ppsz_argv[] )
*****************************************************************************/
*****************************************************************************/
static
void
IPCHelperThread
(
vlc_object_t
*
);
static
void
IPCHelperThread
(
vlc_object_t
*
);
LRESULT
CALLBACK
WMCOPYWNDPROC
(
HWND
,
UINT
,
WPARAM
,
LPARAM
);
LRESULT
CALLBACK
WMCOPYWNDPROC
(
HWND
,
UINT
,
WPARAM
,
LPARAM
);
typedef
struct
{
int
argc
;
int
enqueue
;
char
data
[
0
];
}
vlc_ipc_data_t
;
void
system_Configure
(
libvlc_int_t
*
p_this
,
int
*
pi_argc
,
char
*
ppsz_argv
[]
)
void
system_Configure
(
libvlc_int_t
*
p_this
,
int
*
pi_argc
,
char
*
ppsz_argv
[]
)
{
{
...
@@ -210,24 +216,27 @@ void system_Configure( libvlc_int_t *p_this, int *pi_argc, char *ppsz_argv[] )
...
@@ -210,24 +216,27 @@ void system_Configure( libvlc_int_t *p_this, int *pi_argc, char *ppsz_argv[] )
if
(
*
pi_argc
-
1
>=
optind
)
if
(
*
pi_argc
-
1
>=
optind
)
{
{
COPYDATASTRUCT
wm_data
;
COPYDATASTRUCT
wm_data
;
int
i_opt
,
i_data
;
int
i_opt
;
char
*
p_data
;
vlc_ipc_data_t
*
p_data
;
size_t
i_data
=
sizeof
(
p_data
);
i_data
=
sizeof
(
int
);
for
(
i_opt
=
optind
;
i_opt
<
*
pi_argc
;
i_opt
++
)
for
(
i_opt
=
optind
;
i_opt
<
*
pi_argc
;
i_opt
++
)
{
{
i_data
+=
sizeof
(
in
t
);
i_data
+=
sizeof
(
size_
t
);
i_data
+=
strlen
(
ppsz_argv
[
i_opt
]
)
+
1
;
i_data
+=
strlen
(
ppsz_argv
[
i_opt
]
)
+
1
;
}
}
p_data
=
(
char
*
)
malloc
(
i_data
);
p_data
=
malloc
(
i_data
);
*
((
int
*
)
&
p_data
[
0
])
=
*
pi_argc
-
optind
;
p_data
->
argc
=
*
pi_argc
-
optind
;
i_data
=
sizeof
(
int
);
p_data
->
enqueue
=
config_GetInt
(
p_this
,
"playlist-enqueue"
);
i_data
=
0
;
for
(
i_opt
=
optind
;
i_opt
<
*
pi_argc
;
i_opt
++
)
for
(
i_opt
=
optind
;
i_opt
<
*
pi_argc
;
i_opt
++
)
{
{
int
i_len
=
strlen
(
ppsz_argv
[
i_opt
]
)
+
1
;
size_t
i_len
=
strlen
(
ppsz_argv
[
i_opt
]
)
+
1
;
*
((
int
*
)
&
p_data
[
i_data
])
=
i_len
;
/* Windows will never switch to an architecture
i_data
+=
sizeof
(
int
);
* with stronger alignment requirements, right. */
*
((
size_t
*
)(
p_data
->
data
+
i_data
))
=
i_len
;
i_data
+=
sizeof
(
size_t
);
memcpy
(
&
p_data
[
i_data
],
ppsz_argv
[
i_opt
],
i_len
);
memcpy
(
&
p_data
[
i_data
],
ppsz_argv
[
i_opt
],
i_len
);
i_data
+=
i_len
;
i_data
+=
i_len
;
}
}
...
@@ -304,13 +313,12 @@ LRESULT CALLBACK WMCOPYWNDPROC( HWND hwnd, UINT uMsg, WPARAM wParam,
...
@@ -304,13 +313,12 @@ LRESULT CALLBACK WMCOPYWNDPROC( HWND hwnd, UINT uMsg, WPARAM wParam,
if
(
pwm_data
->
lpData
)
if
(
pwm_data
->
lpData
)
{
{
int
i_argc
,
i_data
,
i_opt
,
i_options
;
char
**
ppsz_argv
;
char
**
ppsz_argv
;
char
*
p_data
=
(
char
*
)
pwm_data
->
lpData
;
vlc_ipc_data_t
*
p_data
=
(
vlc_ipc_data_t
*
)
pwm_data
->
lpData
;
size_t
i_data
=
0
;
int
i_argc
=
p_data
->
argc
,
i_opt
,
i_options
;
i_argc
=
*
((
int
*
)
&
p_data
[
0
]);
ppsz_argv
=
(
char
**
)
malloc
(
i_argc
*
sizeof
(
char
*
)
);
ppsz_argv
=
(
char
**
)
malloc
(
i_argc
*
sizeof
(
char
*
)
);
i_data
=
sizeof
(
int
);
for
(
i_opt
=
0
;
i_opt
<
i_argc
;
i_opt
++
)
for
(
i_opt
=
0
;
i_opt
<
i_argc
;
i_opt
++
)
{
{
ppsz_argv
[
i_opt
]
=
&
p_data
[
i_data
+
sizeof
(
int
)];
ppsz_argv
[
i_opt
]
=
&
p_data
[
i_data
+
sizeof
(
int
)];
...
@@ -328,20 +336,12 @@ LRESULT CALLBACK WMCOPYWNDPROC( HWND hwnd, UINT uMsg, WPARAM wParam,
...
@@ -328,20 +336,12 @@ LRESULT CALLBACK WMCOPYWNDPROC( HWND hwnd, UINT uMsg, WPARAM wParam,
{
{
i_options
++
;
i_options
++
;
}
}
if
(
i_opt
||
config_GetInt
(
p_this
,
"playlist-enqueue"
)
)
{
playlist_AddExt
(
p_playlist
,
ppsz_argv
[
i_opt
],
playlist_AddExt
(
p_playlist
,
ppsz_argv
[
i_opt
],
NULL
,
PLAYLIST_APPEND
,
NULL
,
PLAYLIST_APPEND
|
(
(
i_opt
||
p_data
->
enqueue
)
?
0
:
PLAYLIST_GO
),
PLAYLIST_END
,
-
1
,
PLAYLIST_END
,
-
1
,
(
char
const
**
)(
i_options
?
&
ppsz_argv
[
i_opt
+
1
]
:
NULL
),
(
char
const
**
)(
i_options
?
&
ppsz_argv
[
i_opt
+
1
]
:
NULL
),
i_options
,
VLC_TRUE
,
VLC_FALSE
);
i_options
,
VLC_TRUE
,
VLC_FALSE
);
}
else
{
playlist_AddExt
(
p_playlist
,
ppsz_argv
[
i_opt
],
NULL
,
PLAYLIST_APPEND
|
PLAYLIST_GO
,
PLAYLIST_END
,
-
1
,
(
char
const
**
)(
i_options
?
&
ppsz_argv
[
i_opt
+
1
]
:
NULL
),
i_options
,
VLC_TRUE
,
VLC_FALSE
);
}
i_opt
+=
i_options
;
i_opt
+=
i_options
;
}
}
...
...
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