internal void RegisterHmeResource(long id, IHmeResource hmeResource) { lock (_resourceManager) { _resourceManager.AddHmeResource(id, hmeResource); } }
private IHmeResource ResourceToHmeResource(Events.ResourceInfo resourceInfo, Resource resource) { IHmeResource hmeResource = null; lock (_resourceManager) { if (_resourceManager.TryGetHmeResource(resourceInfo.ResourceId, out hmeResource)) { return(hmeResource); } } if (resource.IsMusic) { hmeResource = new StreamedMusic(this, resource.Name, resourceInfo.ResourceId); } else if (resource.IsResourceType(ResourceType.Image)) { hmeResource = new ImageResource(this, resource.Name, resourceInfo.ResourceId); } else if (resource.IsResourceType(ResourceType.Sound)) { hmeResource = new Sound(this, resource.Name, resourceInfo.ResourceId); } else if (resource.IsResourceType(ResourceType.TrueTypeFont)) { hmeResource = new TrueTypeFontResource(this, resource.Name, resourceInfo.ResourceId); } else { hmeResource = new GenericResource(this, resource.Name, resourceInfo.ResourceId); } return(hmeResource); }
internal void OnResourceInfoReceived(Events.ResourceInfo resourceInfo) { if (resourceInfo.Status == (long)ResourceStatus.Error) { int errorCode; string value; if (!resourceInfo.Info.TryGetValue("error.code", out value) || !int.TryParse(value, out errorCode)) { errorCode = (int)ResourceErrorCode.Unknown; } string errorText; if (!resourceInfo.Info.TryGetValue("error.text", out errorText)) { errorText = string.Empty; } IHmeResource hmeResource = null; lock (_resourceManager) { Resource resource; if (_resourceManager.TryGetResource(resourceInfo.ResourceId, out resource)) { hmeResource = ResourceToHmeResource(resourceInfo, resource); } } EventHandler <ResourceErrorArgs> handler = ResourceErrorOccurred; if (handler != null) { handler(this, new ResourceErrorArgs(hmeResource, (ResourceErrorCode)errorCode, errorText)); } } else { IHmeResource hmeResource = null; lock (_resourceManager) { Resource resource; if (_resourceManager.TryGetResource(resourceInfo.ResourceId, out resource)) { hmeResource = ResourceToHmeResource(resourceInfo, resource); } } EventHandler <ResourceStateChangedArgs> handler = ResourceStateChanged; if (handler != null) { handler(this, new ResourceStateChangedArgs(hmeResource, (ResourceStatus)resourceInfo.Status, resourceInfo.Info)); } } }
/// <summary> /// Tests equality between two resources /// </summary> /// <param name="other">Must be a TrueTypeFontResource.</param> /// <returns>true if the resources represent the same item; false otherwise.</returns> public bool Equals(IHmeResource other) { return(Equals((object)other)); }
public bool Equals(IHmeResource other) { return(ReferenceEquals(this, other)); }
/// <summary> /// Creates a <see cref="ResourceStateChangedArgs"/>. /// </summary> /// <param name="resource">The resource that changed state.</param> /// <param name="status">The status of the resource.</param> /// <param name="info">A collection of name/value pairs defining additional resource information.</param> public ResourceStateChangedArgs(IHmeResource resource, ResourceStatus status, Dictionary <string, string> info) { _resource = resource; _status = status; _resourceInfo = info; }
/// <summary> /// Creates a <see cref="ResourceErrorArgs"/>. /// </summary> /// <param name="resource">The resource with an error.</param> /// <param name="code">The code for the error.</param> /// <param name="text">A textual representation of the error.</param> public ResourceErrorArgs(IHmeResource resource, ResourceErrorCode code, string text) { _resource = resource; _code = code; _text = text; }
internal void AddHmeResource(long id, IHmeResource hmeResource) { _hmeResources.Add(id, hmeResource); }
internal bool TryGetHmeResource(long id, out IHmeResource hmeResource) { return(_hmeResources.TryGetValue(id, out hmeResource)); }