[vlc-commits] [Git][videolan/vlc][master] macos: deduplicate VLCInputItem string metadata getters

Steve Lhomme (@robUx4) gitlab at videolan.org
Fri Aug 7 09:41:21 UTC 2026



Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
f2a20d2b by Serhii Bykov at 2026-08-07T09:25:28+00:00
macos: deduplicate VLCInputItem string metadata getters

- - - - -


1 changed file:

- modules/gui/macosx/library/VLCInputItem.m


Changes:

=====================================
modules/gui/macosx/library/VLCInputItem.m
=====================================
@@ -106,6 +106,14 @@ static const struct input_item_parser_cbs_t parserCallbacks =
         input_item_node_Delete(_subTree);
 }
 
+- (NSString *)stringMetadata:(char *(*)(input_item_t *))getter
+{
+    char *value = getter(_vlcInputItem);
+    NSString *result = toNSStr(value);
+    FREENULL(value);
+    return result;
+}
+
 - (NSString *)name
 {
     return toNSStr(_vlcInputItem->psz_name);
@@ -134,10 +142,7 @@ static const struct input_item_parser_cbs_t parserCallbacks =
 
 - (NSString *)artist
 {
-    char *psz_artist = input_item_GetArtist(_vlcInputItem);
-    NSString *returnValue = toNSStr(psz_artist);
-    FREENULL(psz_artist);
-    return returnValue;
+    return [self stringMetadata:input_item_GetArtist];
 }
 - (void)setArtist:(NSString *)artist
 {
@@ -146,10 +151,7 @@ static const struct input_item_parser_cbs_t parserCallbacks =
 
 - (NSString *)album
 {
-    char *psz_album = input_item_GetAlbum(_vlcInputItem);
-    NSString *returnValue = toNSStr(psz_album);
-    FREENULL(psz_album);
-    return returnValue;
+    return [self stringMetadata:input_item_GetAlbum];
 }
 - (void)setAlbum:(NSString *)albumName
 {
@@ -158,10 +160,7 @@ static const struct input_item_parser_cbs_t parserCallbacks =
 
 - (NSString *)trackNumber
 {
-    char *psz_trackNumber = input_item_GetTrackNumber(_vlcInputItem);
-    NSString *returnValue = toNSStr(psz_trackNumber);
-    FREENULL(psz_trackNumber);
-    return returnValue;
+    return [self stringMetadata:input_item_GetTrackNumber];
 }
 - (void)setTrackNumber:(NSString *)trackNumber
 {
@@ -170,10 +169,7 @@ static const struct input_item_parser_cbs_t parserCallbacks =
 
 - (NSString *)genre
 {
-    char *psz_genre = input_item_GetGenre(_vlcInputItem);
-    NSString *returnValue = toNSStr(psz_genre);
-    FREENULL(psz_genre);
-    return returnValue;
+    return [self stringMetadata:input_item_GetGenre];
 }
 - (void)setGenre:(NSString *)genre
 {
@@ -182,10 +178,7 @@ static const struct input_item_parser_cbs_t parserCallbacks =
 
 - (NSString *)copyright
 {
-    char *psz_copyright = input_item_GetCopyright(_vlcInputItem);
-    NSString *returnValue = toNSStr(psz_copyright);
-    FREENULL(psz_copyright);
-    return returnValue;
+    return [self stringMetadata:input_item_GetCopyright];
 }
 - (void)setCopyright:(NSString *)copyright
 {
@@ -194,10 +187,7 @@ static const struct input_item_parser_cbs_t parserCallbacks =
 
 - (NSString *)publisher
 {
-    char *psz_publisher = input_item_GetPublisher(_vlcInputItem);
-    NSString *returnValue = toNSStr(psz_publisher);
-    FREENULL(psz_publisher);
-    return returnValue;
+    return [self stringMetadata:input_item_GetPublisher];
 }
 - (void)setPublisher:(NSString *)publisher
 {
@@ -206,18 +196,12 @@ static const struct input_item_parser_cbs_t parserCallbacks =
 
 - (NSString *)nowPlaying
 {
-    char *psz_nowPlaying = input_item_GetNowPlaying(_vlcInputItem);
-    NSString *returnValue = toNSStr(psz_nowPlaying);
-    FREENULL(psz_nowPlaying);
-    return returnValue;
+    return [self stringMetadata:input_item_GetNowPlaying];
 }
 
 - (NSString *)language
 {
-    char *psz_language = input_item_GetLanguage(_vlcInputItem);
-    NSString *returnValue = toNSStr(psz_language);
-    FREENULL(psz_language);
-    return returnValue;
+    return [self stringMetadata:input_item_GetLanguage];
 }
 - (void)setLanguage:(NSString *)language
 {
@@ -226,10 +210,7 @@ static const struct input_item_parser_cbs_t parserCallbacks =
 
 - (NSString *)date
 {
-    char *psz_date = input_item_GetDate(_vlcInputItem);
-    NSString *returnValue = toNSStr(psz_date);
-    FREENULL(psz_date);
-    return returnValue;
+    return [self stringMetadata:input_item_GetDate];
 }
 - (void)setDate:(NSString *)date
 {
@@ -238,10 +219,7 @@ static const struct input_item_parser_cbs_t parserCallbacks =
 
 - (NSString *)contentDescription
 {
-    char *psz_description = input_item_GetDescription(_vlcInputItem);
-    NSString *returnValue = toNSStr(psz_description);
-    FREENULL(psz_description);
-    return returnValue;
+    return [self stringMetadata:input_item_GetDescription];
 }
 - (void)setContentDescription:(NSString *)contentDescription
 {
@@ -250,34 +228,22 @@ static const struct input_item_parser_cbs_t parserCallbacks =
 
 - (NSString *)encodedBy
 {
-    char *psz_encodedBy = input_item_GetEncodedBy(_vlcInputItem);
-    NSString *returnValue = toNSStr(psz_encodedBy);
-    FREENULL(psz_encodedBy);
-    return returnValue;
+    return [self stringMetadata:input_item_GetEncodedBy];
 }
 
 - (NSString *)trackID
 {
-    char *psz_trackID = input_item_GetTrackID(_vlcInputItem);
-    NSString *returnValue = toNSStr(psz_trackID);
-    FREENULL(psz_trackID);
-    return returnValue;
+    return [self stringMetadata:input_item_GetTrackID];
 }
 
 - (NSString *)trackTotal
 {
-    char *psz_trackTotal = input_item_GetTrackTotal(_vlcInputItem);
-    NSString *returnValue = toNSStr(psz_trackTotal);
-    FREENULL(psz_trackTotal);
-    return returnValue;
+    return [self stringMetadata:input_item_GetTrackTotal];
 }
 
 - (NSString *)director
 {
-    char *psz_director = input_item_GetDirector(_vlcInputItem);
-    NSString *returnValue = toNSStr(psz_director);
-    FREENULL(psz_director);
-    return returnValue;
+    return [self stringMetadata:input_item_GetDirector];
 }
 - (void)setDirector:(NSString *)director
 {
@@ -286,26 +252,17 @@ static const struct input_item_parser_cbs_t parserCallbacks =
 
 - (NSString *)season
 {
-    char *psz_season = input_item_GetSeason(_vlcInputItem);
-    NSString *returnValue = toNSStr(psz_season);
-    FREENULL(psz_season);
-    return returnValue;
+    return [self stringMetadata:input_item_GetSeason];
 }
 
 - (NSString *)episode
 {
-    char *psz_episode = input_item_GetEpisode(_vlcInputItem);
-    NSString *returnValue = toNSStr(psz_episode);
-    FREENULL(psz_episode);
-    return returnValue;
+    return [self stringMetadata:input_item_GetEpisode];
 }
 
 - (NSString *)showName
 {
-    char *psz_showName = input_item_GetShowName(_vlcInputItem);
-    NSString *returnValue = toNSStr(psz_showName);
-    FREENULL(psz_showName);
-    return returnValue;
+    return [self stringMetadata:input_item_GetShowName];
 }
 - (void)setShowName:(NSString *)showName
 {
@@ -314,10 +271,7 @@ static const struct input_item_parser_cbs_t parserCallbacks =
 
 - (NSString *)actors
 {
-    char *psz_actors = input_item_GetActors(_vlcInputItem);
-    NSString *returnValue = toNSStr(psz_actors);
-    FREENULL(psz_actors);
-    return returnValue;
+    return [self stringMetadata:input_item_GetActors];
 }
 - (void)setActors:(NSString *)actors
 {
@@ -326,18 +280,12 @@ static const struct input_item_parser_cbs_t parserCallbacks =
 
 - (NSString *)discNumber
 {
-    char *psz_discNumber = input_item_GetDiscNumber(_vlcInputItem);
-    NSString *returnValue = toNSStr(psz_discNumber);
-    FREENULL(psz_discNumber);
-    return returnValue;
+    return [self stringMetadata:input_item_GetDiscNumber];
 }
 
 - (NSString *)totalNumberOfDiscs
 {
-    char *psz_totalDiscNumber = input_item_GetDiscTotal(_vlcInputItem);
-    NSString *returnValue = toNSStr(psz_totalDiscNumber);
-    FREENULL(psz_totalDiscNumber);
-    return returnValue;
+    return [self stringMetadata:input_item_GetDiscTotal];
 }
 
 - (NSString *)MRL



View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/f2a20d2b832ec716460f22465067d6ea4ac79fb7

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/f2a20d2b832ec716460f22465067d6ea4ac79fb7
You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help




More information about the vlc-commits mailing list