Skip to content
Snippets Groups Projects
Commit 67ea7e40 authored by Felix Paul Kühne's avatar Felix Paul Kühne
Browse files

macosx/media source: show artwork if provided

parent a094528a
No related branches found
No related tags found
No related merge requests found
......@@ -42,6 +42,7 @@ extern NSString *VLCInputItemSubtreeAdded;
@property (readonly) vlc_tick_t duration;
@property (readonly) enum input_item_type_e inputType;
@property (readonly) struct input_item_node_t *subTree;
@property (readonly) NSURL *artworkURL;
- (void)parseInputItem;
- (void)cancelParsing;
......
......@@ -115,6 +115,19 @@ static const struct input_item_parser_cbs_t parserCallbacks =
return ITEM_TYPE_UNKNOWN;
}
- (NSURL *)artworkURL
{
if (_vlcInputItem) {
char *p_artworkURL = input_item_GetArtworkURL(_vlcInputItem);
if (p_artworkURL) {
NSString *artworkURLString = toNSStr(p_artworkURL);
FREENULL(p_artworkURL);
return [NSURL URLWithString:artworkURLString];
}
}
return nil;
}
- (void)parseInputItem
{
_p_parserID = input_item_Parse(_vlcInputItem,
......
......@@ -119,6 +119,14 @@
VLCInputItem *childRootInput = childNode.inputItem;
viewItem.titleTextField.stringValue = childRootInput.name;
NSURL *artworkURL = childRootInput.artworkURL;
NSImage *placeholder = [NSImage imageNamed:@"NSApplicationIcon"];
if (artworkURL) {
[viewItem.mediaImageView setImageURL:artworkURL placeholderImage:placeholder];
} else {
viewItem.mediaImageView.image = placeholder;
}
return viewItem;
}
......
......@@ -31,10 +31,10 @@ NSString *VLCMediaSourceCellIdentifier = @"VLCMediaSourceCellIdentifier";
@implementation VLCMediaSourceCollectionViewItem
- (void)viewDidLoad {
[super viewDidLoad];
[self.mediaImageView setImage:[NSImage imageNamed:@"NSApplicationIcon"]];
- (void)prepareForReuse
{
[super prepareForReuse];
self.mediaImageView.image = nil;
}
@end
......@@ -27,6 +27,8 @@
#import "media-source/VLCMediaSource.h"
#import "main/VLCMain.h"
#import "playlist/VLCPlaylistController.h"
#import "views/VLCImageView.h"
#import "extensions/NSString+Helpers.h"
@interface VLCMediaSourceDataSource()
{
......@@ -71,6 +73,14 @@
VLCInputItem *childRootInput = childNode.inputItem;
viewItem.titleTextField.stringValue = childRootInput.name;
NSURL *artworkURL = childRootInput.artworkURL;
NSImage *placeholder = [NSImage imageNamed:@"NSApplicationIcon"];
if (artworkURL) {
[viewItem.mediaImageView setImageURL:artworkURL placeholderImage:placeholder];
} else {
viewItem.mediaImageView.image = placeholder;
}
return viewItem;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment