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
23ba8c3e
Commit
23ba8c3e
authored
Jan 13, 2003
by
Olivier Teulière
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* MacOSX interface: fixed a stupid bug
* Win32 interface: completed support for channel selection
parent
4e82695c
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
108 additions
and
98 deletions
+108
-98
modules/gui/macosx/intf.m
modules/gui/macosx/intf.m
+2
-2
modules/gui/win32/mainframe.dfm
modules/gui/win32/mainframe.dfm
+3
-0
modules/gui/win32/menu.cpp
modules/gui/win32/menu.cpp
+25
-10
modules/gui/win32/win32.cpp
modules/gui/win32/win32.cpp
+78
-86
No files found.
modules/gui/macosx/intf.m
View file @
23ba8c3e
...
...
@@ -2,7 +2,7 @@
* intf.m: MacOS X interface plugin
*****************************************************************************
* Copyright (C) 2002-2003 VideoLAN
* $Id: intf.m,v 1.2
2 2003/01/12 18:25:05 jlj
Exp $
* $Id: intf.m,v 1.2
3 2003/01/13 17:11:14 ipkiss
Exp $
*
* Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
* Christophe Massiot <massiot@via.ecp.fr>
...
...
@@ -782,7 +782,7 @@ static void Run( intf_thread_t *p_intf )
for
(
i
=
0
;
i
<
p_input
->
stream
.
i_selected_es_number
;
i
++
)
{
if
(
p_input
->
stream
.
pp_selected_es
[
i
]
->
i_cat
==
SPU
_ES
)
if
(
p_input
->
stream
.
pp_selected_es
[
i
]
->
i_cat
==
AUDIO
_ES
)
{
p_audio_es
=
p_input
->
stream
.
pp_selected_es
[
i
];
}
...
...
modules/gui/win32/mainframe.dfm
View file @
23ba8c3e
...
...
@@ -2391,6 +2391,7 @@ object MainFrameDlg: TMainFrameDlg
object PopupADevice: TMenuItem
Tag = 3
Caption = 'Device'
Enabled = False
end
object VolumeUp1: TMenuItem
Tag = 3
...
...
@@ -2407,10 +2408,12 @@ object MainFrameDlg: TMainFrameDlg
object PopupChannel: TMenuItem
Tag = 3
Caption = 'Channels'
Enabled = False
end
end
object PopupVDevice: TMenuItem
Caption = 'Screen'
Enabled = False
end
object N1: TMenuItem
Caption = '-'
...
...
modules/gui/win32/menu.cpp
View file @
23ba8c3e
/*****************************************************************************
* menu.cpp: functions to handle menu items
*****************************************************************************
* Copyright (C) 2002 VideoLAN
* $Id: menu.cpp,v 1.
3 2003/01/08 02:16:09
ipkiss Exp $
* Copyright (C) 2002
-2003
VideoLAN
* $Id: menu.cpp,v 1.
4 2003/01/13 17:11:14
ipkiss Exp $
*
* Authors: Olivier Teuliere <ipkiss@via.ecp.fr>
*
...
...
@@ -239,6 +239,11 @@ __fastcall TMenusGen::TMenusGen( intf_thread_t *_p_intf ) : TObject()
}
/*****************************************************************************
* SetupMenus: This function dynamically generates some menus
*****************************************************************************
* The lock on p_input->stream must be taken before you call this function
*****************************************************************************/
void
__fastcall
TMenusGen
::
SetupMenus
()
{
TMainFrameDlg
*
p_window
=
p_intf
->
p_sys
->
p_window
;
...
...
@@ -349,7 +354,7 @@ void __fastcall TMenusGen::SetupMenus()
p_aout
=
(
aout_instance_t
*
)
vlc_object_find
(
p_intf
,
VLC_OBJECT_AOUT
,
FIND_ANYWHERE
);
if
(
p_aout
!=
NULL
)
if
(
p_aout
!=
NULL
)
{
vlc_value_t
val
;
val
.
b_bool
=
0
;
...
...
@@ -378,7 +383,7 @@ void __fastcall TMenusGen::SetupMenus()
p_vout
=
(
vout_thread_t
*
)
vlc_object_find
(
p_intf
,
VLC_OBJECT_VOUT
,
FIND_ANYWHERE
);
if
(
p_vout
!=
NULL
)
if
(
p_vout
!=
NULL
)
{
vlc_value_t
val
;
val
.
b_bool
=
0
;
...
...
@@ -447,8 +452,17 @@ void __fastcall TMenusGen::VarChange( vlc_object_t *p_object,
vlc_value_t
val
;
int
i_index
;
/* We must delete all the '&' characters in the caption string, because
* Borland automatically adds one when (and only when!) you click on
* the menuitem. Grrrrr... */
AnsiString
Caption
=
Item
->
Caption
;
while
(
Caption
.
LastDelimiter
(
"&"
)
!=
0
)
{
Caption
.
Delete
(
Caption
.
LastDelimiter
(
"&"
),
1
);
}
val
.
psz_string
=
Caption
.
c_str
();
/* set the new value */
val
.
psz_string
=
Item
->
Name
.
c_str
();
if
(
var_Set
(
p_object
,
psz_variable
,
val
)
<
0
)
{
msg_Warn
(
p_object
,
"cannot set variable (%s)"
,
val
.
psz_string
);
...
...
@@ -546,27 +560,27 @@ void __fastcall TMenusGen::SetupVarMenu( vlc_object_t *p_object,
{
TMenuItem
*
Item
;
vlc_value_t
val
;
char
*
psz_value
;
char
*
psz_value
=
NULL
;
int
i
;
/* remove previous menu */
Root
->
Clear
();
/* get the current value */
if
(
var_Get
(
p_object
,
psz_variable
,
&
val
)
<
0
)
if
(
var_Get
(
p_object
,
psz_variable
,
&
val
)
<
0
)
{
return
;
}
psz_value
=
val
.
psz_string
;
if
(
var_Change
(
p_object
,
psz_variable
,
VLC_VAR_GETLIST
,
&
val
)
<
0
)
if
(
var_Change
(
p_object
,
psz_variable
,
VLC_VAR_GETLIST
,
&
val
)
<
0
)
{
free
(
psz_value
);
return
;
}
/* append a menuitem for each option */
for
(
i
=
0
;
i
<
val
.
p_list
->
i_count
;
i
++
)
for
(
i
=
0
;
i
<
val
.
p_list
->
i_count
;
i
++
)
{
Item
=
new
TMenuItem
(
Root
);
Item
->
Caption
=
val
.
p_list
->
p_values
[
i
].
psz_string
;
...
...
@@ -585,7 +599,7 @@ void __fastcall TMenusGen::SetupVarMenu( vlc_object_t *p_object,
/* clean up everything */
var_Change
(
p_object
,
psz_variable
,
VLC_VAR_FREELIST
,
&
val
);
free
(
psz_value
);
//
free( psz_value );
}
/*****************************************************************************
...
...
@@ -929,3 +943,4 @@ void __fastcall TMenusGen::NavigationMenu( TMenuItem *Root,
Root
->
Enabled
=
true
;
}
modules/gui/win32/win32.cpp
View file @
23ba8c3e
/*****************************************************************************
* win32.cpp : Win32 interface plugin for vlc
*****************************************************************************
* Copyright (C) 2002 VideoLAN
* $Id: win32.cpp,v 1.
7 2003/01/08 02:16:09
ipkiss Exp $
* Copyright (C) 2002
-2003
VideoLAN
* $Id: win32.cpp,v 1.
8 2003/01/13 17:11:14
ipkiss Exp $
*
* Authors: Olivier Teulire <ipkiss@via.ecp.fr>
*
...
...
@@ -129,9 +129,6 @@ static void Run( intf_thread_t *p_intf )
*****************************************************************************/
int
Win32Manage
(
intf_thread_t
*
p_intf
)
{
aout_instance_t
*
p_aout
;
vout_thread_t
*
p_vout
;
vlc_mutex_lock
(
&
p_intf
->
change_lock
);
/* If the "display popup" flag has changed */
...
...
@@ -163,68 +160,99 @@ int Win32Manage( intf_thread_t *p_intf )
p_intf
->
p_sys
->
p_input
=
NULL
;
}
if
(
p_intf
->
p_sys
->
p_input
)
if
(
p_intf
->
p_sys
->
p_input
!=
NULL
&&
!
p_intf
->
p_sys
->
p_input
->
b_die
)
{
input_thread_t
*
p_input
=
p_intf
->
p_sys
->
p_input
;
vlc_bool_t
b_need_menus
=
0
;
input_thread_t
*
p_input
=
p_intf
->
p_sys
->
p_input
;
aout_instance_t
*
p_aout
=
NULL
;
vout_thread_t
*
p_vout
=
NULL
;
vlc_mutex_lock
(
&
p_input
->
stream
.
stream_lock
);
if
(
!
p_input
->
b_die
)
/* New input or stream map change */
if
(
p_input
->
stream
.
b_changed
)
{
p_intf
->
p_sys
->
p_window
->
ModeManage
();
b_need_menus
=
1
;
p_intf
->
p_sys
->
b_playing
=
1
;
}
/* Manage the slider */
if
(
p_input
->
stream
.
b_seekable
&&
p_intf
->
p_sys
->
b_playing
)
{
/* New input or stream map change */
if
(
p_input
->
stream
.
b_changed
)
TTrackBar
*
TrackBar
=
p_intf
->
p_sys
->
p_window
->
TrackBar
;
off_t
NewValue
=
TrackBar
->
Position
;
#define p_area p_input->stream.p_selected_area
/* If the user hasn't touched the slider since the last time,
* then the input can safely change it */
if
(
NewValue
==
p_intf
->
p_sys
->
OldValue
)
{
p_intf
->
p_sys
->
p_window
->
ModeManage
();
p_intf
->
p_sys
->
p_menus
->
SetupMenus
();
p_intf
->
p_sys
->
b_playing
=
1
;
/* Update the value */
TrackBar
->
Position
=
p_intf
->
p_sys
->
OldValue
=
(
(
off_t
)
SLIDER_MAX_VALUE
*
p_area
->
i_tell
)
/
p_area
->
i_size
;
}
/* Manage
the slider */
if
(
p_input
->
stream
.
b_seekable
&&
p_intf
->
p_sys
->
b_playing
)
/* Otherwise, send message to the input if the user has
* finished dragging
the slider */
else
if
(
p_intf
->
p_sys
->
b_slider_free
)
{
TTrackBar
*
TrackBar
=
p_intf
->
p_sys
->
p_window
->
TrackBar
;
off_t
NewValue
=
TrackBar
->
Position
;
off_t
i_seek
=
(
NewValue
*
p_area
->
i_size
)
/
(
off_t
)
SLIDER_MAX_VALUE
;
#define p_area p_input->stream.p_selected_area
/* If the user hasn't touched the slider since the last time,
* then the input can safely change it */
if
(
NewValue
==
p_intf
->
p_sys
->
OldValue
)
{
/* Update the value */
TrackBar
->
Position
=
p_intf
->
p_sys
->
OldValue
=
(
(
off_t
)
SLIDER_MAX_VALUE
*
p_area
->
i_tell
)
/
p_area
->
i_size
;
}
/* Otherwise, send message to the input if the user has
* finished dragging the slider */
else
if
(
p_intf
->
p_sys
->
b_slider_free
)
{
off_t
i_seek
=
(
NewValue
*
p_area
->
i_size
)
/
(
off_t
)
SLIDER_MAX_VALUE
;
/* release the lock to be able to seek */
vlc_mutex_unlock
(
&
p_input
->
stream
.
stream_lock
);
input_Seek
(
p_input
,
i_seek
,
INPUT_SEEK_SET
);
vlc_mutex_lock
(
&
p_input
->
stream
.
stream_lock
);
/* Update the old value */
p_intf
->
p_sys
->
OldValue
=
NewValue
;
}
/* Update the display */
// TrackBar->Invalidate();
/* release the lock to be able to seek */
vlc_mutex_unlock
(
&
p_input
->
stream
.
stream_lock
);
input_Seek
(
p_input
,
i_seek
,
INPUT_SEEK_SET
);
vlc_mutex_lock
(
&
p_input
->
stream
.
stream_lock
);
/* Update the old value */
p_intf
->
p_sys
->
OldValue
=
NewValue
;
}
# undef p_area
}
if
(
p_intf
->
p_sys
->
i_part
!=
p_input
->
stream
.
p_selected_area
->
i_part
)
{
p_intf
->
p_sys
->
b_chapter_update
=
1
;
b_need_menus
=
1
;
}
/* Does the audio output require to update the menus ? */
p_aout
=
(
aout_instance_t
*
)
vlc_object_find
(
p_intf
,
VLC_OBJECT_AOUT
,
FIND_ANYWHERE
);
if
(
p_aout
!=
NULL
)
{
vlc_value_t
val
;
if
(
var_Get
(
(
vlc_object_t
*
)
p_aout
,
"intf-change"
,
&
val
)
>=
0
&&
val
.
b_bool
)
{
p_intf
->
p_sys
->
b_aout_update
=
1
;
b_need_menus
=
1
;
}
if
(
p_intf
->
p_sys
->
i_part
!=
p_input
->
stream
.
p_selected_area
->
i_part
)
vlc_object_release
(
(
vlc_object_t
*
)
p_aout
);
}
/* Does the video output require to update the menus ? */
p_vout
=
(
vout_thread_t
*
)
vlc_object_find
(
p_intf
,
VLC_OBJECT_VOUT
,
FIND_ANYWHERE
);
if
(
p_vout
!=
NULL
)
{
vlc_value_t
val
;
if
(
var_Get
(
(
vlc_object_t
*
)
p_vout
,
"intf-change"
,
&
val
)
>=
0
&&
val
.
b_bool
)
{
// p_intf->p_sys->b_chapter
_update = 1;
p_intf
->
p_sys
->
p_menus
->
SetupMenus
()
;
p_intf
->
p_sys
->
b_vout
_update
=
1
;
b_need_menus
=
1
;
}
vlc_object_release
(
(
vlc_object_t
*
)
p_vout
);
}
if
(
b_need_menus
)
p_intf
->
p_sys
->
p_menus
->
SetupMenus
();
vlc_mutex_unlock
(
&
p_input
->
stream
.
stream_lock
);
}
else
if
(
p_intf
->
p_sys
->
b_playing
&&
!
p_intf
->
b_die
)
...
...
@@ -233,42 +261,6 @@ int Win32Manage( intf_thread_t *p_intf )
p_intf
->
p_sys
->
b_playing
=
0
;
}
/* Does the audio output require to update the menus ? */
p_aout
=
(
aout_instance_t
*
)
vlc_object_find
(
p_intf
,
VLC_OBJECT_AOUT
,
FIND_ANYWHERE
);
if
(
p_aout
!=
NULL
)
{
vlc_value_t
val
;
if
(
var_Get
(
(
vlc_object_t
*
)
p_aout
,
"intf-change"
,
&
val
)
>=
0
&&
val
.
b_bool
)
{
#if 0
p_intf->p_sys->b_aout_update = 1;
p_intf->p_sys->p_menus->SetupMenus();
#endif
}
vlc_object_release
(
(
vlc_object_t
*
)
p_aout
);
}
/* Does the video output require to update the menus ? */
p_vout
=
(
vout_thread_t
*
)
vlc_object_find
(
p_intf
,
VLC_OBJECT_VOUT
,
FIND_ANYWHERE
);
if
(
p_vout
!=
NULL
)
{
vlc_value_t
val
;
if
(
var_Get
(
(
vlc_object_t
*
)
p_vout
,
"intf-change"
,
&
val
)
>=
0
&&
val
.
b_bool
)
{
#if 0
p_intf->p_sys->b_vout_update = 1;
p_intf->p_sys->p_menus->SetupMenus();
#endif
}
vlc_object_release
(
(
vlc_object_t
*
)
p_vout
);
}
if
(
p_intf
->
b_die
)
{
vlc_mutex_unlock
(
&
p_intf
->
change_lock
);
...
...
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