diff --git a/winVCR/VCRlogic/SMvcr.cs b/winVCR/VCRlogic/SMvcr.cs index c17cbd6..0e144cb 100644 --- a/winVCR/VCRlogic/SMvcr.cs +++ b/winVCR/VCRlogic/SMvcr.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Data; using System.Diagnostics; using System.Linq; using System.Text; @@ -26,11 +27,28 @@ public static class SMvcr public static event VCREventHandler evFastforwardbutton; + + public delegate void StatusLabelHandler(StatusEventArgs e); + + public static event StatusLabelHandler evUpdateStatus; + + public static void initSMvcr() { setState(new SvcrStandBy()); } + public static void triggerUpdateLabel(string txt) + { + var e = new StatusEventArgs(txt); + //trigger handler + + if (evUpdateStatus != null) + { + evUpdateStatus(e); + } + } + public static void setState(StateVCR e) { _concreteState = null; @@ -96,6 +114,8 @@ public class SvcrStandBy : StateVCR { Debug.Print("Standby\n"); + SMvcr.triggerUpdateLabel("Standby"); + SMvcr.evRecordbutton += evRecordbutton; SMvcr.evPlaybutton += evPlaybutton; SMvcr.evRewindbutton += evRewindbutton; @@ -151,6 +171,8 @@ public class SvcrPlay : StateVCR { Debug.Print("Play\n"); + SMvcr.triggerUpdateLabel("Play"); + SMvcr.evStopbutton += evStopbutton; SMvcr.evEndtape += evEndtape; SMvcr.evRewindbutton += evRewindbutton; @@ -216,6 +238,8 @@ public class SvcrRewind : StateVCR { Debug.Print("Rewind\n"); + SMvcr.triggerUpdateLabel("Rewind"); + SMvcr.evStopbutton += evStopbutton; SMvcr.evBeginningtape += evBeginningtape; SMvcr.evPlaybutton += evPlaybutton; @@ -281,6 +305,8 @@ public class SvcrFastForward : StateVCR { Debug.Print("FastForward\n"); + SMvcr.triggerUpdateLabel("FastForward"); + SMvcr.evStopbutton += evStopbutton; SMvcr.evEndtape += evEndtape; SMvcr.evRewindbutton += evRewindbutton; @@ -336,6 +362,8 @@ public class SvcrRecord : StateVCR { Debug.Print("Record\n"); + SMvcr.triggerUpdateLabel("Record"); + SMvcr.evStopbutton += evStopbutton; SMvcr.evEndtape += evEndtape; } @@ -375,4 +403,14 @@ public class SvcrRecord : StateVCR public override void evFastforwardbutton() { } +} + +public class StatusEventArgs +{ + public StatusEventArgs(string txt) + { + Text = txt; + } + + public string Text { get; private set; } } \ No newline at end of file diff --git a/winVCR/winVCR/Form1.cs b/winVCR/winVCR/Form1.cs index b966758..1235d27 100644 --- a/winVCR/winVCR/Form1.cs +++ b/winVCR/winVCR/Form1.cs @@ -25,13 +25,16 @@ namespace winVCR SMtape.initSMtape(); SMvcr.initSMvcr(); + SMvcr.evUpdateStatus += setLabelText; } - public void setLabelText(string txt) + + + public void setLabelText(StatusEventArgs e) { - statusLabel.Text = txt; + statusLabel.Text = e.Text; }