Bumping manifests a=b2g-bump
[gecko.git] / dom / tv / TVChannel.h
blobc56921d38a1b254fec9a5bef429e715d0c8fe624
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 #ifndef mozilla_dom_TVChannel_h
8 #define mozilla_dom_TVChannel_h
10 #include "mozilla/DOMEventTargetHelper.h"
11 // Include TVChannelBinding.h since enum TVChannelType can't be forward declared.
12 #include "mozilla/dom/TVChannelBinding.h"
14 class nsITVChannelData;
15 class nsITVService;
17 namespace mozilla {
18 namespace dom {
20 class Promise;
21 class TVProgram;
22 class TVSource;
24 class TVChannel MOZ_FINAL : public DOMEventTargetHelper
26 public:
27 NS_DECL_ISUPPORTS_INHERITED
28 NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(TVChannel, DOMEventTargetHelper)
30 static already_AddRefed<TVChannel> Create(nsPIDOMWindow* aWindow,
31 TVSource* aSource,
32 nsITVChannelData* aData);
34 // WebIDL (internal functions)
36 virtual JSObject* WrapObject(JSContext *aCx) MOZ_OVERRIDE;
38 nsresult DispatchTVEvent(nsIDOMEvent* aEvent);
40 // WebIDL (public APIs)
42 already_AddRefed<Promise> GetPrograms(const TVGetProgramsOptions& aOptions,
43 ErrorResult& aRv);
45 already_AddRefed<Promise> GetCurrentProgram(ErrorResult& aRv);
47 void GetNetworkId(nsAString& aNetworkId) const;
49 void GetTransportStreamId(nsAString& aTransportStreamId) const;
51 void GetServiceId(nsAString& aServiceId) const;
53 already_AddRefed<TVSource> Source() const;
55 TVChannelType Type() const;
57 void GetName(nsAString& aName) const;
59 void GetNumber(nsAString& aNumber) const;
61 bool IsEmergency() const;
63 bool IsFree() const;
65 private:
66 TVChannel(nsPIDOMWindow* aWindow,
67 TVSource* aSource);
69 ~TVChannel();
71 bool Init(nsITVChannelData* aData);
73 nsCOMPtr<nsITVService> mTVService;
74 nsRefPtr<TVSource> mSource;
75 nsString mNetworkId;
76 nsString mTransportStreamId;
77 nsString mServiceId;
78 TVChannelType mType;
79 nsString mNumber;
80 nsString mName;
81 bool mIsEmergency;
82 bool mIsFree;
85 } // namespace dom
86 } // namespace mozilla
88 #endif // mozilla_dom_TVChannel_h