From 1a68c26e9fac5974f9a16019a94491d5f845edc8 Mon Sep 17 00:00:00 2001 From: Alexander Eckart Date: Thu, 9 May 2013 23:14:04 +0200 Subject: [PATCH] added SendProfile --- .../ClientServerLib/Vocaluxe/CCommands.cs | 35 ++++++-- .../Vocaluxe/VocaluxeStructs.cs | 7 ++ .../ClientTest/ClientTest.Designer.cs | 14 +++ ClientServerLib/ClientTest/ClientTest.cs | 40 ++++++++- Output/ClientServerLib.dll | Bin 40448 -> 40960 bytes Vocaluxe/Base/CProfiles.cs | 6 +- Vocaluxe/Base/Server/CVocaluxeServer.cs | 84 ++++++++++++------ Vocaluxe/Screens/CScreenNames.cs | 64 +++++++++---- 8 files changed, 199 insertions(+), 51 deletions(-) diff --git a/ClientServerLib/ClientServerLib/Vocaluxe/CCommands.cs b/ClientServerLib/ClientServerLib/Vocaluxe/CCommands.cs index 4da37608..ff9f518b 100644 --- a/ClientServerLib/ClientServerLib/Vocaluxe/CCommands.cs +++ b/ClientServerLib/ClientServerLib/Vocaluxe/CCommands.cs @@ -41,6 +41,9 @@ namespace Vocaluxe.Base.Server public const int CommandSendAvatarPicture = 500; public const int CommandSendAvatarPictureJpg = 501; + + public const int CommandSendProfile = 510; + #endregion Commands #region General @@ -69,7 +72,7 @@ namespace Vocaluxe.Base.Server #endregion Keyboard - #region Avatar + #region Profiles public static byte[] CreateCommandSendAvatarPicture(int Width, int Height, byte[] data) { SAvatarPicture ap = new SAvatarPicture(); @@ -86,17 +89,39 @@ namespace Vocaluxe.Base.Server return TryDeserialize(Message, out AvatarPicture); } - public static byte[] CreateCommandSendAvatarPictureJpg(byte[] data) + public static byte[] CreateCommandSendAvatarPictureJpg(byte[] AvatarJpgData) { SAvatarPicture ap = new SAvatarPicture(); ap.Height = 0; ap.Width = 0; - ap.data = new byte[data.Length]; - Array.Copy(data, ap.data, data.Length); + ap.data = new byte[AvatarJpgData.Length]; + Array.Copy(AvatarJpgData, ap.data, AvatarJpgData.Length); return Serialize(CommandSendAvatarPictureJpg, ap); } - #endregion Avatar + + public static byte[] CreateCommandSendProfile(byte[] AvatarJpgData, string PlayerName, int Difficulty) + { + SAvatarPicture ap = new SAvatarPicture(); + ap.Height = 0; + ap.Width = 0; + ap.data = new byte[AvatarJpgData.Length]; + Array.Copy(AvatarJpgData, ap.data, AvatarJpgData.Length); + + SProfile profile = new SProfile(); + profile.Avatar = ap; + profile.PlayerName = PlayerName; + profile.Difficulty = Difficulty; + + return Serialize(CommandSendProfile, profile); + } + + public static bool DecodeCommandSendProfile(byte[] Message, out SProfile Profile) + { + return TryDeserialize(Message, out Profile); + } + + #endregion Profiles #region Serializing private static byte[] Serialize(int Command, T obj) diff --git a/ClientServerLib/ClientServerLib/Vocaluxe/VocaluxeStructs.cs b/ClientServerLib/ClientServerLib/Vocaluxe/VocaluxeStructs.cs index 8242b9d2..99b917d2 100644 --- a/ClientServerLib/ClientServerLib/Vocaluxe/VocaluxeStructs.cs +++ b/ClientServerLib/ClientServerLib/Vocaluxe/VocaluxeStructs.cs @@ -13,4 +13,11 @@ namespace Vocaluxe.Base.Server public int Height; public byte[] data; } + + public struct SProfile + { + public SAvatarPicture Avatar; + public string PlayerName; + public int Difficulty; + } } \ No newline at end of file diff --git a/ClientServerLib/ClientTest/ClientTest.Designer.cs b/ClientServerLib/ClientTest/ClientTest.Designer.cs index 2d0584c9..65d2f867 100644 --- a/ClientServerLib/ClientTest/ClientTest.Designer.cs +++ b/ClientServerLib/ClientTest/ClientTest.Designer.cs @@ -48,6 +48,7 @@ this.btUp = new System.Windows.Forms.Button(); this.btDown = new System.Windows.Forms.Button(); this.btSendAvatar = new System.Windows.Forms.Button(); + this.btSendProfile = new System.Windows.Forms.Button(); this.statusStrip1.SuspendLayout(); this.SuspendLayout(); // @@ -239,11 +240,23 @@ this.btSendAvatar.UseVisualStyleBackColor = true; this.btSendAvatar.Click += new System.EventHandler(this.btSendAvatar_Click); // + // btSendProfile + // + this.btSendProfile.Enabled = false; + this.btSendProfile.Location = new System.Drawing.Point(831, 339); + this.btSendProfile.Name = "btSendProfile"; + this.btSendProfile.Size = new System.Drawing.Size(165, 23); + this.btSendProfile.TabIndex = 15; + this.btSendProfile.Text = "Send Profile"; + this.btSendProfile.UseVisualStyleBackColor = true; + this.btSendProfile.Click += new System.EventHandler(this.btSendProfile_Click); + // // ClientTest // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(1008, 550); + this.Controls.Add(this.btSendProfile); this.Controls.Add(this.btSendAvatar); this.Controls.Add(this.btDown); this.Controls.Add(this.btUp); @@ -293,6 +306,7 @@ private System.Windows.Forms.Button btUp; private System.Windows.Forms.Button btDown; private System.Windows.Forms.Button btSendAvatar; + private System.Windows.Forms.Button btSendProfile; } } diff --git a/ClientServerLib/ClientTest/ClientTest.cs b/ClientServerLib/ClientTest/ClientTest.cs index 2a33884c..f8c4a60d 100644 --- a/ClientServerLib/ClientTest/ClientTest.cs +++ b/ClientServerLib/ClientTest/ClientTest.cs @@ -3,8 +3,11 @@ using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; +using System.Drawing.Imaging; using System.Linq; using System.Net; +using System.IO; +using System.Runtime.InteropServices; using System.Text; using System.Windows.Forms; @@ -119,6 +122,7 @@ namespace ClientTest btLeft.Enabled = true; btRight.Enabled = true; btSendAvatar.Enabled = true; + btSendProfile.Enabled = true; }); } else @@ -136,6 +140,7 @@ namespace ClientTest btLeft.Enabled = false; btRight.Enabled = false; btSendAvatar.Enabled = false; + btSendProfile.Enabled = false; }); } } @@ -222,7 +227,40 @@ namespace ClientTest { data[i] = (byte) (i % 255); } - client.SendMessage(CCommands.CreateCommandSendAvatarPicture(512, 512, data), null); + client.SendMessage(CCommands.CreateCommandSendAvatarPicture(512, 512, data), OnResponse); + } + + private void btSendProfile_Click(object sender, EventArgs e) + { + if (!client.Connected || !loggedIn) + return; + + if (!File.Exists("test.jpg")) + { + byte[] data = new byte[512 * 512 * 4]; + for (int i = 0; i < data.Length; i++) + { + data[i] = (byte)(i % 255); + } + + Bitmap bmp = new Bitmap(512, 512); + BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb); + Marshal.Copy(data, 0, bmpData.Scan0, data.Length); + bmp.UnlockBits(bmpData); + + bmp.Save("test.jpg", ImageFormat.Jpeg); + bmp.Dispose(); + } + + if (File.Exists("test.jpg")) + { + byte[] data = File.ReadAllBytes("test.jpg"); + + if (data == null) + return; + + client.SendMessage(CCommands.CreateCommandSendProfile(data, "TestUser", 0), OnResponse); + } } } } diff --git a/Output/ClientServerLib.dll b/Output/ClientServerLib.dll index a3caa6116c3a859b05b818b3e3ae0aaf2d0d726f..6931132f5b8400fa0372ce81c076a7c3da7e4ed8 100644 GIT binary patch delta 18529 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 EH{yhDEdT%j delta 18164 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

snlkMf<5s!v*uGl{x6vGU2tP7C?yBLaFy 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 XE!v^jtsfZrUE>eA2Y;{aYqb9tj@}w- diff --git a/Vocaluxe/Base/CProfiles.cs b/Vocaluxe/Base/CProfiles.cs index 47efb51d..e5e7d964 100644 --- a/Vocaluxe/Base/CProfiles.cs +++ b/Vocaluxe/Base/CProfiles.cs @@ -133,7 +133,9 @@ namespace Vocaluxe.Base break; change.Profile.ID = _ProfileIDs.Dequeue(); + change.Profile.Avatar = _GetAvatar(change.Profile.AvatarFileName); _Profiles.Add(change.Profile.ID, change.Profile); + _ProfilesChanged = true; break; @@ -668,9 +670,11 @@ namespace Vocaluxe.Base private static CAvatar _GetAvatar(string fileName) { + string Name = Path.GetFileName(fileName); + foreach (int id in _Avatars.Keys) { - if (Path.GetFileName(_Avatars[id].FileName) == fileName) + if (Path.GetFileName(_Avatars[id].FileName) == Name) return _Avatars[id]; } return new CAvatar(-1); diff --git a/Vocaluxe/Base/Server/CVocaluxeServer.cs b/Vocaluxe/Base/Server/CVocaluxeServer.cs index b9bc7b99..3268d72a 100644 --- a/Vocaluxe/Base/Server/CVocaluxeServer.cs +++ b/Vocaluxe/Base/Server/CVocaluxeServer.cs @@ -149,41 +149,73 @@ namespace Vocaluxe.Base.Server SAvatarPicture avatarPictureJpg; if (CCommands.DecodeCommandSendAvatarPicture(Message, out avatarPictureJpg)) { - bool success = false; - try - { - string filename = Path.Combine(CSettings.FolderProfiles, "snapshot"); - int i = 0; - while (File.Exists(filename + i + ".jpg")) - i++; - - filename = filename + i + ".jpg"; - FileStream fs = File.Create(filename); - fs.Write(avatarPictureJpg.data, 0, avatarPictureJpg.data.Length); - fs.Flush(); - fs.Close(); - - CAvatar avatar = new CAvatar(-1); - success = avatar.LoadFromFile(filename); - - if (success) - { - CProfiles.AddAvatar(avatar); - } - - } - catch {} - - if (success) + if (_AddAvatar(avatarPictureJpg.data) != String.Empty) answer = CCommands.CreateCommandWithoutParams(CCommands.ResponseOK); } break; + case CCommands.CommandSendProfile: + SProfile profile; + if (CCommands.DecodeCommandSendProfile(Message, out profile)) + { + try + { + string AvatarFilename = _AddAvatar(profile.Avatar.data); + if (AvatarFilename != String.Empty) + { + CProfile p = new CProfile(); + p.Active = EOffOn.TR_CONFIG_ON; + p.AvatarFileName = AvatarFilename; + p.Difficulty = (EGameDifficulty)profile.Difficulty; + p.GuestProfile = EOffOn.TR_CONFIG_OFF; + p.PlayerName = profile.PlayerName; + p.SaveProfile(); + CProfiles.AddProfile(p); + answer = CCommands.CreateCommandWithoutParams(CCommands.ResponseOK); + } + } + catch (Exception) + { + + } + } + + break; + default: break; } return answer; } + + private static string _AddAvatar(byte[] JpgData) + { + string result = String.Empty; + try + { + string filename = Path.Combine(CSettings.FolderProfiles, "snapshot"); + int i = 0; + while (File.Exists(filename + i + ".jpg")) + i++; + + filename = filename + i + ".jpg"; + FileStream fs = File.Create(filename); + fs.Write(JpgData, 0, JpgData.Length); + fs.Flush(); + fs.Close(); + + CAvatar avatar = new CAvatar(-1); + if (avatar.LoadFromFile(filename)) + { + CProfiles.AddAvatar(avatar); + result = filename; + } + + } + catch { } + + return result; + } } } diff --git a/Vocaluxe/Screens/CScreenNames.cs b/Vocaluxe/Screens/CScreenNames.cs index 8db82dcf..dba74e56 100644 --- a/Vocaluxe/Screens/CScreenNames.cs +++ b/Vocaluxe/Screens/CScreenNames.cs @@ -62,7 +62,10 @@ namespace Vocaluxe.Screens private int _SelectingSwitchNr = -1; private int _SelectingFastPlayerNr = 0; private int _SelectedPlayerNr = -1; + private bool _AvatarsChanged = false; + private bool _ProfilesChanged = false; + #region public methods public override void Init() { base.Init(); @@ -100,6 +103,8 @@ namespace Vocaluxe.Screens _ChooseAvatarStatic = GetNewStatic(); _ChooseAvatarStatic.Visible = false; + + CProfiles.AddProfileChangedCallback(new ProfileChangedCallback(_OnProfileChanged)); } public override void LoadTheme(string xmlPath) @@ -619,6 +624,9 @@ namespace Vocaluxe.Screens public override bool UpdateGame() { + if (_ProfilesChanged || _AvatarsChanged) + _LoadProfiles(); + for (int i = 1; i <= CGame.NumPlayer; i++) { CSound.AnalyzeBuffer(i - 1); @@ -633,6 +641,41 @@ namespace Vocaluxe.Screens CSound.RecordStart(); _NameSelections[_NameSelection].Init(); + _LoadProfiles(); + _SetInteractionToButton(_Buttons[_ButtonStart]); + } + + public override void OnClose() + { + base.OnClose(); + CSound.RecordStop(); + } + + public override bool Draw() + { + base.Draw(); + + if (_ChooseAvatarStatic.Visible) + _ChooseAvatarStatic.Draw(); + for (int i = 1; i <= CGame.NumPlayer; i++) + _Equalizers["EqualizerPlayer" + i].Draw(); + return true; + } + #endregion public methods + + #region private methods + private void _OnProfileChanged(EProfileChangedFlags Flags) + { + if (EProfileChangedFlags.Avatar == (EProfileChangedFlags.Avatar & Flags)) + _AvatarsChanged = true; + + if (EProfileChangedFlags.Profile == (EProfileChangedFlags.Profile & Flags)) + _ProfilesChanged = true; + } + + private void _LoadProfiles() + { + _NameSelections[_NameSelection].UpdateList(); _UpdateSlides(); _UpdatePlayerNumber(); @@ -657,24 +700,8 @@ namespace Vocaluxe.Screens _SelectSlides[_SelectSlideDuetPlayer[i]].Visible = false; } - _SetInteractionToButton(_Buttons[_ButtonStart]); - } - - public override void OnClose() - { - base.OnClose(); - CSound.RecordStop(); - } - - public override bool Draw() - { - base.Draw(); - - if (_ChooseAvatarStatic.Visible) - _ChooseAvatarStatic.Draw(); - for (int i = 1; i <= CGame.NumPlayer; i++) - _Equalizers["EqualizerPlayer" + i].Draw(); - return true; + _ProfilesChanged = false; + _AvatarsChanged = false; } private void _StartSong() @@ -818,5 +845,6 @@ namespace Vocaluxe.Screens _Texts[_TextWarningProfiles].Visible = false; } } + #endregion private methods } } \ No newline at end of file