From ba5f5b86942b4531da293a649c868985512bb0dc Mon Sep 17 00:00:00 2001 From: Christopher Snowhill Date: Wed, 19 Jan 2022 23:23:17 -0800 Subject: [PATCH] Playlist Entry: Made object copyable --- Playlist/PlaylistEntry.h | 2 +- Playlist/PlaylistEntry.m | 62 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 1 deletion(-) diff --git a/Playlist/PlaylistEntry.h b/Playlist/PlaylistEntry.h index 218186aa5..1cac3dd02 100644 --- a/Playlist/PlaylistEntry.h +++ b/Playlist/PlaylistEntry.h @@ -8,7 +8,7 @@ #import -@interface PlaylistEntry : NSObject { +@interface PlaylistEntry : NSObject { NSInteger index; NSInteger shuffleIndex; NSInteger dbIndex; diff --git a/Playlist/PlaylistEntry.m b/Playlist/PlaylistEntry.m index 125be2d48..42245c0a7 100644 --- a/Playlist/PlaylistEntry.m +++ b/Playlist/PlaylistEntry.m @@ -389,4 +389,66 @@ metadataLoaded = YES; } +- (id)copyWithZone:(NSZone *)zone { + PlaylistEntry *pe = [[[self class] allocWithZone:zone] init]; + + if (pe) { + [pe setIndex:[self index]]; + [pe setShuffleIndex:[self shuffleIndex]]; + [pe setDbIndex:[self dbIndex]]; + [pe setEntryId:[self entryId]]; + + [pe setCurrent:[self current]]; + [pe setRemoved:[self removed]]; + + [pe setStopAfter:[self stopAfter]]; + + [pe setQueued:[self queued]]; + [pe setQueuePosition:[self queuePosition]]; + + [pe setError:[self error]]; + [pe setErrorMessage:[self errorMessage]]; + + [pe setURL:[self URL]]; + + [pe setArtist:[self artist]]; + [pe setAlbumartist:[self albumartist]]; + [pe setAlbum:[self album]]; + [pe setTitle:[self title]]; + [pe setGenre:[self genre]]; + [pe setYear:[self year]]; + [pe setTrack:[self track]]; + + [pe setCuesheet:[self cuesheet]]; + + [pe setAlbumArtInternal:[self albumArtInternal]]; + + [pe setReplayGainAlbumGain:[self replayGainAlbumGain]]; + [pe setReplayGainAlbumPeak:[self replayGainAlbumPeak]]; + [pe setReplayGainTrackGain:[self replayGainTrackGain]]; + [pe setReplayGainTrackPeak:[self replayGainTrackPeak]]; + [pe setVolume:[self volume]]; + + [pe setCurrentPosition:[self currentPosition]]; + + [pe setTotalFrames:[self totalFrames]]; + [pe setBitrate:[self bitrate]]; + [pe setChannels:[self channels]]; + [pe setBitsPerSample:[self bitsPerSample]]; + [pe setFloatingPoint:[self floatingPoint]]; + [pe setUnsigned:[self Unsigned]]; + [pe setSampleRate:[self sampleRate]]; + + [pe setCodec:[self codec]]; + + [pe setEndian:[self endian]]; + + [pe setSeekable:[self seekable]]; + + [pe setMetadataLoaded:[self metadataLoaded]]; + } + + return pe; +} + @end