示例#1
0
        public static Version BASS_Mixer_GetVersion(int fieldcount)
        {
            if (fieldcount < 1)
            {
                fieldcount = 1;
            }
            if (fieldcount > 4)
            {
                fieldcount = 4;
            }
            int     num    = BassMix.BASS_Mixer_GetVersion();
            Version result = new Version(2, 4);

            switch (fieldcount)
            {
            case 1:
                result = new Version(num >> 24 & 255, 0);
                break;

            case 2:
                result = new Version(num >> 24 & 255, num >> 16 & 255);
                break;

            case 3:
                result = new Version(num >> 24 & 255, num >> 16 & 255, num >> 8 & 255);
                break;

            case 4:
                result = new Version(num >> 24 & 255, num >> 16 & 255, num >> 8 & 255, num & 255);
                break;
            }
            return(result);
        }
示例#2
0
        public static float[] BASS_Mixer_ChannelGetLevel(int handle, float length = 0.02f, BASSLevel flags = BASSLevel.BASS_LEVEL_ALL)
        {
            BASS_CHANNELINFO bass_CHANNELINFO = Bass.BASS_ChannelGetInfo(handle);

            if (bass_CHANNELINFO == null)
            {
                return(null);
            }
            int num = bass_CHANNELINFO.chans;

            if ((flags & BASSLevel.BASS_LEVEL_MONO) == BASSLevel.BASS_LEVEL_MONO)
            {
                num = 1;
            }
            else if ((flags & BASSLevel.BASS_LEVEL_STEREO) == BASSLevel.BASS_LEVEL_STEREO)
            {
                num = 2;
            }
            float[] array = new float[num];
            if (BassMix.BASS_Mixer_ChannelGetLevel(handle, array, length, flags))
            {
                return(array);
            }
            return(null);
        }
示例#3
0
        public static BASSActive BASS_Mixer_ChannelIsActive(int handle)
        {
            BASSFlag bassflag = BassMix.BASS_Mixer_ChannelFlags(handle, BASSFlag.BASS_STREAM_PRESCAN, BASSFlag.BASS_DEFAULT);

            if (bassflag < BASSFlag.BASS_DEFAULT)
            {
                return(BASSActive.BASS_ACTIVE_STOPPED);
            }
            if ((bassflag & BASSFlag.BASS_STREAM_PRESCAN) != BASSFlag.BASS_DEFAULT)
            {
                return(BASSActive.BASS_ACTIVE_PAUSED);
            }
            return(BASSActive.BASS_ACTIVE_PLAYING);
        }
示例#4
0
        public static int[] BASS_Split_StreamGetSplits(int handle)
        {
            int num = BassMix.BASS_Split_StreamGetSplits(handle, null, 0);

            if (num < 0)
            {
                return(null);
            }
            int[] array = new int[num];
            num = BassMix.BASS_Split_StreamGetSplits(handle, array, num);
            if (num < 0)
            {
                return(null);
            }
            return(array);
        }
示例#5
0
 public static int BASS_Mixer_ChannelSetSyncEx(int handle, BASSSync type, long param, SYNCPROCEX proc, IntPtr user)
 {
     type |= (BASSSync)16777216;
     return(BassMix.BASS_Mixer_ChannelSetSync(handle, type, param, proc, user));
 }
示例#6
0
 public static bool BASS_Mixer_ChannelSetEnvelope(int handle, BASSMIXEnvelope type, BASS_MIXER_NODE[] nodes)
 {
     return(BassMix.BASS_Mixer_ChannelSetEnvelope(handle, type, nodes, (nodes == null) ? 0 : nodes.Length));
 }
示例#7
0
 public static long BASS_Mixer_ChannelGetPosition(int handle)
 {
     return(BassMix.BASS_Mixer_ChannelGetPosition(handle, BASSMode.BASS_POS_BYTES));
 }
示例#8
0
 public static bool BASS_Mixer_ChannelSetPosition(int handle, long pos)
 {
     return(BassMix.BASS_Mixer_ChannelSetPosition(handle, pos, BASSMode.BASS_POS_BYTES));
 }
示例#9
0
 public static bool BASS_Mixer_ChannelPlay(int handle)
 {
     return(BassMix.BASS_Mixer_ChannelFlags(handle, BASSFlag.BASS_DEFAULT, BASSFlag.BASS_STREAM_PRESCAN) >= BASSFlag.BASS_DEFAULT);
 }