IMAHost+AVUserAble.m 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. //
  2. // IMAHost+AVUserAble.m
  3. // TCShow
  4. //
  5. // Created by AlexiChen on 16/4/14.
  6. // Copyright © 2016年 AlexiChen. All rights reserved.
  7. //
  8. #import "IMAHost+AVUserAble.h"
  9. @implementation IMAHost (AVUserAble)
  10. static NSString *const kIMAHostAVCtrlState = @"kIMAHostAVCtrlState";
  11. - (NSInteger)avCtrlState
  12. {
  13. NSNumber *num = objc_getAssociatedObject(self, (__bridge const void *)kIMAHostAVCtrlState);
  14. return [num integerValue];
  15. }
  16. - (void)setAvCtrlState:(NSInteger)avCtrlState
  17. {
  18. objc_setAssociatedObject(self, (__bridge const void *)kIMAHostAVCtrlState, @(avCtrlState), OBJC_ASSOCIATION_RETAIN);
  19. DebugLog(@"Host [%p] Ctrl State : %d", self, (int)avCtrlState);
  20. }
  21. - (BOOL)isCurrentLiveHost:(id<AVRoomAble>)room
  22. {
  23. return [[self imUserId] isEqualToString:[[room liveHost] imUserId]];
  24. }
  25. - (BOOL)isCurrentHost:(id)user
  26. {
  27. return [[self imUserId] isEqualToString:user];
  28. }
  29. @end
  30. @implementation IMAHost (AVMultiUserAble)
  31. static NSString *const kIMAHostAVMultiUserState = @"kIMAHostAVMultiUserState";
  32. static NSString *const kIMAHostAVInteractArea = @"kIMAHostAVInteractArea";
  33. static NSString *const kIMAHostAVInvisibleInteractView = @"kIMAHostAVInvisibleInteractView";
  34. - (NSInteger)avMultiUserState
  35. {
  36. NSNumber *num = objc_getAssociatedObject(self, (__bridge const void *)kIMAHostAVMultiUserState);
  37. return [num integerValue];
  38. }
  39. - (void)setAvMultiUserState:(NSInteger)avMultiUserState
  40. {
  41. objc_setAssociatedObject(self, (__bridge const void *)kIMAHostAVMultiUserState, @(avMultiUserState), OBJC_ASSOCIATION_RETAIN);
  42. }
  43. - (CGRect)avInteractArea
  44. {
  45. NSValue *num = objc_getAssociatedObject(self, (__bridge const void *)kIMAHostAVInteractArea);
  46. return [num CGRectValue];
  47. }
  48. - (void)setAvInteractArea:(CGRect)avInteractArea
  49. {
  50. objc_setAssociatedObject(self, (__bridge const void *)kIMAHostAVInteractArea, [NSValue valueWithCGRect:avInteractArea], OBJC_ASSOCIATION_RETAIN);
  51. }
  52. - (UIView *)avInvisibleInteractView
  53. {
  54. return objc_getAssociatedObject(self, (__bridge const void *)kIMAHostAVInvisibleInteractView);
  55. }
  56. - (void)setAvInvisibleInteractView:(UIView *)avInvisibleInteractView
  57. {
  58. objc_setAssociatedObject(self, (__bridge const void *)kIMAHostAVInvisibleInteractView, avInvisibleInteractView, OBJC_ASSOCIATION_ASSIGN);
  59. }
  60. @end