Ejemplo n.º 1
0
            public short ReadKey(int time, TimedInputCallback callback, CharTranslator translator)
            {               // flush any waiting input and pause thie thread while it is looking for input
                if (m_temp != null && m_temp.Length > 0)
                {
                    m_conversation.WriteLine(m_temp); m_temp = "";
                }
                this.m_conversation.Suspend();

                // gather input
                short          ch = 0;
                ConsoleKeyInfo info;

                do
                {
                    lock (m_conversation.SyncRoot)
                    {
                        if (m_conversation.DataReady == false)
                        {                           // should never happen because this thread is only resumed when this mobile.OnThink()
                            //  sees that there is DataReady
                            Thread.Sleep(250);
                            continue;
                        }

                        info = new ConsoleKeyInfo(m_conversation.ReadKey, ConsoleKey.Y, false, false, false);
                    }

                    ch = translator(info.KeyChar);
                } while (ch == 0);
                return(ch);
            }
Ejemplo n.º 2
0
        public override short ReadKey(int time, TimedInputCallback callback, CharTranslator translator)
        {
            string inputLine;

            do
            {
                inputLine = inputBuffer.Dequeue();
            } while (inputLine.Length == 0);
            return(translator(inputLine[0]));
        }
 public void SelectAllDataNChar()
 {
     //Setup 
     var cmd = CreateTextCommand(SelectTestDataSQL());
     var t = new CharTranslator(UNIT_TEST_COL_NAME);
     //Act
     var data = t.Translate(ExecuteDataTable(cmd));
     //Assert
     Assert.AreEqual(5, data.Count);
 }
Ejemplo n.º 4
0
        public short ReadKey(int time, TimedInputCallback callback, CharTranslator translator)
        {
            short ch;

            do
            {
                ConsoleKeyInfo info = Console.ReadKey();
                ch = translator(info.KeyChar);
            } while (ch == 0);
            return(ch);
        }
        public void SelectAllDataBigIntWithFilter ()
        {
            //setup
            const char testvalue = 'A';
            var t = new CharTranslator(UNIT_TEST_COL_NAME);
            var cmd = CreateTextCommand(SelectTestDataSQL(), "Where col = @testValue");
            cmd.Parameters.Add(testvalue.ToSqlParameter("@testValue"));

            //Act
            var data = t.Translate(ExecuteDataRow(cmd));

            //Asert
            Assert.AreEqual('A', data);
        }
Ejemplo n.º 6
0
 public short ReadKey(
     int time, TimedInputCallback callback, CharTranslator translator
     )
 {
     /*
      * short ch;
      * do
      * {
      * ConsoleKeyInfo info = Console.ReadKey();
      * ch = translator(info.KeyChar);
      * } while (ch == 0);
      */
     _ed.WriteMessage("\nReadKey called.\n");
     return(0);
 }
Ejemplo n.º 7
0
        public short ReadKey(int time, TimedInputCallback callback, CharTranslator translator)
        {
            FlushBuffer();
            lineCount = 0;

            while (true)
            {
                if (time > 0)
                {
                    int sleeps = 0;
                    while (!Console.KeyAvailable)
                    {
                        Thread.Sleep(100);
                        if (Console.KeyAvailable)
                        {
                            break;
                        }

                        sleeps++;
                        if (sleeps == time)
                        {
                            sleeps = 0;
                            if (callback() == true)
                            {
                                return(0);
                            }
                        }
                    }
                }

                ConsoleKeyInfo info = Console.ReadKey(true);
                short          zkey = ConsoleKeyToZSCII(info.Key);
                if (zkey != 0)
                {
                    return(zkey);
                }

                zkey = translator(info.KeyChar);
                if (zkey != 0)
                {
                    return(zkey);
                }
            }
        }
Ejemplo n.º 8
0
 public short ReadKey(int time, TimedInputCallback callback, CharTranslator translator)
 {
     short ch;
     do
     {
         ConsoleKeyInfo info = Console.ReadKey();
         ch = translator(info.KeyChar);
     } while (ch == 0);
     return ch;
 }
Ejemplo n.º 9
0
 public virtual short ReadKey(int time, TimedInputCallback callback, CharTranslator translator)
 {
     return(next.ReadKey(time, callback, translator));
 }
Ejemplo n.º 10
0
 public short ReadKey(
     int time, TimedInputCallback callback, CharTranslator translator
     )
 {
     /*
       short ch;
       do
       {
     ConsoleKeyInfo info = Console.ReadKey();
     ch = translator(info.KeyChar);
       } while (ch == 0);
       */
       _ed.WriteMessage("\nReadKey called.\n");
       return 0;
 }
Ejemplo n.º 11
0
			public short ReadKey(int time, TimedInputCallback callback, CharTranslator translator)
            {   // flush any waiting input and pause thie thread while it is looking for input
                if (m_temp != null && m_temp.Length > 0) { m_conversation.WriteLine(m_temp); m_temp = ""; }
                this.m_conversation.Suspend();

                // gather input
				short ch=0;
				ConsoleKeyInfo info;
				do
				{
					lock (m_conversation.SyncRoot)
					{
						if (m_conversation.DataReady == false)
                        {   // should never happen because this thread is only resumed when this mobile.OnThink()
                            //  sees that there is DataReady
							Thread.Sleep(250);
							continue;
						}

						info = new ConsoleKeyInfo(m_conversation.ReadKey, ConsoleKey.Y, false, false, false);
					}

					ch = translator(info.KeyChar);
				} while (ch == 0);
				return ch;
			}
Ejemplo n.º 12
0
 public abstract short ReadKey(int time, TimedInputCallback callback, CharTranslator translator);
Ejemplo n.º 13
0
        public override short ReadKey(int time, TimedInputCallback callback, CharTranslator translator)
        {
            ConsoleKeyInfo info = Console.ReadKey(true);

            return(translator(info.KeyChar));
        }
Ejemplo n.º 14
0
 short IZMachineIO.ReadKey(int time, TimedInputCallback callback, CharTranslator translator)
 {
     throw new AssertFailedException("Unexpected character input request");
 }
Ejemplo n.º 15
0
 public override short ReadKey(int time, TimedInputCallback callback, CharTranslator translator)
 {
     ConsoleKeyInfo info = Console.ReadKey(true);
     return translator(info.KeyChar);
 }
Ejemplo n.º 16
0
 public abstract short ReadKey(int time, TimedInputCallback callback, CharTranslator translator);
Ejemplo n.º 17
0
 public override short ReadKey(int time, TimedInputCallback callback, CharTranslator translator)
 {
     string inputLine;
     do { inputLine = inputBuffer.Dequeue(); } while (inputLine.Length == 0);
     return translator(inputLine[0]);
 }
Ejemplo n.º 18
0
        public short ReadKey(int time, TimedInputCallback callback, CharTranslator translator)
        {
            FlushBuffer();
            lineCount = 0;

            while (true)
            {
                if (time > 0)
                {
                    int sleeps = 0;
                    while (!Console.KeyAvailable)
                    {
                        Thread.Sleep(100);
                        if (Console.KeyAvailable)
                            break;

                        sleeps++;
                        if (sleeps == time)
                        {
                            sleeps = 0;
                            if (callback() == true)
                                return 0;
                        }
                    }
                }

                ConsoleKeyInfo info = Console.ReadKey(true);
                short zkey = ConsoleKeyToZSCII(info.Key);
                if (zkey != 0)
                    return zkey;

                zkey = translator(info.KeyChar);
                if (zkey != 0)
                    return zkey;
            }
        }
Ejemplo n.º 19
0
        short IZMachineIO.ReadKey(int time, TimedInputCallback callback, CharTranslator translator)
        {
            PerformSplit(targetSplit);

            if (unicode)
                Glk.glk_request_char_event_uni(currentWin);
            else
                Glk.glk_request_char_event(currentWin);

            Glk.glk_request_timer_events((uint)(time * 100));

            event_t ev;
            bool done = false;
            short result = 0;
            do
            {
                Glk.glk_select(out ev);

                switch (ev.type)
                {
                    case EvType.CharInput:
                        if (ev.win == currentWin)
                        {
                            if (ev.val1 <= 255 || (unicode && ev.val1 <= 0x10000))
                                result = translator((char)ev.val1);
                            else
                                result = GlkKeyToZSCII((KeyCode)ev.val1);

                            if (result != 0)
                                done = true;
                            else if (unicode)
                                Glk.glk_request_char_event_uni(currentWin);
                            else
                                Glk.glk_request_char_event(currentWin);
                        }
                        break;

                    case EvType.Timer:
                        if (callback() == true)
                        {
                            Glk.glk_cancel_char_event(currentWin);
                            done = true;
                        }
                        break;

                    case EvType.Arrange:
                        UpdateScreenSize();
                        break;

                    case EvType.SoundNotify:
                        SoundNotify();
                        break;
                }
            }
            while (!done);

            Glk.glk_request_timer_events(0);

            return result;
        }
Ejemplo n.º 20
0
 public virtual short ReadKey(int time, TimedInputCallback callback, CharTranslator translator)
 {
     return next.ReadKey(time, callback, translator);
 }
Ejemplo n.º 21
0
        short IZMachineIO.ReadKey(int time, TimedInputCallback callback, CharTranslator translator)
        {
            PerformSplit(targetSplit);

            if (unicode)
            {
                Glk.glk_request_char_event_uni(currentWin);
            }
            else
            {
                Glk.glk_request_char_event(currentWin);
            }

            Glk.glk_request_timer_events((uint)(time * 100));

            event_t ev;
            bool    done   = false;
            short   result = 0;

            do
            {
                Glk.glk_select(out ev);

                switch (ev.type)
                {
                case EvType.CharInput:
                    if (ev.win == currentWin)
                    {
                        if (ev.val1 <= 255 || (unicode && ev.val1 <= 0x10000))
                        {
                            result = translator((char)ev.val1);
                        }
                        else
                        {
                            result = GlkKeyToZSCII((KeyCode)ev.val1);
                        }

                        if (result != 0)
                        {
                            done = true;
                        }
                        else if (unicode)
                        {
                            Glk.glk_request_char_event_uni(currentWin);
                        }
                        else
                        {
                            Glk.glk_request_char_event(currentWin);
                        }
                    }
                    break;

                case EvType.Timer:
                    if (callback() == true)
                    {
                        Glk.glk_cancel_char_event(currentWin);
                        done = true;
                    }
                    break;

                case EvType.Arrange:
                    UpdateScreenSize();
                    break;

                case EvType.SoundNotify:
                    SoundNotify();
                    break;
                }
            }while (!done);

            Glk.glk_request_timer_events(0);

            return(result);
        }