Пример #1
0
        public static void SetVolume(MixerInfo mi, VOLUME volume)
        {
            if (IntPtr.Size == 4)
            {
                MIXERCONTROLDETAILS mcd = new MIXERCONTROLDETAILS();
                mcd.cbStruct       = (uint)Marshal.SizeOf(typeof(MIXERCONTROLDETAILS));
                mcd.dwControlID    = mi.volumeCtl;
                mcd.cMultipleItems = 0;
                mcd.cChannels      = 2;
                mcd.cbDetails      = (uint)Marshal.SizeOf(typeof(VOLUME));
                mcd.paDetails      = Marshal.AllocHGlobal((int)mcd.cbDetails);

                Marshal.StructureToPtr(volume, mcd.paDetails, false);

                mixerSetControlDetails(IntPtr.Zero, ref mcd, MIXER.GETCONTROLDETAILSF_VALUE | MIXER.OBJECTF_MIXER);

                Marshal.FreeHGlobal(mcd.paDetails);
            }
            else
            {
                MIXERCONTROLDETAILS64 mcd = new MIXERCONTROLDETAILS64();
                mcd.cbStruct       = (uint)Marshal.SizeOf(typeof(MIXERCONTROLDETAILS64));
                mcd.dwControlID    = mi.volumeCtl;
                mcd.cMultipleItems = 0;
                mcd.cChannels      = 2;
                mcd.cbDetails      = (uint)Marshal.SizeOf(typeof(VOLUME));
                mcd.paDetails      = Marshal.AllocHGlobal((int)mcd.cbDetails);

                Marshal.StructureToPtr(volume, mcd.paDetails, false);

                mixerSetControlDetails(IntPtr.Zero, ref mcd, MIXER.GETCONTROLDETAILSF_VALUE | MIXER.OBJECTF_MIXER);

                Marshal.FreeHGlobal(mcd.paDetails);
            }
        }
Пример #2
0
        static void Main(string[] args)
        {
            double R, VOLUME;

            R = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture);

            VOLUME = 4.0 / 3.0 * 3.14159 * R * R * R;

            Console.WriteLine("VOLUME = " + VOLUME.ToString("F3", CultureInfo.InvariantCulture));
        }
Пример #3
0
        public static void AdjustVolume(MixerInfo mi, int delta)
        {
            VOLUME volume = GetVolume(mi);

            if (delta > 0)
            {
                volume.left  = Math.Min(mi.maxVolume, volume.left + delta);
                volume.right = Math.Min(mi.maxVolume, volume.right + delta);
            }
            else
            {
                volume.left  = Math.Max(mi.minVolume, volume.left + delta);
                volume.right = Math.Max(mi.minVolume, volume.right + delta);
            }

            SetVolume(mi, volume);
        }
Пример #4
0
        static VOLUME GetVolume(MixerInfo mi)
        {
            MIXERCONTROLDETAILS mcd = new MIXERCONTROLDETAILS();

            mcd.cbStruct       = (uint)Marshal.SizeOf(typeof(MIXERCONTROLDETAILS));
            mcd.dwControlID    = mi.volumeCtl;
            mcd.cMultipleItems = 0;
            mcd.cChannels      = 2;
            mcd.cbDetails      = (uint)Marshal.SizeOf(typeof(int));
            mcd.paDetails      = Marshal.AllocHGlobal((int)mcd.cbDetails);

            mixerGetControlDetails(IntPtr.Zero, ref mcd, MIXER.GETCONTROLDETAILSF_VALUE | MIXER.OBJECTF_MIXER);

            VOLUME rtn = (VOLUME)Marshal.PtrToStructure(mcd.paDetails, typeof(VOLUME));

            Marshal.FreeHGlobal(mcd.paDetails);

            return(rtn);
        }
        public override string ToString()
        {
            s = (VOLUME)base.Tag;

            Binding myBinding = new Binding("type");
            myBinding.Mode = BindingMode.TwoWay;
            myBinding.Source = s;
            txttype.SetBinding(ComboBox.TextProperty, myBinding);

            Binding myBinding2 = new Binding("value");
            myBinding2.Mode = BindingMode.TwoWay;
            myBinding2.Source = s;
            txtval.SetBinding(TextBox.TextProperty, myBinding2);

            Binding descbinding = new Binding("Description");
            descbinding.Mode = BindingMode.TwoWay;
            descbinding.Source = s;
            txtdesc.SetBinding(TextBox.TextProperty, descbinding);

            return base.ToString();
        }
Пример #6
0
        public override string ToString()
        {
            s = (VOLUME)base.Tag;

            Binding myBinding = new Binding("type");

            myBinding.Mode   = BindingMode.TwoWay;
            myBinding.Source = s;
            txttype.SetBinding(ComboBox.TextProperty, myBinding);

            Binding myBinding2 = new Binding("value");

            myBinding2.Mode   = BindingMode.TwoWay;
            myBinding2.Source = s;
            txtval.SetBinding(TextBox.TextProperty, myBinding2);

            Binding descbinding = new Binding("Description");

            descbinding.Mode   = BindingMode.TwoWay;
            descbinding.Source = s;
            txtdesc.SetBinding(TextBox.TextProperty, descbinding);

            return(base.ToString());
        }
Пример #7
0
        static void SetVolume(MixerInfo mi, VOLUME volume)
        {
            MIXERCONTROLDETAILS mcd = new MIXERCONTROLDETAILS();
            mcd.cbStruct = (uint)Marshal.SizeOf(typeof(MIXERCONTROLDETAILS));
            mcd.dwControlID = mi.volumeCtl;
            mcd.cMultipleItems = 0;
            mcd.cChannels = 2;
            mcd.cbDetails = (uint)Marshal.SizeOf(typeof(int));
            mcd.paDetails = Marshal.AllocHGlobal((int)mcd.cbDetails);

            Marshal.StructureToPtr(volume, mcd.paDetails, false);

            mixerSetControlDetails(IntPtr.Zero, ref mcd, MIXER.GETCONTROLDETAILSF_VALUE | MIXER.OBJECTF_MIXER);

            Marshal.FreeHGlobal(mcd.paDetails);
        }