VLCLocalNetworkService.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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. @end
  41. #pragma mark - VLCMedia based services
  42. @interface VLCLocalNetworkServiceVLCMedia : NSObject <VLCLocalNetworkService>
  43. - (instancetype)initWithMediaItem:(VLCMedia *)mediaItem;
  44. @end
  45. @interface VLCLocalNetworkServiceDSM: VLCLocalNetworkServiceVLCMedia
  46. @end
  47. @interface VLCLocalNetworkServiceSAP: VLCLocalNetworkServiceVLCMedia
  48. @end
  49. #pragma mark - UPnP
  50. @class BasicUPnPDevice;
  51. @interface VLCLocalNetworkServiceUPnP : NSObject <VLCLocalNetworkService>
  52. - (instancetype)initWithUPnPDevice:(BasicUPnPDevice *)device;
  53. @end
  54. NS_ASSUME_NONNULL_END