From 118d4b2df2cf54a716374104a05f28ba015f5404 Mon Sep 17 00:00:00 2001 From: SpoinkyNL Date: Tue, 13 Dec 2016 13:54:54 +0100 Subject: [PATCH] Added Skype to x86 wrapper --- .../Resources/Keyboards/default-profiles.zip | Bin 323954 -> 363376 bytes .../Artemis86Wrapper/Artemis86Wrapper.csproj | 10 ++- .../Intergrations/IIntergrationManager.cs | 10 +++ .../Intergrations/IIntergrationModel.cs | 6 ++ .../Intergrations/Skype/SkypeManager.cs | 59 ++++++++++++++++++ .../Intergrations/Skype/SkypeModel.cs | 13 ++++ Artemis/Artemis86Wrapper/Program.cs | 1 + Artemis/Artemis86Wrapper/SkypeManager.cs | 36 ----------- Artemis/Artemis86Wrapper/packages.config | 5 ++ 9 files changed, 103 insertions(+), 37 deletions(-) create mode 100644 Artemis/Artemis86Wrapper/Intergrations/IIntergrationManager.cs create mode 100644 Artemis/Artemis86Wrapper/Intergrations/IIntergrationModel.cs create mode 100644 Artemis/Artemis86Wrapper/Intergrations/Skype/SkypeManager.cs create mode 100644 Artemis/Artemis86Wrapper/Intergrations/Skype/SkypeModel.cs delete mode 100644 Artemis/Artemis86Wrapper/SkypeManager.cs create mode 100644 Artemis/Artemis86Wrapper/packages.config diff --git a/Artemis/Artemis/Resources/Keyboards/default-profiles.zip b/Artemis/Artemis/Resources/Keyboards/default-profiles.zip index 669be9f1bf503f745f5aae650183f227e20d56fd..a06bf1330380d1f5e013bd034338060374fa4300 100644 GIT binary patch delta 37661 zcmYhi1AHCP);=8DHX6IJjmEZ}#x_oDr)g|7w%MRbW81dv@8o{(|K6VGcV^C+S+n=r z3;UThxZXy;{E6is3>pj;4Bh~-Qw$Fd0SEH=iOL91dAa~6Lw06Tl=*)f%hSVC=q|y@ zK%G+*F2Qk8xqn4S&5X3lYe0j5R40IdFs6XoL12P9C)LIiq{uNtKm)#Q3u>MVpbc`8 zh}kx_CaA8kDMh&HsHw4skVbE3*vtfed4GwGsrDGa0i%H(L3 zW61doBa2AdCKL^y!49}i&RUxHf9!8kuVikWOd3y!t2zVaKwG)?QlK}^FVVNQ!6|(~ zXX%TaI7i}xei(|s{WI&mGhL?LV-0F6Xd3=!ysSYa7BpiWh=V?>#wfCoi z%cMNd;vMY0I$>SSiD1ewZiN-lO{Cc7^~`a6IO93VC(z3vk-^!Ar& z`H1imwHA&aUSeF>cUvK9fxJ2Yz>trcgS71u%=0le_(8&)J@f+kMX{%o3)4xQH8U-g zxnsz5w4&kZDwRJkK`$^ScO%~ff>Y(1ndQ%b$Yl3loG{kh3v3_GTRXB1r2V4DbG;ry zhVQip?fq@o_3HpFuWSC5$D7g++3AU~LHpKl75CGa>-rzs-c7<#7EMO&vVt*>-o|)a z@!@0}?y<?rlsxu@oT9j0tCUs7>yUY4rnKp&if;-4OG=S(3TO`xsG8 z`s}1oPFIqv=;J3QcgW)>MpAX7{iDWJ%tLe`l=eh{R0*NwrF9EuwR!j0v}#UT_O{uYI4 z9HI%xI0ym2DUy=&SK##GPO~hc{1gdO434{qIxm9diQXpPGVDZyCwrI{2N$7Y;AE6s zL*il4)+qXt}z{S7qdhd0=FXbGTRC|quxEOFGi-zgezmF=piBO7>bLRtCxmpA#sF;vdB{HiUBwHc4r50O- z0a>|DlK`#hiR;2e;^*s5`@(BA@6kj_yrUbA6pvi~9)k8&<~+Ob6p!*vo}+v}nKpPb+F9KG@qH&eUu=zEayNy+ZnMzscu zzn>cc5cWY=@t*PHj>Q!PUyX%${9QnfK&BJ;{asFRj#`=qiLyT+duvg9ji5}1^6+UV zVN3Uvmu+!G77 z++#UQG!rXhW0Z2cqd-E4PfGXzRK)?wmth
  • CcR6(1`L5|2bec$6%}6FG>UQIk_h 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
    X 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 + + ..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll + True + @@ -59,12 +63,16 @@ + + - + + + diff --git a/Artemis/Artemis86Wrapper/Intergrations/IIntergrationManager.cs b/Artemis/Artemis86Wrapper/Intergrations/IIntergrationManager.cs new file mode 100644 index 000000000..cf9dbbacb --- /dev/null +++ b/Artemis/Artemis86Wrapper/Intergrations/IIntergrationManager.cs @@ -0,0 +1,10 @@ +namespace Artemis86Wrapper.Intergrations +{ + public interface IIntergrationManager + { + IIntergrationModel IntergrationModel { get; set; } + + void Start(); + void Stop(); + } +} \ No newline at end of file diff --git a/Artemis/Artemis86Wrapper/Intergrations/IIntergrationModel.cs b/Artemis/Artemis86Wrapper/Intergrations/IIntergrationModel.cs new file mode 100644 index 000000000..61dc70757 --- /dev/null +++ b/Artemis/Artemis86Wrapper/Intergrations/IIntergrationModel.cs @@ -0,0 +1,6 @@ +namespace Artemis86Wrapper.Intergrations +{ + public interface IIntergrationModel + { + } +} \ No newline at end of file diff --git a/Artemis/Artemis86Wrapper/Intergrations/Skype/SkypeManager.cs b/Artemis/Artemis86Wrapper/Intergrations/Skype/SkypeManager.cs new file mode 100644 index 000000000..fb146c659 --- /dev/null +++ b/Artemis/Artemis86Wrapper/Intergrations/Skype/SkypeManager.cs @@ -0,0 +1,59 @@ +using System; +using System.Timers; +using SKYPE4COMLib; + +namespace Artemis86Wrapper.Intergrations.Skype +{ + public class SkypeManager : IIntergrationManager + { + public SkypeManager() + { + IntergrationModel = new SkypeModel(); + LoopTimer = new Timer(5000); + LoopTimer.Elapsed += UpdateSkype; + } + + public SKYPE4COMLib.Skype Skype { get; set; } + public Timer LoopTimer { get; set; } + + public IIntergrationModel IntergrationModel { get; set; } + + public void Start() + { + Skype = new SKYPE4COMLib.Skype(); + Skype.Attach(); + + LoopTimer.Start(); + } + + public void Stop() + { + LoopTimer.Stop(); + Skype = null; + } + + private void UpdateSkype(object sender, ElapsedEventArgs e) + { + try + { + var model = (SkypeModel) IntergrationModel; + + model.Name = Skype.CurrentUser.FullName; + model.Status = Skype.CurrentUserStatus; + model.MissedCalls = Skype.MissedCalls.Count; + model.ActiveCalls = Skype.ActiveCalls.Count; + model.UnreadMessages = 0; + model.MissedCalls = model.MissedCalls = model.ActiveCalls; + foreach (ChatMessage skypeMissedMessage in Skype.MissedMessages) + if ((skypeMissedMessage.Type == TChatMessageType.cmeSaid) && + (skypeMissedMessage.Status != TChatMessageStatus.cmsRead) && + (skypeMissedMessage.FromHandle != Skype.CurrentUser.Handle)) + model.UnreadMessages++; + } + catch (Exception ex) + { + // TODO: Log exception to main program + } + } + } +} \ No newline at end of file diff --git a/Artemis/Artemis86Wrapper/Intergrations/Skype/SkypeModel.cs b/Artemis/Artemis86Wrapper/Intergrations/Skype/SkypeModel.cs new file mode 100644 index 000000000..b140f18a8 --- /dev/null +++ b/Artemis/Artemis86Wrapper/Intergrations/Skype/SkypeModel.cs @@ -0,0 +1,13 @@ +using SKYPE4COMLib; + +namespace Artemis86Wrapper.Intergrations.Skype +{ + public class SkypeModel : IIntergrationModel + { + public string Name { get; set; } + public int UnreadMessages { get; set; } + public int MissedCalls { get; set; } + public int ActiveCalls { get; set; } + public TUserStatus Status { get; set; } + } +} \ No newline at end of file diff --git a/Artemis/Artemis86Wrapper/Program.cs b/Artemis/Artemis86Wrapper/Program.cs index a6fc53b57..779c38c3c 100644 --- a/Artemis/Artemis86Wrapper/Program.cs +++ b/Artemis/Artemis86Wrapper/Program.cs @@ -1,4 +1,5 @@ using System; +using Artemis86Wrapper.Intergrations.Skype; namespace Artemis86Wrapper { diff --git a/Artemis/Artemis86Wrapper/SkypeManager.cs b/Artemis/Artemis86Wrapper/SkypeManager.cs deleted file mode 100644 index 28e3bf88e..000000000 --- a/Artemis/Artemis86Wrapper/SkypeManager.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System; -using System.Timers; -using SKYPE4COMLib; - -namespace Artemis86Wrapper -{ - public class SkypeManager - { - private readonly Timer _loopTimer; - - public SkypeManager() - { - _loopTimer = new Timer(5000); - _loopTimer.Elapsed += UpdateSkype; - } - - public Skype Skype { get; set; } - - public void Start() - { - Skype = new Skype(); - _loopTimer.Start(); - } - - public void Stop() - { - _loopTimer.Stop(); - Skype = null; - } - - private void UpdateSkype(object sender, ElapsedEventArgs e) - { - Console.WriteLine("Missed messages: " + Skype.Messages.Count); - } - } -} \ No newline at end of file diff --git a/Artemis/Artemis86Wrapper/packages.config b/Artemis/Artemis86Wrapper/packages.config new file mode 100644 index 000000000..92824ba6e --- /dev/null +++ b/Artemis/Artemis86Wrapper/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file