예제 #1
0
        public IrcDaemon(IrcMode ircMode = IrcMode.Modern)
        {
            Capabilities = new List <string>();

            // Create Optionobject & Set the proper IRC Protocol Version
            // The protocol version cannot be changed after construction,
            // because the construction methods below use this Option
            options = new ServerOptions(ircMode);

            //Clean Interface to statistics, it needs the IrcDaemon Object to gather this information.
            stats = new ServerStats(this);

            // Setup Modes Infrastructure
            modeFactory           = new ModeFactory();
            supportedChannelModes = new ChannelModeList(this);
            supportedRanks        = new RankList(this);
            supportedUserModes    = new UserModeList(this);

            // The Protocol Objects
            commands      = new CommandList(this);
            replies       = new ServerReplies.ServerReplies(this);
            serverCreated = DateTime.Now;

            // Add Commands
            SetupCommands();
            // Add Modes
            SetupModes();
            //Add ChannelTypes
            SetupChannelTypes();
        }
예제 #2
0
        public IrcDaemon(IrcMode ircMode = IrcMode.Modern)
        {
            Capabilities = new List<string>();

            // Create Optionobject & Set the proper IRC Protocol Version
            // The protocol version cannot be changed after construction,
            // because the construction methods below use this Option
            Options = new ServerOptions(ircMode);

            //Clean Interface to statistics, it needs the IrcDaemon Object to gather this information.
            Stats = new ServerStats(this);

            // Setup Modes Infrastructure
            ModeFactory = new ModeFactory();
            SupportedChannelModes = new ChannelModeList(this);
            SupportedRanks = new RankList(this);
            SupportedUserModes = new UserModeList(this);

            // The Protocol Objects
            Commands = new CommandList(this);
            Replies = new ServerReplies.ServerReplies(this);
            ServerCreated = DateTime.Now;

            // Add Commands
            SetupCommands();
            // Add Modes
            SetupModes();
            //Add ChannelTypes
            SetupChannelTypes();
        }
예제 #3
0
        public void ChordFactoryTest_getChordRecomendationsByDegree()
        {
            Note         key            = NoteFactory.getNoteByName("C");
            Note         degree         = NoteFactory.getNoteByName("G");
            Mode         mode           = ModeFactory.getModeByName("Ionian");
            List <Chord> recomendations = ChordFactory.getChordRecomendationsByTonic(key, degree, mode);

            Assert.IsTrue(recomendations.Count() > 1);
        }
예제 #4
0
        public void ChordFactoryTest_getChordRecomendationsByLast()
        {
            Note         key            = NoteFactory.getNoteByName("C");
            Mode         mode           = ModeFactory.getModeByName("Ionian");
            Chord        chord          = ChordFactory.getChordByName("C");
            List <Chord> recomendations = ChordFactory.getChordRecomendationsByLast(key, chord, mode);

            Assert.AreEqual("G", recomendations.ElementAt(0).getName());
        }
 public Song()
 {
     name            = "";
     key             = NoteFactory.getNoteByName("C");
     lyrics          = new Lyric();
     rhythm          = new Rhythm(4, 4);
     mode            = ModeFactory.getModeByName("Major");
     musicalElements = new List <IMusicalElement>();
 }
예제 #6
0
        public void Mode_containsIntervalTest()
        {
            Mode mode = ModeFactory.getModeByName("Ionian");

            Assert.IsTrue(mode.containsInterval("R"));
            Assert.IsTrue(mode.containsInterval("M2"));
            Assert.IsTrue(mode.containsInterval("M3"));
            Assert.IsTrue(mode.containsInterval("P4"));
            Assert.IsTrue(mode.containsInterval("P5"));
            Assert.IsTrue(mode.containsInterval("M6"));
            Assert.IsTrue(mode.containsInterval("M7"));
            Assert.IsFalse(mode.containsInterval("m7"));
        }
예제 #7
0
        public void Mode_containsNoteTest()
        {
            Mode mode = ModeFactory.getModeByName("Ionian");
            Note key  = NoteFactory.getNoteByName("C");

            Assert.IsTrue(mode.containsNote(NoteFactory.getNoteByName("C"), key));
            Assert.IsTrue(mode.containsNote(NoteFactory.getNoteByName("D"), key));
            Assert.IsTrue(mode.containsNote(NoteFactory.getNoteByName("E"), key));
            Assert.IsTrue(mode.containsNote(NoteFactory.getNoteByName("F"), key));
            Assert.IsTrue(mode.containsNote(NoteFactory.getNoteByName("G"), key));
            Assert.IsTrue(mode.containsNote(NoteFactory.getNoteByName("A"), key));
            Assert.IsTrue(mode.containsNote(NoteFactory.getNoteByName("B"), key));
            Assert.IsFalse(mode.containsNote(NoteFactory.getNoteByName("F#"), key));
        }
예제 #8
0
        private static void Main(string[] args)
        {
            var windowName = Settings.Default.WindowName;

            if (!Window.GetWindowInfo(Window.GetHandle(windowName), out var windowInfo))
            {
                MessageBox.Show($"{windowName} was not found", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            Window.Move(windowName, new Point(0, 0), 1027, 516);

            var modeFactory  = new ModeFactory();
            var inOutManager = new InputOutput();
            //var posColorManager = new ConfigConverter().Deserialize();
            var posColorManager = new ButtonPositionAndColorsWindowed();

            while (true)
            {
                Console.Clear();
                Console.WriteLine($"{windowName} resolution should be: 1211 x 607");
                Console.WriteLine($"The current window resolution denotes: {windowInfo.Width}x{windowInfo.Height}");

                var selectedMode = inOutManager.SelectMode();
                var mode         = modeFactory.Create(selectedMode);
                GetConsoleManager(mode).StartListen();

                switch (selectedMode)
                {
                case Mode.GeneralFarming:
                    var refreshEnergy = inOutManager.RefreshEnergyDecision();
                    mode.Start(posColorManager, new ModeConfig {
                        RefreshEnergy = refreshEnergy
                    });
                    break;

                case Mode.Debug:
                    mode.Start();
                    break;

                case Mode.Exit:
                    return;

                default:
                    throw new ArgumentException("Mode is not implemented");
                }
            }
        }
예제 #9
0
        private void SetupModes()
        {
            SupportedChannelModes.Add(ModeFactory.AddChannelMode <ModeBan>());
            if (Options.IrcMode == IrcMode.Rfc2810 || Options.IrcMode == IrcMode.Modern)
            {
                SupportedChannelModes.Add(ModeFactory.AddChannelMode <ModeBanException>());
            }

            if (Options.IrcMode == IrcMode.Modern)
            {
                SupportedChannelModes.Add(ModeFactory.AddChannelMode <ModeColorless>());
            }

            SupportedChannelModes.Add(ModeFactory.AddChannelMode <ModeInvite>());
            if (Options.IrcMode == IrcMode.Rfc2810 || Options.IrcMode == IrcMode.Modern)
            {
                SupportedChannelModes.Add(ModeFactory.AddChannelMode <ModeInviteException>());
            }

            SupportedChannelModes.Add(ModeFactory.AddChannelMode <ModeKey>());
            SupportedChannelModes.Add(ModeFactory.AddChannelMode <ModeLimit>());
            SupportedChannelModes.Add(ModeFactory.AddChannelMode <ModeModerated>());
            SupportedChannelModes.Add(ModeFactory.AddChannelMode <ModeNoExternal>());
            SupportedChannelModes.Add(ModeFactory.AddChannelMode <ModeSecret>());
            SupportedChannelModes.Add(ModeFactory.AddChannelMode <ModePrivate>());
            SupportedChannelModes.Add(ModeFactory.AddChannelMode <ModeTopic>());
            if (Options.IrcMode == IrcMode.Modern)
            {
                SupportedChannelModes.Add(ModeFactory.AddChannelMode <ModeTranslate>());
            }

            if (Options.IrcMode == IrcMode.Modern)
            {
                SupportedRanks.Add(ModeFactory.AddChannelRank <ModeHalfOp>());
            }
            SupportedRanks.Add(ModeFactory.AddChannelRank <ModeOp>());
            SupportedRanks.Add(ModeFactory.AddChannelRank <ModeVoice>());

            SupportedUserModes.Add(ModeFactory.AddUserMode <ModeLocalOperator>());
            SupportedUserModes.Add(ModeFactory.AddUserMode <ModeInvisible>());
            SupportedUserModes.Add(ModeFactory.AddUserMode <ModeOperator>());
            SupportedUserModes.Add(ModeFactory.AddUserMode <ModeRestricted>());
            SupportedUserModes.Add(ModeFactory.AddUserMode <ModeWallops>());
        }
 public static void changeMode(string mode)
 {
     _mode = ModeFactory.getModeByName(mode);
 }
예제 #11
0
        public void ChordFactoryTest_getChordRecomendationsTriads()
        {
            Note         key            = NoteFactory.getNoteByName("C");
            Mode         mode           = ModeFactory.getModeByName("Ionian");
            List <Chord> recomendations = ChordFactory.getChordRecomendationsTriads(key, mode);

            Assert.AreEqual("C", recomendations.ElementAt(0).getName());
            Assert.AreEqual("Dm", recomendations.ElementAt(1).getName());
            Assert.AreEqual("Em", recomendations.ElementAt(2).getName());
            Assert.AreEqual("F", recomendations.ElementAt(3).getName());
            Assert.AreEqual("G", recomendations.ElementAt(4).getName());
            Assert.AreEqual("Am", recomendations.ElementAt(5).getName());
            Assert.AreEqual("Bdim", recomendations.ElementAt(6).getName());

            key            = NoteFactory.getNoteByName("F");
            mode           = ModeFactory.getModeByName("Lydian");
            recomendations = ChordFactory.getChordRecomendationsTriads(key, mode);
            Assert.AreEqual("F", recomendations.ElementAt(0).getName());
            Assert.AreEqual("G", recomendations.ElementAt(1).getName());
            Assert.AreEqual("Am", recomendations.ElementAt(2).getName());
            Assert.AreEqual("Bdim", recomendations.ElementAt(3).getName());
            Assert.AreEqual("C", recomendations.ElementAt(4).getName());
            Assert.AreEqual("Dm", recomendations.ElementAt(5).getName());
            Assert.AreEqual("Em", recomendations.ElementAt(6).getName());

            key            = NoteFactory.getNoteByName("G");
            mode           = ModeFactory.getModeByName("Mixolydian");
            recomendations = ChordFactory.getChordRecomendationsTriads(key, mode);
            Assert.AreEqual("G", recomendations.ElementAt(0).getName());
            Assert.AreEqual("Am", recomendations.ElementAt(1).getName());
            Assert.AreEqual("Bdim", recomendations.ElementAt(2).getName());
            Assert.AreEqual("C", recomendations.ElementAt(3).getName());
            Assert.AreEqual("Dm", recomendations.ElementAt(4).getName());
            Assert.AreEqual("Em", recomendations.ElementAt(5).getName());
            Assert.AreEqual("F", recomendations.ElementAt(6).getName());

            key            = NoteFactory.getNoteByName("D");
            mode           = ModeFactory.getModeByName("Dorian");
            recomendations = ChordFactory.getChordRecomendationsTriads(key, mode);
            Assert.AreEqual("Dm", recomendations.ElementAt(0).getName());
            Assert.AreEqual("Em", recomendations.ElementAt(1).getName());
            Assert.AreEqual("F", recomendations.ElementAt(2).getName());
            Assert.AreEqual("G", recomendations.ElementAt(3).getName());
            Assert.AreEqual("Am", recomendations.ElementAt(4).getName());
            Assert.AreEqual("Bdim", recomendations.ElementAt(5).getName());
            Assert.AreEqual("C", recomendations.ElementAt(6).getName());

            key            = NoteFactory.getNoteByName("A");
            mode           = ModeFactory.getModeByName("Aeolian");
            recomendations = ChordFactory.getChordRecomendationsTriads(key, mode);
            Assert.AreEqual("Am", recomendations.ElementAt(0).getName());
            Assert.AreEqual("Bdim", recomendations.ElementAt(1).getName());
            Assert.AreEqual("C", recomendations.ElementAt(2).getName());
            Assert.AreEqual("Dm", recomendations.ElementAt(3).getName());
            Assert.AreEqual("Em", recomendations.ElementAt(4).getName());
            Assert.AreEqual("F", recomendations.ElementAt(5).getName());
            Assert.AreEqual("G", recomendations.ElementAt(6).getName());

            key            = NoteFactory.getNoteByName("E");
            mode           = ModeFactory.getModeByName("Phrygian");
            recomendations = ChordFactory.getChordRecomendationsTriads(key, mode);
            Assert.AreEqual("Em", recomendations.ElementAt(0).getName());
            Assert.AreEqual("F", recomendations.ElementAt(1).getName());
            Assert.AreEqual("G", recomendations.ElementAt(2).getName());
            Assert.AreEqual("Am", recomendations.ElementAt(3).getName());
            Assert.AreEqual("Bdim", recomendations.ElementAt(4).getName());
            Assert.AreEqual("C", recomendations.ElementAt(5).getName());
            Assert.AreEqual("Dm", recomendations.ElementAt(6).getName());

            key            = NoteFactory.getNoteByName("B");
            mode           = ModeFactory.getModeByName("Locrian");
            recomendations = ChordFactory.getChordRecomendationsTriads(key, mode);
            Assert.AreEqual("Bdim", recomendations.ElementAt(0).getName());
            Assert.AreEqual("C", recomendations.ElementAt(1).getName());
            Assert.AreEqual("Dm", recomendations.ElementAt(2).getName());
            Assert.AreEqual("Em", recomendations.ElementAt(3).getName());
            Assert.AreEqual("F", recomendations.ElementAt(4).getName());
            Assert.AreEqual("G", recomendations.ElementAt(5).getName());
            Assert.AreEqual("Am", recomendations.ElementAt(6).getName());
        }