VLCLocalNetworkService.h 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /*****************************************************************************
  2. * VLCLocalNetworkService.h
  3. * VLC for iOS
  4. *****************************************************************************
  5. * Copyright (c) 2015 VideoLAN. All rights reserved.
  6. * $Id$
  7. *
  8. * Authors: Tobias Conradi <videolan # tobias-conradi.de>
  9. *
  10. * Refer to the COPYING file of the official project for license.
  11. *****************************************************************************/
  12. #import <Foundation/Foundation.h>
  13. NS_ASSUME_NONNULL_BEGIN
  14. @protocol VLCLocalNetworkService <NSObject>
  15. @required
  16. @property (nonatomic, readonly, nullable) UIImage *icon;
  17. @property (nonatomic, readonly) NSString *title;
  18. @optional
  19. - (nullable UIViewController *)detailViewController;
  20. typedef void (^VLCLocalNetworkServiceActionBlock)(void);
  21. @property (nonatomic, readonly) VLCLocalNetworkServiceActionBlock action;
  22. @end
  23. #pragma mark - item
  24. @interface VLCLocalNetworkServiceItem : NSObject <VLCLocalNetworkService>
  25. - (instancetype)initWithTile:(NSString *)title icon:(nullable UIImage *)icon;
  26. @end
  27. @interface VLCLocalNetworkServiceItemLogin : VLCLocalNetworkServiceItem
  28. - (instancetype)init;
  29. @end
  30. #pragma mark - NetService based services
  31. @interface VLCLocalNetworkServiceNetService : NSObject <VLCLocalNetworkService>
  32. @property (nonatomic, readonly, strong) NSNetService *netService;
  33. - (instancetype)initWithNetService:(NSNetService *)service;
  34. @end
  35. @interface VLCLocalNetworkServicePlex : VLCLocalNetworkServiceNetService
  36. @end
  37. @interface VLCLocalNetworkServiceFTP : VLCLocalNetworkServiceNetService
  38. @end
  39. @interface VLCLocalNetworkServiceHTTP : VLCLocalNetworkServiceNetService
  40. @property (nonatomic, strong) NSDictionary *seviceDescription;
  41. @end
  42. #pragma mark - VLCMedia based services
  43. @interface VLCLocalNetworkServiceVLCMedia : NSObject <VLCLocalNetworkService>
  44. - (instancetype)initWithMediaItem:(VLCMedia *)mediaItem;
  45. @end
  46. @interface VLCLocalNetworkServiceDSM: VLCLocalNetworkServiceVLCMedia
  47. @end
  48. @interface VLCLocalNetworkServiceSAP: VLCLocalNetworkServiceVLCMedia
  49. @end
  50. #pragma mark - UPnP
  51. @class BasicUPnPDevice;
  52. @interface VLCLocalNetworkServiceUPnP : NSObject <VLCLocalNetworkService>
  53. - (instancetype)initWithUPnPDevice:(BasicUPnPDevice *)device;
  54. @end
  55. NS_ASSUME_NONNULL_END