Exemplo n.º 1
0
 private void volumeIcon_Tick()
 {
     if (VolumeUtilities.IsVolumeMuted())
     {
         imgOpenVolume.Source = this.FindResource("VolumeMuteIcon") as ImageSource;
     }
     else if (VolumeUtilities.GetMasterVolume() <= 0)
     {
         imgOpenVolume.Source = this.FindResource("VolumeOffIcon") as ImageSource;
     }
     else if (VolumeUtilities.GetMasterVolume() < 0.5)
     {
         imgOpenVolume.Source = this.FindResource("VolumeLowIcon") as ImageSource;
     }
     else
     {
         imgOpenVolume.Source = this.FindResource("VolumeIcon") as ImageSource;
     }
 }
Exemplo n.º 2
0
        private void RefreshVolume()
        {
            var AllAppInfo = VolumeUtilities.EnumerateApplications().ToList();

            lvwVolViewer.Items.Clear();

            if (lvwVolViewer.Columns.Count == 0)
            {
                lvwVolViewer.Columns.Add("Session Name");
                lvwVolViewer.Columns.Add("Process Name");
                lvwVolViewer.Columns.Add("Process ID");
                lvwVolViewer.Columns.Add("Volume Setting");
            }


            foreach (var iterateApp in AllAppInfo)
            {
                Process AppProcess = null;
                try
                {
                    AppProcess = Process.GetProcessById((int)iterateApp.ProcessID);
                }
                catch (Exception exx)
                {
                    AppProcess = null;
                }
                String ProcessName = AppProcess == null ? "Unknown" : AppProcess.ProcessName;

                ListViewItem buildItem = new ListViewItem(new String[] { iterateApp.Name, ProcessName, iterateApp.ProcessID.ToString(), iterateApp.Volume.ToString() });
                lvwVolViewer.Items.Add(buildItem);

                //iterateApp.Name
                //    iterateApp.Volume
                //    iterateApp.ProcessID
            }
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            //we won't bother with fancy argument parsing here, just look at the buggers directly.
            if (args.Length == 0)
            {
                ShowHelp();
                return;
            }
            else if (args.Length > 0)
            {
                String sUseFile = null;
                if (args.Length > 1)
                {
                    sUseFile = args[1];
                }
                else
                {
                    sUseFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "BASeCamp", "VolumeSlapper", "Quick.xml");
                }
                if (String.Compare(args[0], "save", StringComparison.OrdinalIgnoreCase) == 0)
                {
                    //saves to a given filename.
                    String sTargetFile = sUseFile;
                    Console.WriteLine("Saving session volume data to " + sUseFile);
                    if (sTargetFile.StartsWith("\""))
                    {
                        sTargetFile = sTargetFile.Substring(1);
                    }
                    if (sTargetFile.EndsWith("\""))
                    {
                        sTargetFile = sTargetFile.Substring(0, sTargetFile.Length - 1);
                    }
                    if (File.Exists(sTargetFile))
                    {
                        Console.WriteLine("not overwriting existing file:\"" + sTargetFile + "\"");
                        return;
                    }
                    else
                    {
                        //save volume information to the file, if the process exists, index by the executable path. Otherwise, we index by the retrieved name.
                        XElement  RootNode     = new XElement("Mixer");
                        XDocument VolumeDoc    = new XDocument(RootNode);
                        float     MasterVolume = VolumeUtilities.GetMasterVolume();
                        RootNode.Add(new XAttribute("MasterVolume", MasterVolume));
                        var VolumeData = VolumeUtilities.EnumerateApplications().ToList();
                        foreach (var appinfo in VolumeData)
                        {
                            XElement BuildNode = new XElement("Session", new XAttribute("Name", appinfo.Name), new XAttribute("Volume", appinfo.Volume));
                            RootNode.Add(BuildNode);
                        }
                        String PathPart = Path.GetDirectoryName(sTargetFile);
                        if (!Directory.Exists(PathPart))
                        {
                            Directory.CreateDirectory(PathPart);
                        }
                        using (FileStream ftarget = new FileStream(sTargetFile, FileMode.CreateNew))
                        {
                            VolumeDoc.Save(ftarget);
                        }
                    }
                }
                else if (String.Compare(args[0], "load", StringComparison.OrdinalIgnoreCase) == 0)
                {
                    //loads volume settings from the given file name.
                    String sLoadFile = sUseFile;
                    Console.WriteLine("Loading session volume data from " + sUseFile);
                    if (!File.Exists(sLoadFile))
                    {
                        Console.WriteLine("File not found:" + sLoadFile);
                    }
                    else
                    {
                        XDocument loadDoc = null;
                        using (FileStream fs = new FileStream(sLoadFile, FileMode.Open))
                        {
                            loadDoc = XDocument.Load(fs);
                            XElement MixerNode          = loadDoc.Root;
                            float    MasterVolume       = 0;
                            var      MasterVolumeAttrib = MixerNode.Attribute("MasterVolume");
                            if (MasterVolumeAttrib != null)
                            {
                                MasterVolume = float.Parse(MasterVolumeAttrib.Value);
                            }
                            var ListApps   = VolumeUtilities.EnumerateApplications().ToList();
                            var VolumeInfo = new Dictionary <string, VolumeUtilities.ApplicationVolumeInformation>();
                            foreach (var VolData in ListApps)
                            {
                                if (!VolumeInfo.ContainsKey(VolData.Name))
                                {
                                    VolumeInfo.Add(VolData.Name, VolData);
                                }
                            }
                            VolumeUtilities.SetMasterVolume(MasterVolume);
                            foreach (XElement LoadElement in MixerNode.Elements("Session"))
                            {
                                String     sName = "";
                                float      useVolume = 0;
                                XAttribute Nameattr = null, Volumeattr = null;
                                if ((Nameattr = LoadElement.Attribute("Name")) != null)
                                {
                                    sName = Nameattr.Value;
                                }
                                if ((Volumeattr = LoadElement.Attribute("Volume")) != null)
                                {
                                    float.TryParse(Volumeattr.Value, out useVolume);
                                }


                                try
                                {
                                    VolumeUtilities.SetApplicationVolume(sName, useVolume);
                                }
                                catch (Exception exx)
                                {
                                    Console.WriteLine("Failed Attempting to set volume for " + sName + " To " + useVolume);
                                }
                            }
                        }
                    }
                }
                else if (String.Compare(args[0], "get", StringComparison.OrdinalIgnoreCase) == 0)
                {
                    String VolumeNode = "Master";
                    if (args.Length > 1)
                    {
                        //includes the volume node (program name to get the volume of)
                        VolumeNode = args[1];
                    }
                    //get logic
                    if (VolumeNode.Equals("Master", StringComparison.OrdinalIgnoreCase))
                    {
                        float currvolume = VolumeUtilities.GetMasterVolume();
                        Console.WriteLine(currvolume);
                    }
                    else
                    {
                        var grabAppInfo = VolumeUtilities.GetApplicationVolumeInfo(VolumeNode);
                        if (grabAppInfo == null)
                        {
                            Console.WriteLine("Unable to find Session " + VolumeNode);
                        }
                        else
                        {
                            Console.WriteLine("Current Volume of " + VolumeNode + " is " + grabAppInfo.Volume);
                        }
                    }
                }
                else if (String.Compare(args[0], "set", StringComparison.OrdinalIgnoreCase) == 0)
                {
                    //set logic.
                    float  assignvolume;
                    String sVolume    = "";
                    String VolumeNode = "Master";
                    if (args.Length > 1)
                    {
                        VolumeNode = args[1];
                        sVolume    = args[2];
                    }
                    else
                    {
                        VolumeNode = "Master";
                        sVolume    = args[1];
                    }
                    if (!float.TryParse(sVolume, out assignvolume))
                    {
                        Console.WriteLine("Specified volume level not valid:" + args[1]);
                        Console.WriteLine();
                        ShowHelp();
                        return;
                    }
                    else
                    {
                        if (VolumeNode.Equals("Master", StringComparison.OrdinalIgnoreCase))
                        {
                            VolumeUtilities.SetMasterVolume(assignvolume);
                            Console.WriteLine("Volume Level set to " + assignvolume);
                        }
                        else
                        {
                            var grabinfo = VolumeUtilities.GetApplicationVolumeInfo(VolumeNode);
                            if (grabinfo != null)
                            {
                                grabinfo.Volume = assignvolume;
                                Console.WriteLine("Volume for " + VolumeNode + " Set to " + assignvolume);
                            }
                            else
                            {
                                Console.WriteLine("Unable to find " + VolumeNode);
                            }
                        }
                    }
                }
                else if (String.Compare(args[0], "status", StringComparison.OrdinalIgnoreCase) == 0)
                {
                    Console.WriteLine(" Master Volume is " + VolumeUtilities.GetMasterVolume());
                    foreach (var iterateApp in VolumeUtilities.EnumerateApplications())
                    {
                        var result = iterateApp.Volume;
                        if (result != null)
                        {
                            Console.WriteLine("Session:" + iterateApp.Name);
                            Console.WriteLine("ProcessID:" + iterateApp.ProcessID);
                            Console.WriteLine("Volume:" + result);
                            Console.WriteLine();
                        }
                    }
                }
                else
                {
                    Console.WriteLine("unrecognized parameter:" + args[0]);
                    Console.WriteLine();
                    ShowHelp();
                    return;
                }
            }


            Console.ReadKey();
        }
 static void Main(string[] args)
 {
     Console.WriteLine(VolumeUtilities.GetMasterVolume());
 }
Exemplo n.º 5
0
        public void FlipTest()
        {
            var volume = new Volume(3, 3, 2, 0.0);

            volume.Set(1, 1, 0, 1.0);
            volume.Set(1, 1, 1, 2.0);

            volume.Set(0, 0, 0, 10.0);
            volume.Set(0, 0, 1, 15.0);

            volume.Set(0, 2, 0, 20.0);
            volume.Set(0, 2, 1, 25.0);

            volume.Set(2, 0, 0, 30.0);
            volume.Set(2, 0, 1, 35.0);

            volume.Set(2, 2, 0, 40.0);
            volume.Set(2, 2, 1, 45.0);

            var flipped = VolumeUtilities.Flip(volume, VolumeUtilities.FlipMode.LeftRight);

            Assert.AreEqual(1.0, flipped.Get(1, 1, 0));
            Assert.AreEqual(2.0, flipped.Get(1, 1, 1));

            Assert.AreEqual(10.0, flipped.Get(2, 0, 0));
            Assert.AreEqual(15.0, flipped.Get(2, 0, 1));

            Assert.AreEqual(20.0, flipped.Get(2, 2, 0));
            Assert.AreEqual(25.0, flipped.Get(2, 2, 1));

            Assert.AreEqual(30.0, flipped.Get(0, 0, 0));
            Assert.AreEqual(35.0, flipped.Get(0, 0, 1));

            Assert.AreEqual(40.0, flipped.Get(0, 2, 0));
            Assert.AreEqual(45.0, flipped.Get(0, 2, 1));

            flipped = VolumeUtilities.Flip(volume, VolumeUtilities.FlipMode.UpDown);
            Assert.AreEqual(1.0, flipped.Get(1, 1, 0));
            Assert.AreEqual(2.0, flipped.Get(1, 1, 1));

            Assert.AreEqual(10.0, flipped.Get(0, 2, 0));
            Assert.AreEqual(15.0, flipped.Get(0, 2, 1));

            Assert.AreEqual(20.0, flipped.Get(0, 0, 0));
            Assert.AreEqual(25.0, flipped.Get(0, 0, 1));

            Assert.AreEqual(30.0, flipped.Get(2, 2, 0));
            Assert.AreEqual(35.0, flipped.Get(2, 2, 1));

            Assert.AreEqual(40.0, flipped.Get(2, 0, 0));
            Assert.AreEqual(45.0, flipped.Get(2, 0, 1));

            flipped = VolumeUtilities.Flip(volume, VolumeUtilities.FlipMode.Both);
            Assert.AreEqual(1.0, flipped.Get(1, 1, 0));
            Assert.AreEqual(2.0, flipped.Get(1, 1, 1));

            Assert.AreEqual(10.0, flipped.Get(2, 2, 0));
            Assert.AreEqual(15.0, flipped.Get(2, 2, 1));

            Assert.AreEqual(20.0, flipped.Get(2, 0, 0));
            Assert.AreEqual(25.0, flipped.Get(2, 0, 1));

            Assert.AreEqual(30.0, flipped.Get(0, 2, 0));
            Assert.AreEqual(35.0, flipped.Get(0, 2, 1));

            Assert.AreEqual(40.0, flipped.Get(0, 0, 0));
            Assert.AreEqual(45.0, flipped.Get(0, 0, 1));
        }