OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
3 * Copyright (C) 2011 Ericsson AB. All rights reserved. | 3 * Copyright (C) 2011 Ericsson AB. All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
44 , public MediaStreamDescriptorClient | 44 , public MediaStreamDescriptorClient |
45 , public ContextLifecycleObserver { | 45 , public ContextLifecycleObserver { |
46 REFCOUNTED_GARBAGE_COLLECTED_EVENT_TARGET(MediaStream); | 46 REFCOUNTED_GARBAGE_COLLECTED_EVENT_TARGET(MediaStream); |
47 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(MediaStream); | 47 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(MediaStream); |
48 DEFINE_WRAPPERTYPEINFO(); | 48 DEFINE_WRAPPERTYPEINFO(); |
49 public: | 49 public: |
50 static MediaStream* create(ExecutionContext*); | 50 static MediaStream* create(ExecutionContext*); |
51 static MediaStream* create(ExecutionContext*, MediaStream*); | 51 static MediaStream* create(ExecutionContext*, MediaStream*); |
52 static MediaStream* create(ExecutionContext*, const MediaStreamTrackVector&)
; | 52 static MediaStream* create(ExecutionContext*, const MediaStreamTrackVector&)
; |
53 static MediaStream* create(ExecutionContext*, PassRefPtr<MediaStreamDescript
or>); | 53 static MediaStream* create(ExecutionContext*, PassRefPtr<MediaStreamDescript
or>); |
54 virtual ~MediaStream(); | 54 ~MediaStream() override; |
55 | 55 |
56 // DEPRECATED | 56 // DEPRECATED |
57 String label() const { return m_descriptor->id(); } | 57 String label() const { return m_descriptor->id(); } |
58 | 58 |
59 String id() const { return m_descriptor->id(); } | 59 String id() const { return m_descriptor->id(); } |
60 | 60 |
61 void addTrack(MediaStreamTrack*, ExceptionState&); | 61 void addTrack(MediaStreamTrack*, ExceptionState&); |
62 void removeTrack(MediaStreamTrack*, ExceptionState&); | 62 void removeTrack(MediaStreamTrack*, ExceptionState&); |
63 MediaStreamTrack* getTrackById(String); | 63 MediaStreamTrack* getTrackById(String); |
64 MediaStream* clone(ExecutionContext*); | 64 MediaStream* clone(ExecutionContext*); |
65 | 65 |
66 MediaStreamTrackVector getAudioTracks() const { return m_audioTracks; } | 66 MediaStreamTrackVector getAudioTracks() const { return m_audioTracks; } |
67 MediaStreamTrackVector getVideoTracks() const { return m_videoTracks; } | 67 MediaStreamTrackVector getVideoTracks() const { return m_videoTracks; } |
68 MediaStreamTrackVector getTracks(); | 68 MediaStreamTrackVector getTracks(); |
69 | 69 |
70 bool active() const { return m_descriptor->active(); } | 70 bool active() const { return m_descriptor->active(); } |
71 bool ended() const; | 71 bool ended() const; |
72 void stop(); | 72 void stop(); |
73 | 73 |
74 DEFINE_ATTRIBUTE_EVENT_LISTENER(active); | 74 DEFINE_ATTRIBUTE_EVENT_LISTENER(active); |
75 DEFINE_ATTRIBUTE_EVENT_LISTENER(inactive); | 75 DEFINE_ATTRIBUTE_EVENT_LISTENER(inactive); |
76 DEFINE_ATTRIBUTE_EVENT_LISTENER(ended); | 76 DEFINE_ATTRIBUTE_EVENT_LISTENER(ended); |
77 DEFINE_ATTRIBUTE_EVENT_LISTENER(addtrack); | 77 DEFINE_ATTRIBUTE_EVENT_LISTENER(addtrack); |
78 DEFINE_ATTRIBUTE_EVENT_LISTENER(removetrack); | 78 DEFINE_ATTRIBUTE_EVENT_LISTENER(removetrack); |
79 | 79 |
80 void trackEnded(); | 80 void trackEnded(); |
81 | 81 |
82 // MediaStreamDescriptorClient | 82 // MediaStreamDescriptorClient |
83 virtual void streamEnded() override; | 83 void streamEnded() override; |
84 | 84 |
85 MediaStreamDescriptor* descriptor() const { return m_descriptor.get(); } | 85 MediaStreamDescriptor* descriptor() const { return m_descriptor.get(); } |
86 | 86 |
87 // EventTarget | 87 // EventTarget |
88 virtual const AtomicString& interfaceName() const override; | 88 const AtomicString& interfaceName() const override; |
89 virtual ExecutionContext* executionContext() const override; | 89 ExecutionContext* executionContext() const override; |
90 | 90 |
91 // URLRegistrable | 91 // URLRegistrable |
92 virtual URLRegistry& registry() const override; | 92 URLRegistry& registry() const override; |
93 | 93 |
94 // Oilpan: need to eagerly unregister as m_descriptor client. | 94 // Oilpan: need to eagerly unregister as m_descriptor client. |
95 EAGERLY_FINALIZE(); | 95 EAGERLY_FINALIZE(); |
96 DECLARE_VIRTUAL_TRACE(); | 96 DECLARE_VIRTUAL_TRACE(); |
97 | 97 |
98 private: | 98 private: |
99 MediaStream(ExecutionContext*, PassRefPtr<MediaStreamDescriptor>); | 99 MediaStream(ExecutionContext*, PassRefPtr<MediaStreamDescriptor>); |
100 MediaStream(ExecutionContext*, const MediaStreamTrackVector& audioTracks, co
nst MediaStreamTrackVector& videoTracks); | 100 MediaStream(ExecutionContext*, const MediaStreamTrackVector& audioTracks, co
nst MediaStreamTrackVector& videoTracks); |
101 | 101 |
102 // ContextLifecycleObserver | 102 // ContextLifecycleObserver |
103 virtual void contextDestroyed() override; | 103 void contextDestroyed() override; |
104 | 104 |
105 // MediaStreamDescriptorClient | 105 // MediaStreamDescriptorClient |
106 virtual void addRemoteTrack(MediaStreamComponent*) override; | 106 void addRemoteTrack(MediaStreamComponent*) override; |
107 virtual void removeRemoteTrack(MediaStreamComponent*) override; | 107 void removeRemoteTrack(MediaStreamComponent*) override; |
108 | 108 |
109 bool emptyOrOnlyEndedTracks(); | 109 bool emptyOrOnlyEndedTracks(); |
110 | 110 |
111 void scheduleDispatchEvent(PassRefPtrWillBeRawPtr<Event>); | 111 void scheduleDispatchEvent(PassRefPtrWillBeRawPtr<Event>); |
112 void scheduledEventTimerFired(Timer<MediaStream>*); | 112 void scheduledEventTimerFired(Timer<MediaStream>*); |
113 | 113 |
114 bool m_stopped; | 114 bool m_stopped; |
115 | 115 |
116 MediaStreamTrackVector m_audioTracks; | 116 MediaStreamTrackVector m_audioTracks; |
117 MediaStreamTrackVector m_videoTracks; | 117 MediaStreamTrackVector m_videoTracks; |
118 RefPtr<MediaStreamDescriptor> m_descriptor; | 118 RefPtr<MediaStreamDescriptor> m_descriptor; |
119 | 119 |
120 Timer<MediaStream> m_scheduledEventTimer; | 120 Timer<MediaStream> m_scheduledEventTimer; |
121 WillBeHeapVector<RefPtrWillBeMember<Event>> m_scheduledEvents; | 121 WillBeHeapVector<RefPtrWillBeMember<Event>> m_scheduledEvents; |
122 }; | 122 }; |
123 | 123 |
124 typedef HeapVector<Member<MediaStream>> MediaStreamVector; | 124 typedef HeapVector<Member<MediaStream>> MediaStreamVector; |
125 | 125 |
126 } // namespace blink | 126 } // namespace blink |
127 | 127 |
128 #endif // MediaStream_h | 128 #endif // MediaStream_h |
OLD | NEW |