Cog/Playlist/PlaylistEntry.h
Christopher Snowhill 8ee4a04f3b Experimental tag support redesign
This redesign completely changes how tags are stored in memory. Now all
arbitrary tag names are supported, where possible. Some extra work will
be needed to support arbitrary tags with TagLib, such as replacing it
with a different library.

Translation pending for a couple of strings.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-07-08 16:35:34 -07:00

98 lines
3.5 KiB
Objective-C

//
// PlaylistEntry.h
// Cog
//
// Created by Vincent Spader on 3/14/05.
// Copyright 2005 Vincent Spader All rights reserved.
//
#import <Cocoa/Cocoa.h>
#import "Cog-Swift.h"
@interface PlaylistEntry (Extension)
+ (NSSet *_Nonnull)keyPathsForValuesAffectingTitle;
+ (NSSet *_Nonnull)keyPathsForValuesAffectingDisplay;
+ (NSSet *_Nonnull)keyPathsForValuesAffectingLength;
+ (NSSet *_Nonnull)keyPathsForValuesAffectingPath;
+ (NSSet *_Nonnull)keyPathsForValuesAffectingFilename;
+ (NSSet *_Nonnull)keyPathsForValuesAffectingFilenameFragment;
+ (NSSet *_Nonnull)keyPathsForValuesAffectingStatus;
+ (NSSet *_Nonnull)keyPathsForValuesAffectingStatusMessage;
+ (NSSet *_Nonnull)keyPathsForValuesAffectingSpam;
+ (NSSet *_Nonnull)keyPathsForValuesAffectingIndexedSpam;
+ (NSSet *_Nonnull)keyPathsForValuesAffectingAlbumArt;
+ (NSSet *_Nonnull)keyPathsForValuesAffectingTrackText;
+ (NSSet *_Nonnull)keyPathsForValuesAffectingLengthText;
+ (NSSet *_Nonnull)keyPathsForValuesAffectingYearText;
+ (NSSet *_Nonnull)keyPathsForValuesAffectingCuesheetPresent;
+ (NSSet *_Nonnull)keyPathsForValuesAffectingGainCorrection;
+ (NSSet *_Nonnull)keyPathsForValuesAffectingUnsigned;
@property(nonatomic, readonly) NSString *_Nonnull display;
@property(nonatomic, retain, readonly) NSNumber *_Nonnull length;
@property(nonatomic, readonly) NSString *_Nonnull path;
@property(nonatomic, readonly) NSString *_Nonnull filename;
@property(nonatomic, readonly) NSString *_Nonnull filenameFragment;
@property(nonatomic, readonly) NSString *_Nonnull spam;
@property(nonatomic, readonly) NSString *_Nonnull indexedSpam;
@property(nonatomic, readonly) NSString *_Nonnull positionText;
@property(nonatomic, readonly) NSString *_Nonnull lengthText;
@property(nonatomic, readonly) NSString *_Nonnull yearText;
@property(nonatomic) NSString *_Nonnull title;
@property(nonatomic, readonly) NSString *_Nonnull trackText;
@property(nonatomic, readonly) NSString *_Nonnull cuesheetPresent;
@property(nonatomic, retain, readonly) NSImage *_Nullable albumArt;
@property(nonatomic, readonly) NSString *_Nonnull gainCorrection;
@property(nonatomic, readonly) NSString *_Nonnull gainInfo;
@property(nonatomic, readonly) NSString *_Nullable status;
@property(nonatomic, readonly) NSString *_Nullable statusMessage;
@property(nonatomic) NSURL *_Nullable url;
@property(nonatomic) NSURL *_Nullable trashUrl;
@property(nonatomic) NSData *_Nullable albumArtInternal;
@property(nonatomic) BOOL Unsigned;
@property(nonatomic) NSURL *_Nullable URL;
@property(nonatomic) PlayCount *_Nullable playCountItem;
@property(nonatomic, readonly) NSString *_Nonnull playCount;
@property(nonatomic, readonly) NSString *_Nonnull playCountInfo;
@property(nonatomic, readonly) float rating;
@property(nonatomic) NSString *_Nullable album;
@property(nonatomic) NSString *_Nullable albumartist;
@property(nonatomic) NSString *_Nullable artist;
@property(nonatomic) NSString *_Nullable rawTitle;
@property(nonatomic) NSString *_Nullable genre;
@property(nonatomic) int32_t disc;
@property(nonatomic) int32_t track;
@property(nonatomic) int32_t year;
@property(nonatomic) NSString *_Nullable date;
@property(nonatomic) NSString *_Nullable comment;
@property(nonatomic) NSDictionary *_Nullable metadataBlob;
- (NSString *_Nullable)readAllValuesAsString:(NSString *_Nonnull)tagName;
- (void)setValue:(NSString *_Nonnull)tagName fromString:(NSString *_Nullable)value;
- (void)addValue:(NSString *_Nonnull)tagName fromString:(NSString *_Nonnull)value;
- (void)setMetadata:(NSDictionary *_Nonnull)metadata;
@end