VLCNetworkServerBrowser-Protocol.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /*****************************************************************************
  2. * VLCNetworkServerBrowser-Protocol.h
  3. * VLC for iOS
  4. *****************************************************************************
  5. * Copyright (c) 2015-2018 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 VLCNetworkServerBrowserItem;
  15. @protocol VLCNetworkServerBrowserDelegate;
  16. @protocol VLCNetworkServerBrowser <NSObject>
  17. @required
  18. @property (nonatomic, weak) id <VLCNetworkServerBrowserDelegate> delegate;
  19. @property (nonatomic, readonly, nullable) NSString *title;
  20. @property (nonatomic, readonly, copy) VLCMediaList *mediaList;
  21. @property (nonatomic, copy, readonly) NSArray<id<VLCNetworkServerBrowserItem>> *items;
  22. - (void)update;
  23. @end
  24. @protocol VLCNetworkServerBrowserDelegate <NSObject>
  25. - (void) networkServerBrowserDidUpdate:(id<VLCNetworkServerBrowser>)networkBrowser;
  26. - (void) networkServerBrowser:(id<VLCNetworkServerBrowser>)networkBrowser requestDidFailWithError:(NSError *)error;
  27. @optional
  28. - (void)networkServerBrowserShouldPopView:(id<VLCNetworkServerBrowser>)networkBrowser;
  29. - (void)networkServerBrowserEndParsing:(id<VLCNetworkServerBrowser>)networkBrowser;
  30. @end
  31. @protocol VLCNetworkServerBrowserItem <NSObject>
  32. @required
  33. @property (nonatomic, readonly, getter=isContainer) BOOL container;
  34. // if item is container browser is the browser for the container
  35. @property (nonatomic, readonly, nullable) id<VLCNetworkServerBrowser> containerBrowser;
  36. @property (nonatomic, readonly, nullable) VLCMedia *media;
  37. @property (nonatomic, readonly) NSString *name;
  38. @property (nonatomic, readonly, nullable) NSURL *URL;
  39. @property (nonatomic, readonly, nullable) NSNumber *fileSizeBytes;
  40. @optional
  41. @property (nonatomic, readonly, nullable) NSString *filename;
  42. @property (nonatomic, readonly, nullable) NSString *duration;
  43. @property (nonatomic, readonly, nullable) NSString *subtitleType;
  44. @property (nonatomic, readonly, nullable) NSURL *subtitleURL;
  45. @property (nonatomic, readonly, nullable) NSURL *thumbnailURL;
  46. @property (nonatomic, getter=isDownloadable, readonly) BOOL downloadable;
  47. @end
  48. NS_ASSUME_NONNULL_END