/// <summary> /// Create a sample stream from a WMA file via user callback functions. /// </summary> /// <param name="handlers">The user defined file functions. </param> /// <param name="configs">Configure of <see cref="WmaStream" />.</param> /// <param name="systemType">File system to use.</param> /// <param name="user">User instance data to pass to the callback functions. </param> public WmaStream(FileHandlers handlers, WmaStreamCreateConfig configs, StreamFileSystemType systemType, IntPtr user) { Handle = WmaModule.WmaStreamCreateFileUserFunction.CheckResult( WmaModule.WmaStreamCreateFileUserFunction.Delegate(systemType, configs, ref handlers, user)); }
/// <summary> /// Creates a sample stream from a WMA file. /// </summary> /// <param name="file">File name.</param> /// <param name="configs">Configure of <see cref="WmaStream" />.</param> /// <param name="offset">File offset to begin streaming from.</param> /// <param name="length">Data length... 0 = use all data up to the end of the file.</param> public WmaStream(String file, WmaStreamCreateConfig configs, uint offset, uint length) { configs |= WmaStreamCreateConfig.Unicode; using (var fileNameHandle = InteropHelper.StringToPtr(file)) { Handle = WmaModule.WmaStreamCreateFileFunction.CheckResult( WmaModule.WmaStreamCreateFileFunction.Delegate(false, fileNameHandle.Handle, offset, length, configs)); } }
/// <summary> /// Creates a sample stream from a WMA file, optionally with a user name and password to authenticate. . /// </summary> /// <param name="file">File name.</param> /// <param name="configs">Configure of <see cref="WmaStream" />.</param> /// <param name="offset">File offset to begin streaming from.</param> /// <param name="length">Data length... 0 = use all data up to the end of the file.</param> /// <param name="user"> /// User name to use in connecting to the server... if either this or pass is NULL, then no user /// name/password is sent to the server. /// </param> /// <param name="password">Password to use in connecting to the server. </param> public WmaStream(String file, String user, String password, WmaStreamCreateConfig configs, uint offset, uint length) { configs |= WmaStreamCreateConfig.Unicode; using (var fileNameHandle = InteropHelper.StringToPtr(file)) { using (var userHandle = InteropHelper.StringToPtr(user)) { using (var passwordHandle = InteropHelper.StringToPtr(password)) { Handle = WmaModule.WmaStreamCreateFileAuthFunction.CheckResult( WmaModule.WmaStreamCreateFileAuthFunction.Delegate(false, fileNameHandle.Handle, offset, length, configs, userHandle.Handle, passwordHandle.Handle)); } } } }
/// <summary> /// Creates a sample stream from a WMA memory stream. /// </summary> /// <param name="stream">Memory stream.</param> /// <param name="configs">Configure of <see cref="WmaStream" />.</param> public WmaStream(MemoryStream stream, WmaStreamCreateConfig configs) { ArraySegment <byte> bufferSegment; byte[] buffer = null; if (stream.TryGetBuffer(out bufferSegment)) { buffer = bufferSegment.Array; } else { buffer = stream.ToArray(); } GCHandle bufferHandle = GCHandle.Alloc(buffer); Handle = WmaModule.WmaStreamCreateFileFunction.CheckResult( WmaModule.WmaStreamCreateFileFunction.Delegate(true, bufferHandle.AddrOfPinnedObject(), 0, (uint)stream.Length, configs)); bufferHandle.Free(); }
/// <summary> /// Creates a sample stream from a WMA file. /// </summary> /// <param name="file">File name.</param> /// <param name="configs">Configure of <see cref="WmaStream" />.</param> public WmaStream(String file, WmaStreamCreateConfig configs) : this(file, configs, 0, 0) { }
/// <summary> /// Create a sample stream from a WMA .Net stream. /// </summary> /// <param name="stream">The .Net stream.</param> /// <param name="configs">Configure of <see cref="WmaStream" />.</param> /// <param name="systemType">File system to use.</param> public WmaStream(Stream stream, WmaStreamCreateConfig configs, StreamFileSystemType systemType) : this(stream.AsBassStream(), configs, systemType) { }
/// <summary> /// Create a sample stream from a WMA Bass stream. /// </summary> /// <param name="bassStream">The Bass stream.</param> /// <param name="configs">Configure of <see cref="WmaStream" />.</param> /// <param name="systemType">File system to use.</param> public WmaStream(BassStream bassStream, WmaStreamCreateConfig configs, StreamFileSystemType systemType) : this(bassStream.StreamHandlers, configs, systemType, IntPtr.Zero) { }
/// <summary> /// Creates a sample stream from a WMA file, optionally with a user name and password to authenticate. /// </summary> /// <param name="file">File name.</param> /// <param name="configs">Configure of <see cref="WmaStream" />.</param> /// <param name="user"> /// User name to use in connecting to the server... if either this or pass is NULL, then no user /// name/password is sent to the server. /// </param> /// <param name="password">Password to use in connecting to the server. </param> public WmaStream(String file, String user, String password, WmaStreamCreateConfig configs) : this(file, user, password, configs, 0, 0) { }
/// <summary> /// Creates a sample stream from a WMA memory stream. /// </summary> /// <param name="stream">Memory stream.</param> /// <param name="configs">Configure of <see cref="WmaStream" />.</param> public WmaStream(MemoryStream stream, WmaStreamCreateConfig configs) { ArraySegment<byte> bufferSegment; byte[] buffer = null; if (stream.TryGetBuffer(out bufferSegment)) { buffer = bufferSegment.Array; } else { buffer = stream.ToArray(); } GCHandle bufferHandle = GCHandle.Alloc(buffer); Handle = WmaModule.WmaStreamCreateFileFunction.CheckResult( WmaModule.WmaStreamCreateFileFunction.Delegate(true, bufferHandle.AddrOfPinnedObject(), 0, (uint) stream.Length, configs)); bufferHandle.Free(); }