コード例 #1
0
        internal override void ExecuteBang(string args)
        {
            //Some bangs pass multiple parameters, only the first one is
            //needed to identify the correct bang
            string[] argsArray = args.Split(' ');

            switch (argsArray[0].ToLowerInvariant())
            {
            case "play":
                MediaMonkey.Play();
                break;

            case "pause":
                MediaMonkey.Pause();
                break;

            case "playpause":
                MediaMonkey.PlayPause();
                break;

            case "stop":
                MediaMonkey.Stop();
                break;

            case "previous":
                MediaMonkey.Previous();
                break;

            case "next":
                MediaMonkey.Next();
                break;

            case "openplayer":
                MediaMonkey.OpenPlayer();
                break;

            case "closeplayer":
                MediaMonkey.ClosePlayer();
                break;

            case "toggleplayer":
                MediaMonkey.TogglePlayer();
                break;

            case "setrating":
                double argsRating;

                if (double.TryParse(argsArray[1], out argsRating))
                {
                    int mmRating = StarsToMediaMonkeyRating(argsRating);

                    if (mmRating == -2)
                    {
                        API.Log(API.LogType.Error, "MediaMonkey.dll: Invalid parameter for SetRating =" + argsArray[1]);
                    }
                    else
                    {
                        API.Log(API.LogType.Error, "MediaMonkey.dll: call SetRating =" + mmRating);
                        MediaMonkey.SetRating(mmRating);
                    }
                }
                else
                {
                    API.Log(API.LogType.Error, "MediaMonkey.dll: Invalid parameter for SetRating =" + argsArray[1]);
                }
                break;

            case "setposition":
                int argsPosition;

                if (int.TryParse(argsArray[1], out argsPosition))
                {
                    MediaMonkey.SetPosition(argsPosition);
                }
                else
                {
                    API.Log(API.LogType.Error, "MediaMonkey.dll: Invalid parameter for SetPosition =" + argsArray[1]);
                }
                break;

            case "setshuffle":
                int argsShuffle;

                if (int.TryParse(argsArray[1], out argsShuffle))
                {
                    switch (argsShuffle)
                    {
                    case -1:
                    case 0:
                    case 1:
                        MediaMonkey.SetShuffle(argsShuffle);
                        break;

                    default:
                        API.Log(API.LogType.Error, "MediaMonkey.dll: Invalid parameter for SetShuffle =" + argsArray[1]);
                        break;
                    }
                }
                else
                {
                    API.Log(API.LogType.Error, "MediaMonkey.dll: Invalid parameter for SetShuffle =" + argsArray[1]);
                }
                break;

            case "setrepeat":
                int argsRepeat;

                if (int.TryParse(argsArray[1], out argsRepeat))
                {
                    switch (argsRepeat)
                    {
                    case -1:
                    case 0:
                    case 1:
                        MediaMonkey.SetRepeat(argsRepeat);
                        break;

                    default:
                        API.Log(API.LogType.Error, "MediaMonkey.dll: Invalid parameter for SetRepeat =" + argsArray[1]);
                        break;
                    }
                }
                else
                {
                    API.Log(API.LogType.Error, "MediaMonkey.dll: Invalid parameter for SetRepeat =" + argsArray[1]);
                }
                break;

            case "setvolume":
                int argsVolume;

                Match VolumeRegex = Regex.Match(argsArray[1], "([+-]?)(\\d+)");

                if (int.TryParse(VolumeRegex.Groups[2].Value, out argsVolume))
                {
                    if (VolumeRegex.Groups[1].Value == "")
                    {
                        MediaMonkey.SetVolume(argsVolume);
                    }
                    else if (VolumeRegex.Groups[1].Value == "+")
                    {
                        IncreaseVolume(argsVolume);
                    }
                    else if (VolumeRegex.Groups[1].Value == "-")
                    {
                        DecreaseVolume(argsVolume);
                    }
                    else
                    {
                        API.Log(API.LogType.Error, "MediaMonkey.dll: Invalid parameter for SetVolume =" + argsArray[1]);
                    }
                }
                else
                {
                    API.Log(API.LogType.Error, "MediaMonkey.dll: Invalid parameter for SetVolume =" + argsArray[1]);
                }



                break;
            }
        }