diff --git a/modules/gui/macosx/media-source/VLCMediaSourceDataSource.h b/modules/gui/macosx/media-source/VLCMediaSourceDataSource.h index bea78c6be7..7da9796bf3 100644 --- a/modules/gui/macosx/media-source/VLCMediaSourceDataSource.h +++ b/modules/gui/macosx/media-source/VLCMediaSourceDataSource.h @@ -24,6 +24,7 @@ NS_ASSUME_NONNULL_BEGIN +@class VLCInputItem; @class VLCInputNode; @class VLCMediaSource; @@ -37,6 +38,7 @@ NS_ASSUME_NONNULL_BEGIN @property (readwrite) BOOL gridViewMode; - (void)setupViews; +- (VLCInputItem*)mediaSourceInputItemAtRow:(NSInteger)tableViewRow; @end diff --git a/modules/gui/macosx/media-source/VLCMediaSourceDataSource.m b/modules/gui/macosx/media-source/VLCMediaSourceDataSource.m index bb71cf077c..c25eb44506 100644 --- a/modules/gui/macosx/media-source/VLCMediaSourceDataSource.m +++ b/modules/gui/macosx/media-source/VLCMediaSourceDataSource.m @@ -120,12 +120,7 @@ cellView.identifier = @"VLCMediaSourceTableViewCellIdentifier"; } - VLCInputNode *rootNode = _nodeToDisplay; - NSArray *nodeChildren = rootNode.children; - VLCInputNode *childNode = nodeChildren[row]; - VLCInputItem *childRootInput = childNode.inputItem; - cellView.representedInputItem = childRootInput; - + cellView.representedInputItem = [self mediaSourceInputItemAtRow:row]; return cellView; } @@ -156,6 +151,23 @@ [self performActionForNode:childNode allowPlayback:YES]; } +- (VLCInputItem*)mediaSourceInputItemAtRow:(NSInteger)tableViewRow +{ + if (_nodeToDisplay == nil) { + return nil; + } + + VLCInputNode *rootNode = _nodeToDisplay; + NSArray *nodeChildren = rootNode.children; + + if (nodeChildren == nil || nodeChildren.count == 0) { + return nil; + } + + VLCInputNode *childNode = nodeChildren[tableViewRow]; + return childNode.inputItem; +} + #pragma mark - generic actions - (void)performActionForNode:(VLCInputNode *)node allowPlayback:(BOOL)allowPlayback