michael@0: /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-*/ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this file, michael@0: * You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #include "MediaStreamTrack.h" michael@0: michael@0: #include "DOMMediaStream.h" michael@0: #include "nsIUUIDGenerator.h" michael@0: #include "nsServiceManagerUtils.h" michael@0: michael@0: namespace mozilla { michael@0: namespace dom { michael@0: michael@0: MediaStreamTrack::MediaStreamTrack(DOMMediaStream* aStream, TrackID aTrackID) michael@0: : mStream(aStream), mTrackID(aTrackID), mEnded(false), mEnabled(true) michael@0: { michael@0: SetIsDOMBinding(); michael@0: michael@0: memset(&mID, 0, sizeof(mID)); michael@0: michael@0: nsresult rv; michael@0: nsCOMPtr uuidgen = michael@0: do_GetService("@mozilla.org/uuid-generator;1", &rv); michael@0: if (uuidgen) { michael@0: uuidgen->GenerateUUIDInPlace(&mID); michael@0: } michael@0: } michael@0: michael@0: MediaStreamTrack::~MediaStreamTrack() michael@0: { michael@0: } michael@0: michael@0: NS_IMPL_CYCLE_COLLECTION_INHERITED(MediaStreamTrack, DOMEventTargetHelper, michael@0: mStream) michael@0: michael@0: NS_IMPL_ADDREF_INHERITED(MediaStreamTrack, DOMEventTargetHelper) michael@0: NS_IMPL_RELEASE_INHERITED(MediaStreamTrack, DOMEventTargetHelper) michael@0: NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(MediaStreamTrack) michael@0: NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) michael@0: michael@0: void michael@0: MediaStreamTrack::GetId(nsAString& aID) michael@0: { michael@0: char chars[NSID_LENGTH]; michael@0: mID.ToProvidedString(chars); michael@0: aID = NS_ConvertASCIItoUTF16(chars); michael@0: } michael@0: michael@0: void michael@0: MediaStreamTrack::SetEnabled(bool aEnabled) michael@0: { michael@0: mEnabled = aEnabled; michael@0: mStream->SetTrackEnabled(mTrackID, aEnabled); michael@0: } michael@0: michael@0: } michael@0: }