LMMediaItemQueueManager.m 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. //
  2. // LMMediaItemArchiver.m
  3. // iPodMusicSample
  4. //
  5. // Created by Akira Matsuda on 2014/01/31.
  6. // Copyright (c) 2014年 Akira Matsuda. All rights reserved.
  7. //
  8. #import "LMMediaItemQueueManager.h"
  9. #import "LMMediaPlayerHelper.h"
  10. static NSString *const kLMMediaItemQueueManagerQueueList = @"kLMMediaItemQueueManagerQueueList";
  11. @implementation LMMediaItemQueueManager
  12. + (NSArray *)queueList
  13. {
  14. return [[NSUserDefaults standardUserDefaults] arrayForKey:kLMMediaItemQueueManagerQueueList];
  15. }
  16. + (void)removeQueueWithKey:(NSString *)key
  17. {
  18. [[NSUserDefaults standardUserDefaults] removeObjectForKey:key];
  19. NSMutableArray *keys = [NSMutableArray arrayWithArray:[LMMediaItemQueueManager queueList]];
  20. for (NSString *k in keys) {
  21. if ([k isEqualToString:key]) {
  22. [keys removeObject:k];
  23. break;
  24. }
  25. }
  26. [[NSUserDefaults standardUserDefaults] setObject:keys forKey:kLMMediaItemQueueManagerQueueList];
  27. }
  28. + (void)saveQueueWithKey:(NSString *)key queue:(NSArray *)queue
  29. {
  30. NSMutableArray *saveArray = [NSMutableArray new];
  31. LM_AUTORELEASE(saveArray);
  32. for (LMMediaItem *item in queue) {
  33. NSData *data = [NSKeyedArchiver archivedDataWithRootObject:item];
  34. [saveArray addObject:data];
  35. }
  36. [[NSUserDefaults standardUserDefaults] setObject:saveArray forKey:key];
  37. NSMutableArray *keys = [NSMutableArray arrayWithArray:[LMMediaItemQueueManager queueList]];
  38. [keys addObject:key];
  39. [[NSUserDefaults standardUserDefaults] setObject:keys forKey:kLMMediaItemQueueManagerQueueList];
  40. }
  41. + (NSArray *)loadQueueWithKey:(NSString *)key
  42. {
  43. NSMutableArray *result = [NSMutableArray new];
  44. LM_AUTORELEASE(result);
  45. NSArray *array = [[NSUserDefaults standardUserDefaults] arrayForKey:key];
  46. for (id d in array) {
  47. LMMediaItem *item = [NSKeyedUnarchiver unarchiveObjectWithData:d];
  48. [result addObject:item];
  49. }
  50. NSArray *newArray = [result copy];
  51. LM_AUTORELEASE(newArray);
  52. return newArray;
  53. }
  54. @end