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
ad018626
Commit
ad018626
authored
Sep 20, 2008
by
Pierre d'Herbemont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
macosx: Don't use object_id in controls.
parent
77e71008
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
71 additions
and
67 deletions
+71
-67
modules/gui/macosx/controls.h
modules/gui/macosx/controls.h
+0
-26
modules/gui/macosx/controls.m
modules/gui/macosx/controls.m
+71
-41
No files found.
modules/gui/macosx/controls.h
View file @
ad018626
...
...
@@ -77,8 +77,6 @@
-
(
IBAction
)
forward
:(
id
)
sender
;
-
(
IBAction
)
backward
:(
id
)
sender
;
-
(
id
)
getVoutView
;
-
(
IBAction
)
volumeUp
:(
id
)
sender
;
-
(
IBAction
)
volumeDown
:(
id
)
sender
;
-
(
IBAction
)
mute
:(
id
)
sender
;
...
...
@@ -113,30 +111,6 @@
@end
/*****************************************************************************
* VLCMenuExt interface
*****************************************************************************
* This holds our data for autogenerated menus
*****************************************************************************/
@interface
VLCMenuExt
:
NSObject
{
char
*
psz_name
;
int
i_object_id
;
vlc_value_t
value
;
int
i_type
;
}
-
(
id
)
initWithVar
:
(
const
char
*
)
_psz_name
Object
:
(
int
)
i_id
Value
:
(
vlc_value_t
)
val
ofType
:
(
int
)
_i_type
;
-
(
char
*
)
name
;
-
(
int
)
objectID
;
-
(
vlc_value_t
)
value
;
-
(
int
)
type
;
@end
/*****************************************************************************
* VLCTimeField interface
*****************************************************************************
...
...
modules/gui/macosx/controls.m
View file @
ad018626
...
...
@@ -40,6 +40,31 @@
#include <vlc_osd.h>
#include <vlc_keys.h>
/*****************************************************************************
* VLCAutoGeneratedMenuContent interface
*****************************************************************************
* This holds our data for autogenerated menus
*****************************************************************************/
@interface
VLCAutoGeneratedMenuContent
:
NSObject
{
char
*
psz_name
;
vlc_object_t
*
_vlc_object
;
vlc_value_t
value
;
int
i_type
;
}
-
(
id
)
initWithVariableName
:
(
const
char
*
)
name
ofObject
:
(
vlc_object_t
*
)
object
andValue
:
(
vlc_value_t
)
value
ofType
:
(
int
)
type
;
-
(
const
char
*
)
name
;
-
(
vlc_value_t
)
value
;
-
(
vlc_object_t
*
)
vlcObject
;
-
(
int
)
type
;
@end
#pragma mark -
/*****************************************************************************
* VLCControls implementation
*****************************************************************************/
...
...
@@ -124,7 +149,8 @@
PL_LOCK
;
empty
=
playlist_IsEmpty
(
p_playlist
);
PL_UNLOCK
;
vlc_object_release
(
p_playlist
);
pl_Release
(
p_intf
);
if
(
empty
)
[
o_main
intfOpenFileGeneric
:
(
id
)
sender
];
...
...
@@ -132,29 +158,29 @@
var_SetInteger
(
p_intf
->
p_libvlc
,
"key-action"
,
ACTIONID_PLAY_PAUSE
);
}
/* Small helper method */
/* Small helper method
(Private)
*/
-
(
id
)
getV
outView
-
(
id
)
_v
outView
{
id
o_
window
;
id
o_vout_v
iew
=
nil
;
id
o_embedded_vout_l
ist
=
[[
VLCMain
sharedInstance
]
getEmbeddedList
];
NSEnumerator
*
o_
enumerator
=
[[
NSApp
orderedWindows
]
objectEnumerator
];
while
(
!
o_vout_view
&&
(
o_window
=
[
o_
enumerator
nextObject
]
)
)
id
window
;
id
voutV
iew
=
nil
;
id
embeddedViewL
ist
=
[[
VLCMain
sharedInstance
]
getEmbeddedList
];
NSEnumerator
*
enumerator
=
[[
NSApp
orderedWindows
]
objectEnumerator
];
while
(
!
voutView
&&
(
window
=
[
enumerator
nextObject
]
)
)
{
/* We have an embedded vout */
if
(
[
o_embedded_vout_list
windowContainsEmbedded
:
o_
window
]
)
if
(
[
embeddedViewList
windowContainsEmbedded
:
window
]
)
{
o_vout_view
=
[
o_embedded_vout_list
getViewForWindow
:
o_
window
];
voutView
=
[
embeddedViewList
getViewForWindow
:
window
];
}
/* We have a detached vout */
else
if
(
[[
o_
window
className
]
isEqualToString
:
@"VLCVoutWindow"
]
)
else
if
(
[[
window
className
]
isEqualToString
:
@"VLCVoutWindow"
]
)
{
msg_Dbg
(
VLCIntf
,
"detached vout controls.m call getVoutView"
);
o_vout_view
=
[
o_
window
getVoutView
];
voutView
=
[
window
getVoutView
];
}
}
return
o_vout_view
;
return
[[
voutView
retain
]
autorelease
]
;
}
-
(
IBAction
)
stop
:(
id
)
sender
...
...
@@ -163,7 +189,7 @@
var_SetInteger
(
p_intf
->
p_libvlc
,
"key-action"
,
ACTIONID_STOP
);
/* Close the window directly, because we do know that there
* won't be anymore video. It's currently waiting a bit. */
[[[
self
getV
outView
]
window
]
orderOut
:
self
];
[[[
self
_v
outView
]
window
]
orderOut
:
self
];
}
-
(
IBAction
)
faster
:(
id
)
sender
...
...
@@ -644,18 +670,18 @@
return
;
}
VLC
MenuEx
t
*
o_data
;
VLC
AutoGeneratedMenuConten
t
*
o_data
;
switch
(
i_type
&
VLC_VAR_TYPE
)
{
case
VLC_VAR_VOID
:
o_data
=
[[
VLC
MenuExt
alloc
]
initWithVar
:
psz_variable
Object
:
p_object
->
i_object_id
Value:
val
ofType
:
i_type
];
o_data
=
[[
VLC
AutoGeneratedMenuContent
alloc
]
initWithVariableName
:
psz_variable
ofObject
:
p_object
and
Value:
val
ofType
:
i_type
];
[
o_mi
setRepresentedObject
:
[
NSValue
valueWithPointer
:[
o_data
retain
]]];
break
;
case
VLC_VAR_BOOL
:
o_data
=
[[
VLC
MenuExt
alloc
]
initWithVar
:
psz_variable
Object
:
p_object
->
i_object_id
Value:
val
ofType
:
i_type
];
o_data
=
[[
VLC
AutoGeneratedMenuContent
alloc
]
initWithVariableName
:
psz_variable
ofObject
:
p_object
and
Value:
val
ofType
:
i_type
];
[
o_mi
setRepresentedObject
:
[
NSValue
valueWithPointer
:[
o_data
retain
]]];
if
(
!
(
i_type
&
VLC_VAR_ISCOMMAND
)
)
[
o_mi
setState
:
val
.
b_bool
?
TRUE
:
FALSE
];
...
...
@@ -736,7 +762,7 @@
vlc_value_t
another_val
;
NSMenuItem
*
o_lmi
;
NSString
*
o_title
=
@""
;
VLC
MenuEx
t
*
o_data
;
VLC
AutoGeneratedMenuConten
t
*
o_data
;
switch
(
i_type
&
VLC_VAR_TYPE
)
{
...
...
@@ -748,8 +774,8 @@
text_list
.
p_list
->
p_values
[
i
].
psz_string
:
val_list
.
p_list
->
p_values
[
i
].
psz_string
];
o_lmi
=
[
o_menu
addItemWithTitle
:
o_title
action
:
pf_callback
keyEquivalent
:
@""
];
o_data
=
[[
VLC
MenuExt
alloc
]
initWithVar
:
strdup
(
psz_variable
)
Object
:
p_object
->
i_object_id
Value:
another_val
ofType
:
i_type
];
o_data
=
[[
VLC
AutoGeneratedMenuContent
alloc
]
initWithVariableName
:
strdup
(
psz_variable
)
ofObject
:
p_object
and
Value:
another_val
ofType
:
i_type
];
[
o_lmi
setRepresentedObject
:
[
NSValue
valueWithPointer
:[
o_data
retain
]]];
[
o_lmi
setTarget
:
self
];
...
...
@@ -766,8 +792,8 @@
val_list
.
p_list
->
p_values
[
i
].
i_int
];
o_lmi
=
[[
o_menu
addItemWithTitle
:
o_title
action
:
pf_callback
keyEquivalent
:
@""
]
retain
];
o_data
=
[[
VLC
MenuExt
alloc
]
initWithVar
:
strdup
(
psz_variable
)
Object
:
p_object
->
i_object_id
Value:
val_list
.
p_list
->
p_values
[
i
]
ofType
:
i_type
];
o_data
=
[[
VLC
AutoGeneratedMenuContent
alloc
]
initWithVariableName
:
strdup
(
psz_variable
)
ofObject
:
p_object
and
Value:
val_list
.
p_list
->
p_values
[
i
]
ofType
:
i_type
];
[
o_lmi
setRepresentedObject
:
[
NSValue
valueWithPointer
:[
o_data
retain
]]];
[
o_lmi
setTarget
:
self
];
...
...
@@ -788,26 +814,28 @@
-
(
IBAction
)
toggleVar
:(
id
)
sender
{
NSMenuItem
*
o_mi
=
(
NSMenuItem
*
)
sender
;
VLC
MenuEx
t
*
o_data
=
[[
o_mi
representedObject
]
pointerValue
];
VLC
AutoGeneratedMenuConten
t
*
o_data
=
[[
o_mi
representedObject
]
pointerValue
];
[
NSThread
detachNewThreadSelector
:
@selector
(
toggleVarThread
:)
toTarget:
self
withObject
:
o_data
];
return
;
}
-
(
int
)
toggleVarThread
:
(
id
)
_o_
data
-
(
int
)
toggleVarThread
:
(
id
)
data
{
vlc_object_t
*
p_object
;
NSAutoreleasePool
*
o_pool
=
[[
NSAutoreleasePool
alloc
]
init
];
VLCMenuExt
*
o_data
=
(
VLCMenuExt
*
)
_o_data
;
assert
([
data
isKindOfClass
:[
VLCAutoGeneratedMenuContent
class
]]);
VLCAutoGeneratedMenuContent
*
menuContent
=
(
VLCAutoGeneratedMenuContent
*
)
data
;
vlc_thread_set_priority
(
VLCIntf
,
VLC_THREAD_PRIORITY_LOW
);
p_object
=
(
vlc_object_t
*
)
vlc_object_get
(
VLCIntf
->
p_libvlc
,
[
o_data
objectID
]
)
;
p_object
=
[
menuContent
vlcObject
]
;
if
(
p_object
!=
NULL
)
{
var_Set
(
p_object
,
strdup
([
o_data
name
]),
[
o_data
value
]
);
var_Set
(
p_object
,
[
menuContent
name
],
[
menuContent
value
]
);
vlc_object_release
(
p_object
);
[
o_pool
release
];
return
true
;
...
...
@@ -1041,24 +1069,24 @@
@end
/*****************************************************************************
* VLC
MenuEx
t implementation
* VLC
AutoGeneratedMenuConten
t implementation
*****************************************************************************
* Object connected to a playlistitem which remembers the data belonging to
* the variable of the autogenerated menu
*****************************************************************************/
@implementation
VLC
MenuEx
t
@implementation
VLC
AutoGeneratedMenuConten
t
-
(
id
)
initWithVar
:
(
const
char
*
)
_psz_name
Object
:
(
int
)
i_id
Value
:
(
vlc_value_t
)
val
ofType
:
(
int
)
_i_
type
-
(
id
)
initWithVariableName
:(
const
char
*
)
name
ofObject
:(
vlc_object_t
*
)
object
andValue
:(
vlc_value_t
)
val
ofType
:(
int
)
type
{
self
=
[
super
init
];
if
(
self
!=
nil
)
{
psz_name
=
strdup
(
_psz_
name
);
i_object_id
=
i_id
;
psz_name
=
strdup
(
name
);
_vlc_object
=
vlc_object_yield
(
object
)
;
value
=
val
;
i_type
=
_i_
type
;
i_type
=
type
;
}
return
(
self
);
...
...
@@ -1066,25 +1094,27 @@
-
(
void
)
dealloc
{
vlc_object_release
(
_vlc_object
);
free
(
psz_name
);
[
super
dealloc
];
}
-
(
char
*
)
name
-
(
c
onst
c
har
*
)
name
{
return
psz_name
;
}
-
(
int
)
objectID
-
(
vlc_value_t
)
value
{
return
i_object_id
;
return
value
;
}
-
(
vlc_
value_t
)
value
-
(
vlc_
object_t
*
)
vlcObject
{
return
v
alue
;
return
v
lc_object_yield
(
_vlc_object
)
;
}
-
(
int
)
type
{
return
i_type
;
...
...
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