/*****************************************************
*
* Copyright 2009 Adobe Systems Incorporated. All Rights Reserved.
*
*****************************************************
* The contents of this file are subject to the Mozilla Public License
* Version 1.1 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
* License for the specific language governing rights and limitations
* under the License.
*
*
* The Initial Developer of the Original Code is Adobe Systems Incorporated.
* Portions created by Adobe Systems Incorporated are Copyright (C) 2009 Adobe Systems
* Incorporated. All Rights Reserved.
*
*****************************************************/
package org.osmf.events
{
import flash.events.Event;
/**
* A DRMEvent is dispatched when the properties of a DRMTrait change.
*
* @langversion 3.0
* @playerversion Flash 10.1
* @playerversion AIR 1.5
* @productversion OSMF 1.0
*/
public class DRMEvent extends Event
{
/**
* The DRMEvent.DRM_STATE_CHANGE constant defines the value
* of the type property of the event object for a change to the drmState
* of a DRMTrait.
*
* @eventType DRM_STATE_CHANGE
*
* @langversion 3.0
* @playerversion Flash 10.1
* @playerversion AIR 1.5
* @productversion OSMF 1.0
*/
public static const DRM_STATE_CHANGE:String = "drmStateChange";
/**
* Constructor.
*
* @param type The type of the event.
* @param bubbles Specifies whether the event can bubble up the display list hierarchy.
* @param cancelable Specifies whether the behavior associated with the event can be prevented.
* @param licenseID Specified the unique identifier for this content
* @param prompt The authentication prompt associated with this content.
* @param mediaError The error that describes an authentication failure.
*
* @langversion 3.0
* @playerversion Flash 10.1
* @playerversion AIR 1.5
* @productversion OSMF 1.0
*/
public function DRMEvent(type:String, state:String, bubbles:Boolean=false, cancelable:Boolean=false, start:Date=null, end:Date=null, period:Number=0, serverURL:String=null, token:Object=null, mediaError:MediaError=null)
{
super(type, bubbles, cancelable);
_drmState = state;
_token = token;
_mediaError = mediaError;
_startDate = start;
_endDate = end;
_period = period;
_serverURL = serverURL;
}
/**
* The token returned as a result of a successful authentication.
*
* @langversion 3.0
* @playerversion Flash 10.1
* @playerversion AIR 1.5
* @productversion OSMF 1.0
*/
public function get token():Object
{
return _token;
}
/**
* The error that describes an authentication failure.
*
* @langversion 3.0
* @playerversion Flash 10.1
* @playerversion AIR 1.5
* @productversion OSMF 1.0
*/
public function get mediaError():MediaError
{
return _mediaError;
}
/**
* The start date for the playback window, null if authentication
* hasn't taken place.
*
* @langversion 3.0
* @playerversion Flash 10.1
* @playerversion AIR 1.5
* @productversion OSMF 1.0
*/
public function get startDate():Date
{
return _startDate;
}
/**
* The end date for the playback window, null if authentication
* hasn't taken place.
*
* @langversion 3.0
* @playerversion Flash 10.1
* @playerversion AIR 1.5
* @productversion OSMF 1.0
*/
public function get endDate():Date
{
return _endDate;
}
/**
* The length of the playback window, in seconds; NaN if
* authentication hasn't taken place.
*
* <p>Note that this property will generally be the difference between startDate
* and endDate, but is included as a property because there may be times where
* the duration is known up front, but the start or end dates are not (e.g. a
* one week rental).</p>
*
* @langversion 3.0
* @playerversion Flash 10.1
* @playerversion AIR 1.5
* @productversion OSMF 1.0
*/
public function get period():Number
{
return _period;
}
/**
* The current state of the DRM trait. Possible values
* are listed on the DRMState enumeration.
*
* @langversion 3.0
* @playerversion Flash 10.1
* @playerversion AIR 1.5
* @productversion OSMF 1.0
*/
public function get drmState():String
{
return _drmState;
}
/**
* The authentication prompt for the DRM content associated with this DRMEvent. For
* localized authentication, this may be an id.
*/
public function get serverURL():String
{
return _serverURL;
}
/**
* @private
*/
override public function clone():Event
{
return new DRMEvent(type, _drmState, bubbles, cancelable, _startDate, _endDate, _period, _serverURL, _token, _mediaError);
}
private var _drmState:String;
private var _startDate:Date;
private var _endDate:Date;
private var _period:Number;
private var _serverURL:String;
private var _token:Object;
private var _mediaError:MediaError;
}
}