public OpenTKSound(string filename, SoundDevice device) : base(filename, device) { soundData = new WaveSoundData("Content/" + filename + ".wav"); length = GetLengthInSeconds(); bufferHandle = CreateNativeBuffer(); }
public XnaVideo(string filename, XnaMedia.VideoPlayer player, XnaDevice graphicsDevice, SoundDevice soundDevice) : base(filename, soundDevice) { this.player = player; this.graphicsDevice = graphicsDevice; image = new VideoImage(graphicsDevice); }
public OpenTKMusic(string filename, SoundDevice device) : base(filename, device) { musicStream = new Mp3Stream(File.OpenRead("Content/" + filename + ".mp3")); format = musicStream.Channels == 2 ? ALFormat.Stereo16 : ALFormat.Mono16; source = AL.GenSource(); buffers = AL.GenBuffers(NumberOfBuffers); bufferData = new byte[BufferSize]; }
bool ShowAudioDeviceDropdown(DropDownButtonWidget dropdown, SoundDevice[] devices) { var i = 0; var options = devices.ToDictionary(d => (i++).ToString(), d => d); Func<string, ScrollItemWidget, ScrollItemWidget> setupItem = (o, itemTemplate) => { var item = ScrollItemWidget.Setup(itemTemplate, () => soundDevice == options[o], () => soundDevice = options[o]); var deviceLabel = item.Get<LabelWidget>("LABEL"); var font = Game.Renderer.Fonts[deviceLabel.Font]; var label = WidgetUtils.TruncateText(options[o].Label, deviceLabel.Bounds.Width, font); deviceLabel.GetText = () => label; return item; }; dropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 500, options.Keys, setupItem); return true; }
Action ResetAudioPanel(Widget panel) { var ss = Game.Settings.Sound; var dss = new SoundSettings(); return () => { ss.SoundVolume = dss.SoundVolume; ss.MusicVolume = dss.MusicVolume; ss.VideoVolume = dss.VideoVolume; ss.CashTicks = dss.CashTicks; ss.Mute = dss.Mute; ss.Device = dss.Device; ss.Engine = dss.Engine; panel.Get<SliderWidget>("SOUND_VOLUME").Value = ss.SoundVolume; Game.Sound.SoundVolume = ss.SoundVolume; panel.Get<SliderWidget>("MUSIC_VOLUME").Value = ss.MusicVolume; Game.Sound.MusicVolume = ss.MusicVolume; panel.Get<SliderWidget>("VIDEO_VOLUME").Value = ss.VideoVolume; Game.Sound.VideoVolume = ss.VideoVolume; Game.Sound.UnmuteAudio(); soundDevice = Game.Sound.AvailableDevices().First(); }; }
Action InitAudioPanel(Widget panel) { var ss = Game.Settings.Sound; BindCheckboxPref(panel, "CASH_TICKS", ss, "CashTicks"); BindCheckboxPref(panel, "MUTE_SOUND", ss, "Mute"); BindSliderPref(panel, "SOUND_VOLUME", ss, "SoundVolume"); BindSliderPref(panel, "MUSIC_VOLUME", ss, "MusicVolume"); BindSliderPref(panel, "VIDEO_VOLUME", ss, "VideoVolume"); var muteCheckbox = panel.Get<CheckboxWidget>("MUTE_SOUND"); var muteCheckboxOnClick = muteCheckbox.OnClick; muteCheckbox.OnClick = () => { muteCheckboxOnClick(); if (ss.Mute) Game.Sound.MuteAudio(); else Game.Sound.UnmuteAudio(); }; if (!ss.Mute) { panel.Get<SliderWidget>("SOUND_VOLUME").OnChange += x => Game.Sound.SoundVolume = x; panel.Get<SliderWidget>("MUSIC_VOLUME").OnChange += x => Game.Sound.MusicVolume = x; panel.Get<SliderWidget>("VIDEO_VOLUME").OnChange += x => Game.Sound.VideoVolume = x; } var devices = Game.Sound.AvailableDevices(); soundDevice = devices.FirstOrDefault(d => d.Engine == ss.Engine && d.Device == ss.Device) ?? devices.First(); var audioDeviceDropdown = panel.Get<DropDownButtonWidget>("AUDIO_DEVICE"); audioDeviceDropdown.OnMouseDown = _ => ShowAudioDeviceDropdown(audioDeviceDropdown, devices); var deviceFont = Game.Renderer.Fonts[audioDeviceDropdown.Font]; var deviceLabel = new CachedTransform<SoundDevice, string>( s => WidgetUtils.TruncateText(s.Label, audioDeviceDropdown.UsableWidth, deviceFont)); audioDeviceDropdown.GetText = () => deviceLabel.Update(soundDevice); return () => { ss.Device = soundDevice.Device; ss.Engine = soundDevice.Engine; }; }
Action InitAudioPanel(Widget panel) { var ss = Game.Settings.Sound; BindCheckboxPref(panel, "SHELLMAP_MUSIC", ss, "MapMusic"); BindCheckboxPref(panel, "CASH_TICKS", ss, "CashTicks"); BindSliderPref(panel, "SOUND_VOLUME", ss, "SoundVolume"); BindSliderPref(panel, "MUSIC_VOLUME", ss, "MusicVolume"); BindSliderPref(panel, "VIDEO_VOLUME", ss, "VideoVolume"); // Update volume immediately panel.Get<SliderWidget>("SOUND_VOLUME").OnChange += x => Sound.SoundVolume = x; panel.Get<SliderWidget>("MUSIC_VOLUME").OnChange += x => Sound.MusicVolume = x; panel.Get<SliderWidget>("VIDEO_VOLUME").OnChange += x => Sound.VideoVolume = x; var devices = Sound.AvailableDevices(); soundDevice = devices.FirstOrDefault(d => d.Engine == ss.Engine && d.Device == ss.Device) ?? devices.First(); var audioDeviceDropdown = panel.Get<DropDownButtonWidget>("AUDIO_DEVICE"); audioDeviceDropdown.OnMouseDown = _ => ShowAudioDeviceDropdown(audioDeviceDropdown, devices); audioDeviceDropdown.GetText = () => soundDevice.Label; return () => { ss.Device = soundDevice.Device; ss.Engine = soundDevice.Engine; }; }
protected SharpDXVideo(string contentName, SoundDevice soundDevice) : base(contentName, soundDevice) { CreateBuffers(); }
private static void InitializeWindowAndSoundDevice(Window window, SoundDevice soundDevice) { AppWindow = window; SoundDevice = soundDevice; }
public SettingsMenuLogic(Action onExit) { bg = Ui.Root.Get<BackgroundWidget>("SETTINGS_MENU"); var tabs = bg.Get<ContainerWidget>("TAB_CONTAINER"); //Tabs tabs.Get<ButtonWidget>("GENERAL").OnClick = () => FlipToTab("GENERAL_PANE"); tabs.Get<ButtonWidget>("AUDIO").OnClick = () => FlipToTab("AUDIO_PANE"); tabs.Get<ButtonWidget>("DISPLAY").OnClick = () => FlipToTab("DISPLAY_PANE"); tabs.Get<ButtonWidget>("KEYS").OnClick = () => FlipToTab("KEYS_PANE"); tabs.Get<ButtonWidget>("DEBUG").OnClick = () => FlipToTab("DEBUG_PANE"); FlipToTab("GENERAL_PANE"); //General var general = bg.Get("GENERAL_PANE"); var name = general.Get<TextFieldWidget>("NAME"); name.Text = Game.Settings.Player.Name; name.OnLoseFocus = () => { name.Text = name.Text.Trim(); if (name.Text.Length == 0) name.Text = Game.Settings.Player.Name; else Game.Settings.Player.Name = name.Text; }; name.OnEnterKey = () => { name.YieldKeyboardFocus(); return true; }; var edgescrollCheckbox = general.Get<CheckboxWidget>("EDGE_SCROLL"); edgescrollCheckbox.IsChecked = () => Game.Settings.Game.ViewportEdgeScroll; edgescrollCheckbox.OnClick = () => Game.Settings.Game.ViewportEdgeScroll ^= true; var edgeScrollSlider = general.Get<SliderWidget>("EDGE_SCROLL_AMOUNT"); edgeScrollSlider.Value = Game.Settings.Game.ViewportEdgeScrollStep; edgeScrollSlider.OnChange += x => Game.Settings.Game.ViewportEdgeScrollStep = x; var inversescroll = general.Get<CheckboxWidget>("INVERSE_SCROLL"); inversescroll.IsChecked = () => Game.Settings.Game.MouseScroll == MouseScrollType.Inverted; inversescroll.OnClick = () => Game.Settings.Game.MouseScroll = (Game.Settings.Game.MouseScroll == MouseScrollType.Inverted) ? MouseScrollType.Standard : MouseScrollType.Inverted; var teamchatCheckbox = general.Get<CheckboxWidget>("TEAMCHAT_TOGGLE"); teamchatCheckbox.IsChecked = () => Game.Settings.Game.TeamChatToggle; teamchatCheckbox.OnClick = () => Game.Settings.Game.TeamChatToggle ^= true; var showShellmapCheckbox = general.Get<CheckboxWidget>("SHOW_SHELLMAP"); showShellmapCheckbox.IsChecked = () => Game.Settings.Game.ShowShellmap; showShellmapCheckbox.OnClick = () => Game.Settings.Game.ShowShellmap ^= true; var useClassicMouseStyleCheckbox = general.Get<CheckboxWidget>("USE_CLASSIC_MOUSE_STYLE_CHECKBOX"); useClassicMouseStyleCheckbox.IsChecked = () => Game.Settings.Game.UseClassicMouseStyle; useClassicMouseStyleCheckbox.OnClick = () => Game.Settings.Game.UseClassicMouseStyle ^= true; var allowNatDiscoveryCheckbox = general.Get<CheckboxWidget>("ALLOW_NAT_DISCOVERY_CHECKBOX"); allowNatDiscoveryCheckbox.IsChecked = () => Game.Settings.Server.DiscoverNatDevices; allowNatDiscoveryCheckbox.OnClick = () => Game.Settings.Server.DiscoverNatDevices ^= true; // Audio var audio = bg.Get("AUDIO_PANE"); var soundSettings = Game.Settings.Sound; var soundslider = audio.Get<SliderWidget>("SOUND_VOLUME"); soundslider.OnChange += x => Sound.SoundVolume = x; soundslider.Value = Sound.SoundVolume; var musicslider = audio.Get<SliderWidget>("MUSIC_VOLUME"); musicslider.OnChange += x => Sound.MusicVolume = x; musicslider.Value = Sound.MusicVolume; var videoslider = audio.Get<SliderWidget>("VIDEO_VOLUME"); videoslider.OnChange += x => Sound.VideoVolume = x; videoslider.Value = Sound.VideoVolume; var cashticksdropdown = audio.Get<DropDownButtonWidget>("CASH_TICK_TYPE"); cashticksdropdown.OnMouseDown = _ => ShowSoundTickDropdown(cashticksdropdown, soundSettings); cashticksdropdown.GetText = () => soundSettings.SoundCashTickType == SoundCashTicks.Extreme ? "Extreme" : soundSettings.SoundCashTickType == SoundCashTicks.Normal ? "Normal" : "Disabled"; var mapMusicCheckbox = audio.Get<CheckboxWidget>("MAP_MUSIC_CHECKBOX"); mapMusicCheckbox.IsChecked = () => Game.Settings.Sound.MapMusic; mapMusicCheckbox.OnClick = () => Game.Settings.Sound.MapMusic ^= true; var devices = Sound.AvailableDevices(); soundDevice = devices.FirstOrDefault(d => d.Engine == soundSettings.Engine && d.Device == soundSettings.Device) ?? devices.First(); var audioDeviceDropdown = audio.Get<DropDownButtonWidget>("AUDIO_DEVICE"); audioDeviceDropdown.OnMouseDown = _ => ShowAudioDeviceDropdown(audioDeviceDropdown, soundSettings, devices); audioDeviceDropdown.GetText = () => soundDevice.Label; // Display var display = bg.Get("DISPLAY_PANE"); var gs = Game.Settings.Graphics; var windowModeDropdown = display.Get<DropDownButtonWidget>("MODE_DROPDOWN"); windowModeDropdown.OnMouseDown = _ => ShowWindowModeDropdown(windowModeDropdown, gs); windowModeDropdown.GetText = () => gs.Mode == WindowMode.Windowed ? "Windowed" : gs.Mode == WindowMode.Fullscreen ? "Fullscreen" : "Pseudo-Fullscreen"; display.Get("WINDOW_RESOLUTION").IsVisible = () => gs.Mode == WindowMode.Windowed; var windowWidth = display.Get<TextFieldWidget>("WINDOW_WIDTH"); windowWidth.Text = gs.WindowedSize.X.ToString(); var windowHeight = display.Get<TextFieldWidget>("WINDOW_HEIGHT"); windowHeight.Text = gs.WindowedSize.Y.ToString(); var pixelDoubleCheckbox = display.Get<CheckboxWidget>("PIXELDOUBLE_CHECKBOX"); pixelDoubleCheckbox.IsChecked = () => gs.PixelDouble; pixelDoubleCheckbox.OnClick = () => { gs.PixelDouble ^= true; Game.viewport.Zoom = gs.PixelDouble ? 2 : 1; }; var capFrameRateCheckbox = display.Get<CheckboxWidget>("CAPFRAMERATE_CHECKBOX"); capFrameRateCheckbox.IsChecked = () => gs.CapFramerate; capFrameRateCheckbox.OnClick = () => gs.CapFramerate ^= true; var maxFrameRate = display.Get<TextFieldWidget>("MAX_FRAMERATE"); maxFrameRate.Text = gs.MaxFramerate.ToString(); // Keys var keys = bg.Get("KEYS_PANE"); var keyConfig = Game.Settings.Keys; var specialHotkeyList = keys.Get<ScrollPanelWidget>("SPECIALHOTKEY_LIST"); var specialHotkeyTemplate = specialHotkeyList.Get<ScrollItemWidget>("SPECIALHOTKEY_TEMPLATE"); var pauseKey = ScrollItemWidget.Setup(specialHotkeyTemplate, () => false, () => {}); SetupKeyBinding(pauseKey, "Pause the game:", () => keyConfig.PauseKey, k => keyConfig.PauseKey = k); specialHotkeyList.AddChild(pauseKey); var viewportToBase = ScrollItemWidget.Setup(specialHotkeyTemplate, () => false, () => {}); SetupKeyBinding(viewportToBase, "Move Viewport to Base:", () => keyConfig.CycleBaseKey, k => keyConfig.CycleBaseKey = k); specialHotkeyList.AddChild(viewportToBase); var lastEventKey = ScrollItemWidget.Setup(specialHotkeyTemplate, () => false, () => {}); SetupKeyBinding(lastEventKey, "Move Viewport to Last Event:", () => keyConfig.ToLastEventKey, k => keyConfig.ToLastEventKey = k); specialHotkeyList.AddChild(lastEventKey); var viewportToSelectionKey = ScrollItemWidget.Setup(specialHotkeyTemplate, () => false, () => {}); SetupKeyBinding(viewportToSelectionKey, "Move Viewport to Selection:", () => keyConfig.ToSelectionKey, k => keyConfig.ToSelectionKey = k); specialHotkeyList.AddChild(viewportToSelectionKey); var sellKey = ScrollItemWidget.Setup(specialHotkeyTemplate, () => false, () => {}); SetupKeyBinding(sellKey, "Switch to Sell-Cursor:", () => keyConfig.SellKey, k => keyConfig.SellKey = k); specialHotkeyList.AddChild(sellKey); var powerDownKey = ScrollItemWidget.Setup(specialHotkeyTemplate, () => false, () => {}); SetupKeyBinding(powerDownKey, "Switch to Power-Down-Cursor:", () => keyConfig.PowerDownKey, k => keyConfig.PowerDownKey = k); specialHotkeyList.AddChild(powerDownKey); var repairKey = ScrollItemWidget.Setup(specialHotkeyTemplate, () => false, () => {}); SetupKeyBinding(repairKey, "Switch to Repair-Cursor:", () => keyConfig.RepairKey, k => keyConfig.RepairKey = k); specialHotkeyList.AddChild(repairKey); var tabCycleKey = ScrollItemWidget.Setup(specialHotkeyTemplate, () => false, () => {}); SetupKeyBinding(tabCycleKey, "Cycle Tabs (+Shift to Reverse):", () => keyConfig.CycleTabsKey, k => keyConfig.CycleTabsKey = k); specialHotkeyList.AddChild(tabCycleKey); var unitCommandHotkeyList = keys.Get<ScrollPanelWidget>("UNITCOMMANDHOTKEY_LIST"); var unitCommandHotkeyTemplate = unitCommandHotkeyList.Get<ScrollItemWidget>("UNITCOMMANDHOTKEY_TEMPLATE"); var attackKey = ScrollItemWidget.Setup(unitCommandHotkeyTemplate, () => false, () => {}); SetupKeyBinding(attackKey, "Attack Move:", () => keyConfig.AttackMoveKey, k => keyConfig.AttackMoveKey = k); unitCommandHotkeyList.AddChild(attackKey); var stopKey = ScrollItemWidget.Setup(unitCommandHotkeyTemplate, () => false, () => {}); SetupKeyBinding(stopKey, "Stop:", () => keyConfig.StopKey, k => keyConfig.StopKey = k); unitCommandHotkeyList.AddChild(stopKey); var scatterKey = ScrollItemWidget.Setup(unitCommandHotkeyTemplate, () => false, () => {}); SetupKeyBinding(scatterKey, "Scatter:", () => keyConfig.ScatterKey, k => keyConfig.ScatterKey = k); unitCommandHotkeyList.AddChild(scatterKey); var stanceCycleKey = ScrollItemWidget.Setup(unitCommandHotkeyTemplate, () => false, () => {}); SetupKeyBinding(stanceCycleKey, "Cycle Stance:", () => keyConfig.StanceCycleKey, k => keyConfig.StanceCycleKey = k); unitCommandHotkeyList.AddChild(stanceCycleKey); var deployKey = ScrollItemWidget.Setup(unitCommandHotkeyTemplate, () => false, () => {}); SetupKeyBinding(deployKey, "Deploy:", () => keyConfig.DeployKey, k => keyConfig.DeployKey = k); unitCommandHotkeyList.AddChild(deployKey); var guardKey = ScrollItemWidget.Setup(unitCommandHotkeyTemplate, () => false, () => { }); SetupKeyBinding(guardKey, "Guard: ", () => keyConfig.GuardKey, k => keyConfig.GuardKey = k); unitCommandHotkeyList.AddChild(guardKey); // Debug var debug = bg.Get("DEBUG_PANE"); var perfgraphCheckbox = debug.Get<CheckboxWidget>("PERFGRAPH_CHECKBOX"); perfgraphCheckbox.IsChecked = () => Game.Settings.Debug.PerfGraph; perfgraphCheckbox.OnClick = () => Game.Settings.Debug.PerfGraph ^= true; var perftextCheckbox = debug.Get<CheckboxWidget>("PERFTEXT_CHECKBOX"); perftextCheckbox.IsChecked = () => Game.Settings.Debug.PerfText; perftextCheckbox.OnClick = () => Game.Settings.Debug.PerfText ^= true; var sampleSlider = debug.Get<SliderWidget>("PERFTEXT_SAMPLE_AMOUNT"); sampleSlider.Value = sampleSlider.MaximumValue-Game.Settings.Debug.Samples; sampleSlider.OnChange += x => Game.Settings.Debug.Samples = (int)sampleSlider.MaximumValue-(int)Math.Round(x); var checkunsyncedCheckbox = debug.Get<CheckboxWidget>("CHECKUNSYNCED_CHECKBOX"); checkunsyncedCheckbox.IsChecked = () => Game.Settings.Debug.SanityCheckUnsyncedCode; checkunsyncedCheckbox.OnClick = () => Game.Settings.Debug.SanityCheckUnsyncedCode ^= true; var botdebugCheckbox = debug.Get<CheckboxWidget>("BOTDEBUG_CHECKBOX"); botdebugCheckbox.IsChecked = () => Game.Settings.Debug.BotDebug; botdebugCheckbox.OnClick = () => Game.Settings.Debug.BotDebug ^= true; var verboseNatDiscoveryCheckbox = debug.Get<CheckboxWidget>("VERBOSE_NAT_DISCOVERY_CHECKBOX"); verboseNatDiscoveryCheckbox.IsChecked = () => Game.Settings.Server.VerboseNatDiscovery; verboseNatDiscoveryCheckbox.OnClick = () => Game.Settings.Server.VerboseNatDiscovery ^= true; var developerMenuCheckbox = debug.Get<CheckboxWidget>("DEVELOPER_MENU_CHECKBOX"); developerMenuCheckbox.IsChecked = () => Game.Settings.Debug.DeveloperMenu; developerMenuCheckbox.OnClick = () => Game.Settings.Debug.DeveloperMenu ^= true; var showFatalErrorDialog = debug.Get<CheckboxWidget>("SHOW_FATAL_ERROR_DIALOG_CHECKBOX"); showFatalErrorDialog.IsChecked = () => Game.Settings.Debug.ShowFatalErrorDialog; showFatalErrorDialog.OnClick = () => Game.Settings.Debug.ShowFatalErrorDialog ^= true; bg.Get<ButtonWidget>("BUTTON_CLOSE").OnClick = () => { int x, y; int.TryParse(windowWidth.Text, out x); int.TryParse(windowHeight.Text, out y); gs.WindowedSize = new int2(x,y); int.TryParse(maxFrameRate.Text, out gs.MaxFramerate); soundSettings.Device = soundDevice.Device; soundSettings.Engine = soundDevice.Engine; Game.Settings.Save(); Ui.CloseWindow(); onExit(); }; }
public MockMusic(string contentName, SoundDevice device) : base(contentName, device) {}
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(SoundDevice obj) { return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr); }
Func <bool> InitPanel(Widget panel) { var musicPlaylist = worldRenderer.World.WorldActor.Trait <MusicPlaylist>(); var ss = Game.Settings.Sound; SettingsUtils.BindCheckboxPref(panel, "CASH_TICKS", ss, "CashTicks"); SettingsUtils.BindCheckboxPref(panel, "MUTE_SOUND", ss, "Mute"); SettingsUtils.BindCheckboxPref(panel, "MUTE_BACKGROUND_MUSIC", ss, "MuteBackgroundMusic"); SettingsUtils.BindSliderPref(panel, "SOUND_VOLUME", ss, "SoundVolume"); SettingsUtils.BindSliderPref(panel, "MUSIC_VOLUME", ss, "MusicVolume"); SettingsUtils.BindSliderPref(panel, "VIDEO_VOLUME", ss, "VideoVolume"); var muteCheckbox = panel.Get <CheckboxWidget>("MUTE_SOUND"); var muteCheckboxOnClick = muteCheckbox.OnClick; var muteCheckboxIsChecked = muteCheckbox.IsChecked; muteCheckbox.IsChecked = () => muteCheckboxIsChecked() || Game.Sound.DummyEngine; muteCheckbox.IsDisabled = () => Game.Sound.DummyEngine; muteCheckbox.OnClick = () => { muteCheckboxOnClick(); if (ss.Mute) { Game.Sound.MuteAudio(); } else { Game.Sound.UnmuteAudio(); } }; var muteBackgroundMusicCheckbox = panel.Get <CheckboxWidget>("MUTE_BACKGROUND_MUSIC"); var muteBackgroundMusicCheckboxOnClick = muteBackgroundMusicCheckbox.OnClick; muteBackgroundMusicCheckbox.OnClick = () => { muteBackgroundMusicCheckboxOnClick(); if (!musicPlaylist.AllowMuteBackgroundMusic) { return; } if (musicPlaylist.CurrentSongIsBackground) { musicPlaylist.Stop(); } }; // Replace controls with a warning label if sound is disabled var noDeviceLabel = panel.GetOrNull("NO_AUDIO_DEVICE"); if (noDeviceLabel != null) { noDeviceLabel.Visible = Game.Sound.DummyEngine; } var controlsContainer = panel.GetOrNull("AUDIO_CONTROLS"); if (controlsContainer != null) { controlsContainer.Visible = !Game.Sound.DummyEngine; } var soundVolumeSlider = panel.Get <SliderWidget>("SOUND_VOLUME"); soundVolumeSlider.OnChange += x => Game.Sound.SoundVolume = x; var musicVolumeSlider = panel.Get <SliderWidget>("MUSIC_VOLUME"); musicVolumeSlider.OnChange += x => Game.Sound.MusicVolume = x; var videoVolumeSlider = panel.Get <SliderWidget>("VIDEO_VOLUME"); videoVolumeSlider.OnChange += x => Game.Sound.VideoVolume = x; var devices = Game.Sound.AvailableDevices(); soundDevice = devices.FirstOrDefault(d => d.Device == ss.Device) ?? devices.First(); var audioDeviceDropdown = panel.Get <DropDownButtonWidget>("AUDIO_DEVICE"); audioDeviceDropdown.OnMouseDown = _ => ShowAudioDeviceDropdown(audioDeviceDropdown, devices); var deviceFont = Game.Renderer.Fonts[audioDeviceDropdown.Font]; var deviceLabel = new CachedTransform <SoundDevice, string>( s => WidgetUtils.TruncateText(s.Label, audioDeviceDropdown.UsableWidth, deviceFont)); audioDeviceDropdown.GetText = () => deviceLabel.Update(soundDevice); return(() => { ss.Device = soundDevice.Device; return ss.Device != OriginalSoundDevice; }); }
/// <summary> /// Sends a byte to the port with the specified address /// </summary> /// <param name="addr">Port address</param> /// <param name="data">Data to write to the port</param> /// <returns>Byte read from the memory</returns> public override void OnWritePort(ushort addr, byte data) { HandleSpectrum48PortWrites(addr, data); // --- Port 0x7FFD, bit 14 set, bit 15 and bit 1 reset if ((addr & 0xC002) == 0x4000) { // --- When paging is disabled, it will be enabled next time // --- only after reset if (PagingEnabled) { // --- Choose the RAM bank for Slot 3 (0xc000-0xffff) LastSlot3Index = data & 0x07; MemoryDevice.PageIn(3, LastSlot3Index); // --- Choose screen (Bank 5 or 7) MemoryDevice.UseShadowScreen = ((data >> 3) & 0x01) == 0x01; // --- Choose ROM bank for Slot 0 (0x0000-0x3fff) SelectRomLow = (byte)((data >> 4) & 0x01); // --- Enable/disable paging PagingEnabled = (data & 0x20) == 0x00; // --- Page the ROM according to current settings MemoryDevice.SelectRom(SelectRomHigh | SelectRomLow); } } // --- Port 0x1FFD, bit 12 set, bit 1, 13, 14 and 15 reset else if ((addr & 0xF002) == 0x1000) { PagingMode = (data & 0x01) != 0; SpecialConfig = (byte)((data >> 1) & 0x03); DiskMotorState = (data & 0x08) != 0; PrinterPortStrobe = (data & 0x10) != 0; SelectRomHigh = (byte)((data >> 1) & 0x02); // --- Page the ROM according to current settings if (PagingMode) { // --- Special paging mode switch (SpecialConfig) { case 0: MemoryDevice.PageIn(0, 0); MemoryDevice.PageIn(1, 1); MemoryDevice.PageIn(2, 2); MemoryDevice.PageIn(3, 3); break; case 1: MemoryDevice.PageIn(0, 4); MemoryDevice.PageIn(1, 5); MemoryDevice.PageIn(2, 6); MemoryDevice.PageIn(3, 7); break; case 2: MemoryDevice.PageIn(0, 4); MemoryDevice.PageIn(1, 5); MemoryDevice.PageIn(2, 6); MemoryDevice.PageIn(3, 3); break; case 3: MemoryDevice.PageIn(0, 4); MemoryDevice.PageIn(1, 7); MemoryDevice.PageIn(2, 6); MemoryDevice.PageIn(3, 3); break; } } else { // --- Normal mode MemoryDevice.PageIn(1, 5); MemoryDevice.PageIn(2, 2); MemoryDevice.PageIn(3, LastSlot3Index); MemoryDevice.SelectRom(SelectRomHigh | SelectRomLow); } } else if (addr == 0xFFFD) { SoundDevice.SetRegisterIndex(data); } else if (addr == 0xBFFD || addr == 0xBEFD) { SoundDevice.SetRegisterValue(data); } }
public MockVideo(string contentName, SoundDevice soundDevice) : base(contentName, soundDevice) {}
private List<SoundDevice> GetDeviceList(AutomationElement aeSoundDialog) { List<SoundDevice> devices = new List<SoundDevice>(); // Get the ListView AutomationElement aeListView = aeSoundDialog.FindFirst (TreeScope.Descendants, new PropertyCondition (AutomationElement.AutomationIdProperty, CID_DEVICE_LISTVIEW.ToString())); TreeWalker walker = TreeWalker.ContentViewWalker; for (AutomationElement child = walker.GetFirstChild(aeListView); child != null; child = walker.GetNextSibling(child)) { Debug.WriteLine(child.Current.Name); SoundDevice dev = new SoundDevice(); dev.deviceName = child.Current.Name; dev.automationElement = child; devices.Add(dev); } return devices; }
public CncSettingsLogic(Widget widget, World world, Action onExit) { this.world = world; var panel = widget.Get("SETTINGS_PANEL"); // General pane var generalButton = panel.Get<ButtonWidget>("GENERAL_BUTTON"); generalButton.OnClick = () => settingsPanel = PanelType.General; generalButton.IsHighlighted = () => settingsPanel == PanelType.General; var generalPane = panel.Get("GENERAL_CONTROLS"); generalPane.IsVisible = () => settingsPanel == PanelType.General; var gameSettings = Game.Settings.Game; var playerSettings = Game.Settings.Player; var debugSettings = Game.Settings.Debug; var graphicsSettings = Game.Settings.Graphics; var soundSettings = Game.Settings.Sound; // Player profile var nameTextfield = generalPane.Get<TextFieldWidget>("NAME_TEXTFIELD"); nameTextfield.Text = playerSettings.Name; colorPreview = panel.Get<ColorPreviewManagerWidget>("COLOR_MANAGER"); colorPreview.Color = playerSettings.Color; var colorDropdown = generalPane.Get<DropDownButtonWidget>("COLOR"); colorDropdown.OnMouseDown = _ => ShowColorPicker(colorDropdown, playerSettings); colorDropdown.Get<ColorBlockWidget>("COLORBLOCK").GetColor = () => playerSettings.Color.RGB; // Debug var perftextCheckbox = generalPane.Get<CheckboxWidget>("PERFTEXT_CHECKBOX"); perftextCheckbox.IsChecked = () => debugSettings.PerfText; perftextCheckbox.OnClick = () => debugSettings.PerfText ^= true; var perfgraphCheckbox = generalPane.Get<CheckboxWidget>("PERFGRAPH_CHECKBOX"); perfgraphCheckbox.IsChecked = () => debugSettings.PerfGraph; perfgraphCheckbox.OnClick = () => debugSettings.PerfGraph ^= true; var checkunsyncedCheckbox = generalPane.Get<CheckboxWidget>("CHECKUNSYNCED_CHECKBOX"); checkunsyncedCheckbox.IsChecked = () => debugSettings.SanityCheckUnsyncedCode; checkunsyncedCheckbox.OnClick = () => debugSettings.SanityCheckUnsyncedCode ^= true; var showFatalErrorDialog = generalPane.Get<CheckboxWidget>("SHOW_FATAL_ERROR_DIALOG_CHECKBOX"); showFatalErrorDialog.IsChecked = () => Game.Settings.Debug.ShowFatalErrorDialog; showFatalErrorDialog.OnClick = () => Game.Settings.Debug.ShowFatalErrorDialog ^= true; // Video var windowModeDropdown = generalPane.Get<DropDownButtonWidget>("MODE_DROPDOWN"); windowModeDropdown.OnMouseDown = _ => SettingsMenuLogic.ShowWindowModeDropdown(windowModeDropdown, graphicsSettings); windowModeDropdown.GetText = () => graphicsSettings.Mode == WindowMode.Windowed ? "Windowed" : graphicsSettings.Mode == WindowMode.Fullscreen ? "Fullscreen" : "Pseudo-Fullscreen"; var pixelDoubleCheckbox = generalPane.Get<CheckboxWidget>("PIXELDOUBLE_CHECKBOX"); pixelDoubleCheckbox.IsChecked = () => graphicsSettings.PixelDouble; pixelDoubleCheckbox.OnClick = () => { graphicsSettings.PixelDouble ^= true; Game.viewport.Zoom = graphicsSettings.PixelDouble ? 2 : 1; }; var showShellmapCheckbox = generalPane.Get<CheckboxWidget>("SHOW_SHELLMAP"); showShellmapCheckbox.IsChecked = () => gameSettings.ShowShellmap; showShellmapCheckbox.OnClick = () => gameSettings.ShowShellmap ^= true; generalPane.Get("WINDOW_RESOLUTION").IsVisible = () => graphicsSettings.Mode == WindowMode.Windowed; var windowWidth = generalPane.Get<TextFieldWidget>("WINDOW_WIDTH"); windowWidth.Text = graphicsSettings.WindowedSize.X.ToString(); var windowHeight = generalPane.Get<TextFieldWidget>("WINDOW_HEIGHT"); windowHeight.Text = graphicsSettings.WindowedSize.Y.ToString(); // Audio var soundSlider = generalPane.Get<SliderWidget>("SOUND_SLIDER"); soundSlider.OnChange += x => { soundSettings.SoundVolume = x; Sound.SoundVolume = x; }; soundSlider.Value = soundSettings.SoundVolume; var musicSlider = generalPane.Get<SliderWidget>("MUSIC_SLIDER"); musicSlider.OnChange += x => { soundSettings.MusicVolume = x; Sound.MusicVolume = x; }; musicSlider.Value = soundSettings.MusicVolume; var shellmapMusicCheckbox = generalPane.Get<CheckboxWidget>("SHELLMAP_MUSIC"); shellmapMusicCheckbox.IsChecked = () => soundSettings.MapMusic; shellmapMusicCheckbox.OnClick = () => soundSettings.MapMusic ^= true; var devices = Sound.AvailableDevices(); soundDevice = devices.FirstOrDefault(d => d.Engine == soundSettings.Engine && d.Device == soundSettings.Device) ?? devices.First(); var audioDeviceDropdown = generalPane.Get<DropDownButtonWidget>("AUDIO_DEVICE"); audioDeviceDropdown.OnMouseDown = _ => ShowAudioDeviceDropdown(audioDeviceDropdown, soundSettings, devices); audioDeviceDropdown.GetText = () => soundDevice.Label; // Input pane var inputPane = panel.Get("INPUT_CONTROLS"); inputPane.IsVisible = () => settingsPanel == PanelType.Input; var inputButton = panel.Get<ButtonWidget>("INPUT_BUTTON"); inputButton.OnClick = () => settingsPanel = PanelType.Input; inputButton.IsHighlighted = () => settingsPanel == PanelType.Input; var classicMouseCheckbox = inputPane.Get<CheckboxWidget>("CLASSICORDERS_CHECKBOX"); classicMouseCheckbox.IsChecked = () => gameSettings.UseClassicMouseStyle; classicMouseCheckbox.OnClick = () => gameSettings.UseClassicMouseStyle ^= true; var scrollSlider = inputPane.Get<SliderWidget>("SCROLLSPEED_SLIDER"); scrollSlider.Value = gameSettings.ViewportEdgeScrollStep; scrollSlider.OnChange += x => gameSettings.ViewportEdgeScrollStep = x; var edgescrollCheckbox = inputPane.Get<CheckboxWidget>("EDGESCROLL_CHECKBOX"); edgescrollCheckbox.IsChecked = () => gameSettings.ViewportEdgeScroll; edgescrollCheckbox.OnClick = () => gameSettings.ViewportEdgeScroll ^= true; var mouseScrollDropdown = inputPane.Get<DropDownButtonWidget>("MOUSE_SCROLL"); mouseScrollDropdown.OnMouseDown = _ => ShowMouseScrollDropdown(mouseScrollDropdown, gameSettings); mouseScrollDropdown.GetText = () => gameSettings.MouseScroll.ToString(); var teamchatCheckbox = inputPane.Get<CheckboxWidget>("TEAMCHAT_CHECKBOX"); teamchatCheckbox.IsChecked = () => gameSettings.TeamChatToggle; teamchatCheckbox.OnClick = () => gameSettings.TeamChatToggle ^= true; panel.Get<ButtonWidget>("BACK_BUTTON").OnClick = () => { playerSettings.Name = nameTextfield.Text; int x, y; int.TryParse(windowWidth.Text, out x); int.TryParse(windowHeight.Text, out y); graphicsSettings.WindowedSize = new int2(x, y); soundSettings.Device = soundDevice.Device; soundSettings.Engine = soundDevice.Engine; Game.Settings.Save(); Ui.CloseWindow(); onExit(); }; }
bool ShowAudioDeviceDropdown(DropDownButtonWidget dropdown, SoundSettings s, SoundDevice[] devices) { var i = 0; var options = devices.ToDictionary(d => (i++).ToString(), d => d); Func<string, ScrollItemWidget, ScrollItemWidget> setupItem = (o, itemTemplate) => { var item = ScrollItemWidget.Setup(itemTemplate, () => soundDevice == options[o], () => soundDevice = options[o]); item.Get<LabelWidget>("LABEL").GetText = () => options[o].Label; return item; }; dropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 500, options.Keys, setupItem); return true; }
/// <summary> /// A parameterized constructor of CallVolumeRecord. /// </summary> /// <param name="device">Call sound device.</param> /// <param name="type">Call sound type.</param> /// <param name="volume">Call sound volume.</param> public CallVolumeRecord(SoundDevice device, SoundType type, SoundVolume volume) { _device = device; _type = type; _volume = volume; }