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
c2c76c6c
Commit
c2c76c6c
authored
Feb 16, 2009
by
Felix Paul Kühne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
macosx: fixed the messages panel by updating the code to the current API
parent
0f7aa11e
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
91 additions
and
72 deletions
+91
-72
extras/package/macosx/Resources/English.lproj/MainMenu.nib/info.nib
...kage/macosx/Resources/English.lproj/MainMenu.nib/info.nib
+6
-5
extras/package/macosx/Resources/English.lproj/MainMenu.nib/keyedobjects.nib
...osx/Resources/English.lproj/MainMenu.nib/keyedobjects.nib
+0
-0
modules/gui/macosx/intf.h
modules/gui/macosx/intf.h
+8
-5
modules/gui/macosx/intf.m
modules/gui/macosx/intf.m
+77
-62
No files found.
extras/package/macosx/Resources/English.lproj/MainMenu.nib/info.nib
View file @
c2c76c6c
...
...
@@ -3,15 +3,15 @@
<plist
version=
"1.0"
>
<dict>
<key>
IBDocumentLocation
</key>
<string>
69 71
356 240 0 0 1280 778
</string>
<string>
402 63
356 240 0 0 1280 778
</string>
<key>
IBEditorPositions
</key>
<dict>
<key>
29
</key>
<string>
6
8 316
438 44 0 0 1280 778
</string>
<string>
6
9 318
438 44 0 0 1280 778
</string>
<key>
3568
</key>
<string>
476 535 328 85 0 0 1280 778
</string>
<key>
915
</key>
<string>
69 31
6
187 331 0 0 1280 778
</string>
<string>
69 31
8
187 331 0 0 1280 778
</string>
</dict>
<key>
IBFramework Version
</key>
<string>
489.0
</string>
...
...
@@ -22,10 +22,11 @@
<key>
IBOpenObjects
</key>
<array>
<integer>
3706
</integer>
<integer>
2
1
</integer>
<integer>
2
9
</integer>
<integer>
915
</integer>
<integer>
3568
</integer>
<integer>
29
</integer>
<integer>
21
</integer>
<integer>
282
</integer>
</array>
<key>
IBSystem Version
</key>
<string>
9G55
</string>
...
...
extras/package/macosx/Resources/English.lproj/MainMenu.nib/keyedobjects.nib
View file @
c2c76c6c
No preview for this file type
modules/gui/macosx/intf.h
View file @
c2c76c6c
...
...
@@ -83,6 +83,8 @@ struct intf_sys_t
msg_subscription_t
*
p_sub
;
};
static
void
MsgCallback
(
msg_cb_data_t
*
,
msg_item_t
*
,
unsigned
);
/*****************************************************************************
* VLCMain interface
*****************************************************************************/
...
...
@@ -152,10 +154,11 @@ struct intf_sys_t
IBOutlet
VLCControls
*
o_controls
;
/* VLCControls */
IBOutlet
VLCPlaylist
*
o_playlist
;
/* VLCPlaylist */
IBOutlet
id
o_messages
;
/* messages tv */
IBOutlet
id
o_msgs_panel
;
/* messages panel */
NSMutableArray
*
o_msg_arr
;
/* messages array */
NSLock
*
o_msg_lock
;
/* messages lock */
IBOutlet
NSTextView
*
o_messages
;
/* messages tv */
IBOutlet
NSWindow
*
o_msgs_panel
;
/* messages panel */
NSMutableArray
*
o_msg_arr
;
/* messages array */
NSLock
*
o_msg_lock
;
/* messages lock */
BOOL
b_msg_arr_changed
;
/* did the array change? */
IBOutlet
NSButton
*
o_msgs_btn_crashlog
;
/* messages open crashlog */
/* CrashReporter panel */
...
...
@@ -368,7 +371,7 @@ struct intf_sys_t
-
(
void
)
setScrollField
:(
NSString
*
)
o_string
stopAfter
:(
int
)
timeout
;
-
(
void
)
resetScrollField
;
-
(
void
)
updateMessage
Arr
ay
;
-
(
void
)
updateMessage
Displ
ay
;
-
(
void
)
playStatusUpdated
:(
int
)
i_status
;
-
(
void
)
setSubmenusEnabled
:(
BOOL
)
b_enabled
;
-
(
void
)
manageVolumeSlider
;
...
...
modules/gui/macosx/intf.m
View file @
c2c76c6c
/*****************************************************************************
* intf.m: MacOS X interface module
*****************************************************************************
* Copyright (C) 2002-200
8
the VideoLAN team
* Copyright (C) 2002-200
9
the VideoLAN team
* $Id$
*
* Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
...
...
@@ -91,7 +91,8 @@ int OpenIntf ( vlc_object_t *p_this )
p_intf
->
p_sys
->
o_pool
=
[[
NSAutoreleasePool
alloc
]
init
];
// p_intf->p_sys->p_sub = msg_Subscribe( p_intf );
/* subscribe to LibVLCCore's messages */
p_intf
->
p_sys
->
p_sub
=
msg_Subscribe
(
p_intf
->
p_libvlc
,
MsgCallback
,
NULL
);
p_intf
->
pf_run
=
Run
;
p_intf
->
b_should_run_on_first_thread
=
true
;
...
...
@@ -105,13 +106,32 @@ void CloseIntf ( vlc_object_t *p_this )
{
intf_thread_t
*
p_intf
=
(
intf_thread_t
*
)
p_this
;
// msg_Unsubscribe( p_intf, p_intf->p_sys->p_sub );
[
p_intf
->
p_sys
->
o_pool
release
];
free
(
p_intf
->
p_sys
);
}
static
void
MsgCallback
(
msg_cb_data_t
*
data
,
msg_item_t
*
item
,
unsigned
int
i
)
{
int
canc
=
vlc_savecancel
();
NSAutoreleasePool
*
o_pool
=
[[
NSAutoreleasePool
alloc
]
init
];
NSDictionary
*
o_dict
=
[
NSDictionary
dictionaryWithObjects
:
[
NSArray
arrayWithObjects
:
[
NSString
stringWithUTF8String
:
item
->
psz_module
],
[
NSString
stringWithUTF8String
:
item
->
psz_msg
],
[
NSNumber
numberWithInt
:
item
->
i_type
],
nil
]
forKeys:
[
NSArray
arrayWithObjects
:
@"Module"
,
@"Message"
,
@"Type"
,
nil
]];
[[
NSNotificationCenter
defaultCenter
]
postNotificationName
:
@"VLCCoreMessageReceived"
object:
nil
userInfo:
o_dict
];
[
o_pool
release
];
vlc_restorecancel
(
canc
);
}
/*****************************************************************************
* Run: main loop
*****************************************************************************/
...
...
@@ -147,7 +167,7 @@ static void Run( intf_thread_t *p_intf )
* see applicationWillTerminate: */
if
(
setjmp
(
jmpbuffer
)
==
0
)
[
NSApp
run
];
[
o_pool
release
];
}
...
...
@@ -245,6 +265,11 @@ static VLCMain *_o_sharedMainInstance = nil;
else
_o_sharedMainInstance
=
[
super
init
];
o_msg_lock
=
[[
NSLock
alloc
]
init
];
o_msg_arr
=
[[
NSMutableArray
arrayWithCapacity
:
200
]
retain
];
/* subscribe to LibVLC's debug messages as early as possible (for us) */
[[
NSNotificationCenter
defaultCenter
]
addObserver
:
self
selector
:
@selector
(
libvlcMessageReceived
:
)
name
:
@"VLCCoreMessageReceived"
object
:
nil
];
o_about
=
[[
VLAboutBox
alloc
]
init
];
o_prefs
=
nil
;
o_open
=
[[
VLCOpen
alloc
]
init
];
...
...
@@ -434,9 +459,6 @@ static VLCMain *_o_sharedMainInstance = nil;
-
(
void
)
applicationWillFinishLaunching
:(
NSNotification
*
)
o_notification
{
o_msg_lock
=
[[
NSLock
alloc
]
init
];
o_msg_arr
=
[[
NSMutableArray
arrayWithCapacity
:
200
]
retain
];
/* FIXME: don't poll */
interfaceTimer
=
[[
NSTimer
scheduledTimerWithTimeInterval
:
0
.
5
target:
self
selector
:
@selector
(
manageIntf
:)
...
...
@@ -737,6 +759,9 @@ static VLCMain *_o_sharedMainInstance = nil;
[
o_img_pause
release
];
[
o_img_play
release
];
/* unsubscribe from libvlc's debug messages */
msg_Unsubscribe
(
p_intf
->
p_sys
->
p_sub
);
[
o_msg_arr
removeAllObjects
];
[
o_msg_arr
release
];
...
...
@@ -1674,7 +1699,7 @@ static void * manage_cleanup( void * args )
}
end:
[
self
updateMessage
Arr
ay
];
[
self
updateMessage
Displ
ay
];
if
(
((
i_end_scroll
!=
-
1
)
&&
(
mdate
()
>
i_end_scroll
))
||
!
p_input
)
[
self
resetScrollField
];
...
...
@@ -2347,6 +2372,12 @@ end:
-
(
void
)
windowDidBecomeKey
:(
NSNotification
*
)
o_notification
{
if
(
[
o_notification
object
]
==
o_msgs_panel
)
[
self
updateMessageDisplay
];
}
-
(
void
)
updateMessageDisplay
{
if
(
[
o_msgs_panel
isVisible
]
&&
b_msg_arr_changed
)
{
id
o_msg
;
NSEnumerator
*
o_enum
;
...
...
@@ -2362,74 +2393,58 @@ end:
[
o_messages
insertText
:
o_msg
];
}
b_msg_arr_changed
=
NO
;
[
o_msg_lock
unlock
];
}
}
-
(
void
)
updateMessageArray
-
(
void
)
libvlcMessageReceived
:
(
NSNotification
*
)
o_notification
{
int
i_start
,
i_stop
;
#if 0
vlc_mutex_lock( p_intf->p_sys->p_sub->p_lock );
i_stop = *p_intf->p_sys->p_sub->pi_stop;
vlc_mutex_unlock( p_intf->p_sys->p_sub->p_lock );
NSColor
*
o_white
=
[
NSColor
whiteColor
];
NSColor
*
o_red
=
[
NSColor
redColor
];
NSColor
*
o_yellow
=
[
NSColor
yellowColor
];
NSColor
*
o_gray
=
[
NSColor
grayColor
];
if( p_intf->p_sys->p_sub->i_start != i_stop )
{
NSColor *o_white = [NSColor whiteColor];
NSColor *o_red = [NSColor redColor];
NSColor *o_yellow = [NSColor yellowColor];
NSColor *o_gray = [NSColor grayColor];
NSColor
*
pp_color
[
4
]
=
{
o_white
,
o_red
,
o_yellow
,
o_gray
};
static
const
char
*
ppsz_type
[
4
]
=
{
": "
,
" error: "
,
" warning: "
,
" debug: "
};
NSColor * pp_color[4] = { o_white, o_red, o_yellow, o_gray }
;
static const char * ppsz_type[4] = { ": ", " error: ",
" warning: ", " debug: " }
;
NSString
*
o_msg
;
NSDictionary
*
o_attr
;
NSAttributedString
*
o_msg_color
;
for( i_start = p_intf->p_sys->p_sub->i_start;
i_start != i_stop;
i_start = (i_start+1) % VLC_MSG_QSIZE )
{
NSString *o_msg;
NSDictionary *o_attr;
NSAttributedString *o_msg_color;
int
i_type
=
[[[
o_notification
userInfo
]
objectForKey
:
@"Type"
]
intValue
];
int i_type = p_intf->p_sys->p_sub->p_msg[i_start].i_type
;
[
o_msg_lock
lock
]
;
[o_msg_lock lock];
if
(
[
o_msg_arr
count
]
+
2
>
400
)
{
unsigned
rid
[]
=
{
0
,
1
};
[
o_msg_arr
removeObjectsFromIndices
:
(
unsigned
*
)
&
rid
numIndices:
sizeof
(
rid
)
/
sizeof
(
rid
[
0
])];
}
if( [o_msg_arr count] + 2 > 400 )
{
unsigned rid[] = { 0, 1 };
[o_msg_arr removeObjectsFromIndices: (unsigned *)&rid
numIndices: sizeof(rid)/sizeof(rid[0])];
}
o_attr
=
[
NSDictionary
dictionaryWithObject
:
o_gray
forKey:
NSForegroundColorAttributeName
];
o_msg
=
[
NSString
stringWithFormat
:
@"%@%s"
,
[[
o_notification
userInfo
]
objectForKey
:
@"Module"
],
ppsz_type
[
i_type
]];
o_msg_color
=
[[
NSAttributedString
alloc
]
initWithString:
o_msg
attributes
:
o_attr
];
[
o_msg_arr
addObject
:
[
o_msg_color
autorelease
]];
o_attr = [NSDictionary dictionaryWithObject: o_gray
forKey: NSForegroundColorAttributeName];
o_msg = [NSString stringWithFormat: @"%s%s",
p_intf->p_sys->p_sub->p_msg[i_start].psz_module,
ppsz_type[i_type]];
o_msg_color = [[NSAttributedString alloc]
initWithString: o_msg attributes: o_attr];
[o_msg_arr addObject: [o_msg_color autorelease]];
o_attr = [NSDictionary dictionaryWithObject: pp_color[i_type]
forKey: NSForegroundColorAttributeName];
o_msg = [[NSString stringWithUTF8String: p_intf->p_sys->p_sub->p_msg[i_start].psz_msg] stringByAppendingString: @"\n"];
o_msg_color = [[NSAttributedString alloc]
initWithString: o_msg attributes: o_attr];
[o_msg_arr addObject: [o_msg_color autorelease]];
[o_msg_lock unlock];
}
o_attr
=
[
NSDictionary
dictionaryWithObject
:
pp_color
[
i_type
]
forKey:
NSForegroundColorAttributeName
];
o_msg
=
[[[
o_notification
userInfo
]
objectForKey
:
@"Message"
]
stringByAppendingString
:
@"
\n
"
];
o_msg_color
=
[[
NSAttributedString
alloc
]
initWithString:
o_msg
attributes
:
o_attr
];
[
o_msg_arr
addObject
:
[
o_msg_color
autorelease
]];
vlc_mutex_lock( p_intf->p_sys->p_sub->p_lock );
p_intf->p_sys->p_sub->i_start = i_start;
vlc_mutex_unlock( p_intf->p_sys->p_sub->p_lock );
}
#endif
b_msg_arr_changed
=
YES
;
[
o_msg_lock
unlock
];
}
#pragma mark -
#pragma mark Playlist toggling
...
...
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