From ac96cb4f29544b1b45af4c94d384e41ad6d6d7a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20Paul=20K=C3=BChne?= <felix@feepk.net> Date: Sat, 25 Jan 2020 13:40:32 +0100 Subject: [PATCH] macosx/library: add helpers to expose human readable types --- .../gui/macosx/library/VLCLibraryDataTypes.h | 4 + .../gui/macosx/library/VLCLibraryDataTypes.m | 82 +++++++++++++++++++ 2 files changed, 86 insertions(+) diff --git a/modules/gui/macosx/library/VLCLibraryDataTypes.h b/modules/gui/macosx/library/VLCLibraryDataTypes.h index d208f20ff651..3d64261f70a2 100644 --- a/modules/gui/macosx/library/VLCLibraryDataTypes.h +++ b/modules/gui/macosx/library/VLCLibraryDataTypes.h @@ -43,6 +43,7 @@ extern const long long int VLCMediaLibraryMediaItemDurationDenominator; @property (readonly) NSString *MRL; @property (readonly) NSURL *fileURL; @property (readonly) vlc_ml_file_type_t fileType; +@property (readonly) NSString *readableFileType; @property (readonly) BOOL external; @property (readonly) BOOL removable; @property (readonly) BOOL present; @@ -57,6 +58,7 @@ extern const long long int VLCMediaLibraryMediaItemDurationDenominator; @property (readonly) NSString *language; @property (readonly) NSString *trackDescription; @property (readonly) vlc_ml_track_type_t trackType; +@property (readonly) NSString *readableTrackType; @property (readonly) uint32_t bitrate; @property (readonly) uint32_t numberOfAudioChannels; @@ -156,7 +158,9 @@ extern const long long int VLCMediaLibraryMediaItemDurationDenominator; @property (readonly) int64_t libraryID; @property (readonly) vlc_ml_media_type_t mediaType; +@property (readonly) NSString *readableMediaType; @property (readonly) vlc_ml_media_subtype_t mediaSubType; +@property (readonly) NSString *readableMediaSubType; @property (readonly) VLCInputItem *inputItem; @property (readonly) NSArray <VLCMediaLibraryFile *> *files; diff --git a/modules/gui/macosx/library/VLCLibraryDataTypes.m b/modules/gui/macosx/library/VLCLibraryDataTypes.m index 82fef465e05c..7aa8373ac6c4 100644 --- a/modules/gui/macosx/library/VLCLibraryDataTypes.m +++ b/modules/gui/macosx/library/VLCLibraryDataTypes.m @@ -63,6 +63,34 @@ NSString *VLCMediaLibraryMediaItemLibraryID = @"VLCMediaLibraryMediaItemLibraryI return [NSURL URLWithString:_MRL]; } +- (NSString *)readableFileType +{ + switch (_fileType) { + case VLC_ML_FILE_TYPE_MAIN: + return _NS("Main"); + break; + + case VLC_ML_FILE_TYPE_PART: + return _NS("Part"); + break; + + case VLC_ML_FILE_TYPE_PLAYLIST: + return _NS("Playlist"); + break; + + case VLC_ML_FILE_TYPE_SUBTITLE: + return _NS("Subtitle"); + break; + + case VLC_ML_FILE_TYPE_SOUNDTRACK: + return _NS("Soundtrack"); + + default: + return _NS("Unknown"); + break; + } +} + @end @implementation VLCMediaLibraryTrack @@ -95,6 +123,22 @@ NSString *VLCMediaLibraryMediaItemLibraryID = @"VLCMediaLibraryMediaItemLibraryI return [NSString stringWithFormat:@"%@ — type: %i, codec %@", NSStringFromClass([self class]), _trackType, _codec]; } +- (NSString *)readableTrackType +{ + switch (_trackType) { + case VLC_ML_TRACK_TYPE_AUDIO: + return _NS("Audio"); + break; + + case VLC_ML_TRACK_TYPE_VIDEO: + return _NS("Video"); + + default: + return _NS("Unknown"); + break; + } +} + @end @implementation VLCMediaLibraryMovie @@ -373,6 +417,44 @@ NSString *VLCMediaLibraryMediaItemLibraryID = @"VLCMediaLibraryMediaItemLibraryI NSStringFromClass([self class]), _title, _libraryID, _mediaType, _smallArtworkMRL]; } +- (NSString *)readableMediaType +{ + switch (_mediaType) { + case VLC_ML_MEDIA_TYPE_AUDIO: + return _NS("Audio"); + break; + + case VLC_ML_MEDIA_TYPE_VIDEO: + return _NS("Video"); + break; + + default: + return _NS("Unknown"); + break; + } +} + +- (NSString *)readableMediaSubType +{ + switch (_mediaSubType) { + case VLC_ML_MEDIA_SUBTYPE_MOVIE: + return _NS("Movie"); + break; + + case VLC_ML_MEDIA_SUBTYPE_SHOW_EPISODE: + return _NS("Show Episode"); + break; + + case VLC_ML_MEDIA_SUBTYPE_ALBUMTRACK: + return _NS("Album Track"); + break; + + default: + return _NS("Unknown"); + break; + } +} + - (VLCInputItem *)inputItem { input_item_t *p_inputItem = vlc_ml_get_input_item(_p_mediaLibrary, _libraryID); -- GitLab