private static MasterSessionModel GetMaster(this IDevice device) { try { var endpointVolume = (IAudioEndpointVolume)device.Activate(new Guid(GuidValue.External.IAudioEndpointVolume)); var volumeHandler = new MasterVolumeNotificationHandler(endpointVolume); volumeHandler.RegisterMVolumeNotifications(); var masterVolume = new MasterAudioSessionVolume(endpointVolume); float volume = masterVolume.GetVolume(); bool muteState = masterVolume.GetMute(); ImageSource icon = device.GetIconSource(); string deviceName = device.GetFriendlyName(); string deviceDesc = device.GetDeviceDesc(); string id = device.GetId(); return(new MasterSessionModel(deviceName, deviceDesc, Convert.ToInt32(volume * 100), muteState, id, icon, masterVolume, volumeHandler)); } catch (Exception e) { Logger.Error("Failed to create master session", e); throw; } }
/// <summary> /// Stellt den Empfang einer Quelle sicher. /// </summary> /// <param name="source">Die gewünschte Quelle.</param> public void EnsureFeed(SourceSelection source) { // Unregister all outstanding requests ResetFeeds(); // Stop current reader if active - and wait for cancel to finish if (m_groupReader != null) { m_groupReader.Cancel(); m_groupReader.Wait(); } // Create new m_groupReader = ProviderDevice.Activate(source); m_feeds = _NoFeeds; // Start processing m_feedAwaiter = m_groupReader.ContinueWith(task => { // Load feed data var sources = task.Result; if (sources != null) { if (IsAllocated) { return(m_feeds = sources.Select(sourceOnGroup => new Feed(sourceOnGroup, this)).ToArray()); } } // None return(null); }); }
internal static OutputDeviceModel GetOutputDeviceModel(this IDevice device, IDeviceStateNotificationHandler deviceStateNotificationHandler) { try { var sessionManager = (IAudioSessionManager2)device.Activate(new Guid(GuidValue.External.IAudioSessionManager2)); sessionManager.GetSessionEnumerator(out IAudioSessionEnumerator sessionEnum); var sessions = device.GetCurrentSessionList(sessionEnum); var sessionProvider = new AudioSessionProvider(sessionManager); var master = device.GetMaster(); return(new OutputDeviceModel(device, deviceStateNotificationHandler, sessionProvider, master, sessions)); } catch (Exception e) { Logger.Error("Failed to create output device model", e); return(null); } }
private void InstallXapSynchronous(object pathToXap) { Guid? guid; Version version; bool flag; _device.Activate(); var tempFile = Path.GetTempFileName(); File.Copy((string)pathToXap, tempFile, true); Utils.ReadWMAppManifestXaml(tempFile, out guid, out version, out flag); var iconFile = Utils.ExtractIconFile(tempFile); if (_device.GetInstalledApplications().Any(x => x.ProductID == guid.Value)) { _lastApp = _device.GetApplication(guid.Value); } else { _lastApp = _device.InstallApplication(guid.Value, guid.Value, "NormalApp", iconFile, tempFile); } _lastApp.Launch(); XapInstalled(this, null); }