From: <sa...@us...> - 2009-05-12 15:49:43
|
Revision: 2860 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2860&view=rev Author: saamand Date: 2009-05-12 15:49:36 +0000 (Tue, 12 May 2009) Log Message: ----------- Modified Paths: -------------- trunk/plugins/MyLyrics/LyricsEngine/LRC/SimpleLRC.cs trunk/plugins/MyLyrics/LyricsEngine/LRC/SimpleLRCFormat.cs trunk/plugins/MyLyrics/LyricsEngine/LRC/SimpleLRCTimeAndLine.cs trunk/plugins/MyLyrics/LyricsEngine/LRC/SimpleLRCTimeAndLineCollection.cs trunk/plugins/MyLyrics/LyricsEngine/LyricSearch.cs trunk/plugins/MyLyrics/LyricsEngine/LyricsController.cs trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/Actionext.cs trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/HotLyrics.cs trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/LrcFinder.cs trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/LyrDB.cs trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/Lyrics007.cs trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/LyricsOnDemand.cs trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/SeekLyrics.cs trunk/plugins/MyLyrics/LyricsEngine/Web References/org.lyricwiki/Reference.cs trunk/plugins/MyLyrics/LyricsEngine/Web References/org.lyricwiki/server.wsdl trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/LyricsLibrary.cs trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/MusicDatabaseBrowse.cs trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/MyLyricsSetup.Designer.cs trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/MyLyricsSetup.cs trunk/plugins/MyLyrics/My Lyrics/MyLyrics.cs trunk/plugins/MyLyrics/My Lyrics/MyLyrics.csproj trunk/plugins/MyLyrics/My Lyrics/MyLyricsExternCode.cs trunk/plugins/MyLyrics/My Lyrics/MyLyricsSettings.cs trunk/plugins/MyLyrics/My Lyrics/change log.txt Modified: trunk/plugins/MyLyrics/LyricsEngine/LRC/SimpleLRC.cs =================================================================== --- trunk/plugins/MyLyrics/LyricsEngine/LRC/SimpleLRC.cs 2009-05-10 22:18:04 UTC (rev 2859) +++ trunk/plugins/MyLyrics/LyricsEngine/LRC/SimpleLRC.cs 2009-05-12 15:49:36 UTC (rev 2860) @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Text; using System.IO; +using System.Collections; namespace LyricsEngine.LRC { @@ -9,14 +10,22 @@ { string artist; string title; + string offset; string album; string lyric; bool isValid; - System.Collections.ArrayList lyricLines; - System.Collections.ArrayList simpleLRCTimeAndLineArray; + ArrayList lyricLines; + private ArrayList simpleLRCTimeAndLineArray; + private ArrayList simpleLRCTimeAndLineArrayWithOffset; SimpleLRCTimeAndLineCollection simpleLRCTimeAndLineCollection; + SimpleLRCTimeAndLineCollection simpleLRCTimeAndLineCollectionWithOffset; + + /// <summary> + /// Constructor used in the MyLyrics configuration + /// </summary> + /// <param name="file"></param> public SimpleLRC(string file) { FileInfo fileInfo = new FileInfo(file); @@ -52,7 +61,7 @@ this.artist = artist; this.title = title; - string[] separators = new string[1]{"\n"}; + string[] separators = new string[1] { "\n" }; string[] lines = lyric.Split(separators, StringSplitOptions.None); string line = ""; lyricLines = new System.Collections.ArrayList(); @@ -75,6 +84,24 @@ simpleLRCTimeAndLineCollection = new SimpleLRCTimeAndLineCollection((SimpleLRCTimeAndLine[])simpleLRCTimeAndLineArray.ToArray(typeof(SimpleLRCTimeAndLine))); isValid = true; } + + simpleLRCTimeAndLineArrayWithOffset = new System.Collections.ArrayList(); + + int offsetInt = 0; + + if (int.TryParse(offset, out offsetInt)) + { + for (int i = 0; i < simpleLRCTimeAndLineArray.Count; i++) + { + simpleLRCTimeAndLineArrayWithOffset.Add(((SimpleLRCTimeAndLine)simpleLRCTimeAndLineArray[i]).IncludeOffset(offsetInt)); + } + + simpleLRCTimeAndLineCollectionWithOffset = new SimpleLRCTimeAndLineCollection((SimpleLRCTimeAndLine[])simpleLRCTimeAndLineArrayWithOffset.ToArray(typeof(SimpleLRCTimeAndLine))); + } + else + { + simpleLRCTimeAndLineCollectionWithOffset = simpleLRCTimeAndLineCollection; + } } private bool getLRCinfoFromFile(ref string line, bool originalLine) @@ -107,28 +134,28 @@ int NEXT = 1; int minStart, minLength, secStart, secLength, msecStart, msecLength = 0; - long min, sec, msec = 0; + int min, sec, msec = 0; sec = 0; minStart = NEXT; minLength = m.Value.IndexOf(":") - minStart; - min = long.Parse(m.Value.Substring(minStart, minLength)); + min = int.Parse(m.Value.Substring(minStart, minLength)); secStart = minStart + minLength + NEXT; if (m.Value.IndexOf(".") != -1 && m.Value.IndexOf(".") < m.Value.IndexOf("]")) { secLength = m.Value.IndexOf(".") - secStart; - sec = long.Parse(m.Value.Substring(secStart, secLength)); + sec = int.Parse(m.Value.Substring(secStart, secLength)); msecStart = secStart + secLength + NEXT; msecLength = m.Value.IndexOf("]") - msecStart; - msec = long.Parse(m.Value.Substring(msecStart, msecLength)); + msec = int.Parse(m.Value.Substring(msecStart, msecLength)); } else { secLength = m.Value.IndexOf("]") - secStart; - sec = long.Parse(m.Value.Substring(secStart, secLength)); + sec = int.Parse(m.Value.Substring(secStart, secLength)); } string lineTemp = lineWithNewLine; @@ -165,6 +192,13 @@ album = LyricsEngine.LyricUtil.CapatalizeString((album.Substring(0, album.LastIndexOf("]")))); return true; } + + else if ((m = LRC.SimpleLRCFormat.OffsetLineStartRegex.Match(line)).Success) + { + offset = line.Substring(m.Index + m.Length); + offset = LyricsEngine.LyricUtil.CapatalizeString((offset.Substring(0, offset.LastIndexOf("]")))); + return true; + } else { return true; @@ -187,6 +221,11 @@ get { return album; } } + public string Offset + { + get { return offset; } + } + public string Lyric { get { return lyric; } @@ -197,10 +236,11 @@ get { return isValid; } } - public SimpleLRCTimeAndLineCollection SimpleLRCTimeAndLineCollection + public SimpleLRCTimeAndLineCollection SimpleLRCTimeAndLineCollectionWithOffset { - get { return simpleLRCTimeAndLineCollection; } + get { return simpleLRCTimeAndLineCollectionWithOffset; } } + #endregion } } Modified: trunk/plugins/MyLyrics/LyricsEngine/LRC/SimpleLRCFormat.cs =================================================================== --- trunk/plugins/MyLyrics/LyricsEngine/LRC/SimpleLRCFormat.cs 2009-05-10 22:18:04 UTC (rev 2859) +++ trunk/plugins/MyLyrics/LyricsEngine/LRC/SimpleLRCFormat.cs 2009-05-12 15:49:36 UTC (rev 2860) @@ -9,6 +9,7 @@ { public static Regex ArtistLineStartRegex = new Regex(@"\[ar\w*\:", RegexOptions.IgnoreCase); public static Regex TitleLineStartRegex = new Regex(@"\[ti\w*\:", RegexOptions.IgnoreCase); + public static Regex OffsetLineStartRegex = new Regex(@"\[offset\w*\:", RegexOptions.IgnoreCase); public static Regex AlbumLineStartRegex = new Regex(@"\[al\w*\:", RegexOptions.IgnoreCase); public static Regex LineLineRegex = new Regex(@"\[\d+:\d+\.*\d*\]"); } Modified: trunk/plugins/MyLyrics/LyricsEngine/LRC/SimpleLRCTimeAndLine.cs =================================================================== --- trunk/plugins/MyLyrics/LyricsEngine/LRC/SimpleLRCTimeAndLine.cs 2009-05-10 22:18:04 UTC (rev 2859) +++ trunk/plugins/MyLyrics/LyricsEngine/LRC/SimpleLRCTimeAndLine.cs 2009-05-12 15:49:36 UTC (rev 2860) @@ -6,10 +6,10 @@ { public class SimpleLRCTimeAndLine : IComparable { - long min, sec, msec; + int min, sec, msec; string line; - public SimpleLRCTimeAndLine(long min, long sec, long msec, string line) + public SimpleLRCTimeAndLine(int min, int sec, int msec, string line) { this.min = min; this.sec = sec; @@ -17,6 +17,27 @@ this.line = line; } + public SimpleLRCTimeAndLine IncludeOffset(int offset) + { + if ((this.min * 60 * 1000 + this.sec * 1000 + this.msec) < offset) + { + this.min = 0; + this.sec = 0; + this.msec = 0; + return this; + } + + DateTime time = new DateTime(1111, 11, 11, 0, this.min, this.sec, this.msec); + time = time.AddMilliseconds(-offset); + + this.min = time.Minute; + this.sec = time.Second; + this.msec = time.Millisecond; + + return this; + } + + public long Time { get { return min * 60 * 1000 + sec * 1000 + msec; } @@ -24,7 +45,8 @@ public string TimeString { - get { return min.ToString() + ":" + sec.ToString() + "." + msec.ToString(); } + get { return "[" + min.ToString() + ":" + (sec.ToString().Length == 2 ? sec.ToString() : "0" + sec.ToString()) + "." + (msec.ToString().Length >= 2 ? msec.ToString().Substring(0, 2) : msec.ToString() + "0") + "]"; } + } public string Line Modified: trunk/plugins/MyLyrics/LyricsEngine/LRC/SimpleLRCTimeAndLineCollection.cs =================================================================== --- trunk/plugins/MyLyrics/LyricsEngine/LRC/SimpleLRCTimeAndLineCollection.cs 2009-05-10 22:18:04 UTC (rev 2859) +++ trunk/plugins/MyLyrics/LyricsEngine/LRC/SimpleLRCTimeAndLineCollection.cs 2009-05-12 15:49:36 UTC (rev 2860) @@ -11,6 +11,11 @@ private object[] items; + public SimpleLRCTimeAndLineCollection() + { + + } + public SimpleLRCTimeAndLineCollection(object[] array) { items = array; Modified: trunk/plugins/MyLyrics/LyricsEngine/LyricSearch.cs =================================================================== (Binary files differ) Modified: trunk/plugins/MyLyrics/LyricsEngine/LyricsController.cs =================================================================== --- trunk/plugins/MyLyrics/LyricsEngine/LyricsController.cs 2009-05-10 22:18:04 UTC (rev 2859) +++ trunk/plugins/MyLyrics/LyricsEngine/LyricsController.cs 2009-05-12 15:49:36 UTC (rev 2860) @@ -179,7 +179,6 @@ internal void StatusUpdate(string artist, string title, string site, bool lyricFound) { - //LyricDiagnostics.TraceSource.TraceEvent(TraceEventType.Information, 0, LyricDiagnostics.elapsedTimeString() + artist + " - " + title + " - " + site + " - " +lyricFound.ToString() ); if (lyricFound) ++m_noOfLyricsFound; else Modified: trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/Actionext.cs =================================================================== --- trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/Actionext.cs 2009-05-10 22:18:04 UTC (rev 2859) +++ trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/Actionext.cs 2009-05-12 15:49:36 UTC (rev 2860) @@ -26,8 +26,6 @@ this.timeLimit = timeLimit; timer = new System.Timers.Timer(); - if (LyricDiagnostics.TraceSource != null) LyricDiagnostics.TraceSource.TraceEvent(TraceEventType.Information, 0, LyricDiagnostics.ElapsedTimeString() + "Actionext(" + artist + ", " + title + ")"); - artist = LyricUtil.RemoveFeatComment(artist); artist = LyricUtil.TrimForParenthesis(artist); artist = artist.Replace(" ", "_"); Modified: trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/HotLyrics.cs =================================================================== --- trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/HotLyrics.cs 2009-05-10 22:18:04 UTC (rev 2859) +++ trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/HotLyrics.cs 2009-05-12 15:49:36 UTC (rev 2860) @@ -26,8 +26,6 @@ this.timeLimit = timeLimit / 2; timer = new System.Timers.Timer(); - if (LyricDiagnostics.TraceSource != null) LyricDiagnostics.TraceSource.TraceEvent(TraceEventType.Information, 0, LyricDiagnostics.ElapsedTimeString() + "SeekLyrics(" + artist + ", " + title + ")"); - artist = LyricUtil.RemoveFeatComment(artist); artist = LyricUtil.TrimForParenthesis(artist); artist = LyricUtil.CapatalizeString(artist); Modified: trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/LrcFinder.cs =================================================================== --- trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/LrcFinder.cs 2009-05-10 22:18:04 UTC (rev 2859) +++ trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/LrcFinder.cs 2009-05-12 15:49:36 UTC (rev 2860) @@ -4,6 +4,8 @@ using System.Threading; using LyricsEngine.lrcfinder; using LyricsEngine; +using System.Data; +using System.Diagnostics; namespace LyricsEngine.LyricSites { @@ -13,14 +15,15 @@ private string artist = ""; private string title = ""; public static bool Abort; + public static string Domain = null; public LrcFinder() { - lrcFinder = new lrcfinder.LrcFinder(); + } - public string LrcFinderSearch(string artist, string title) + public string FindLRC(string artist, string title) { this.artist = artist; this.title = title; @@ -29,18 +32,32 @@ if (Abort == false) { + lrcFinder = new lrcfinder.LrcFinder(); + try { + if (string.IsNullOrEmpty(Domain)) + { + string[] domains = lrcFinder.NewDomain(); + Random r = new Random(); + Domain = domains[r.Next(domains.Length)] as string; + } + + lrcFinder.Url = Domain + @"/LrcFinder.asmx"; + lrcFinder.RequestEncoding = Encoding.UTF8; + lrc = lrcFinder.FindLRC(this.artist, this.title); } - catch + catch (Exception e) { lrc = "Not found"; } } - if (IsLyric(lrc)) + if (LrcReturned(lrc)) { + //Encoding iso8859 = Encoding.GetEncoding("ISO-8859-1"); + //string make = Encoding.UTF8.GetString(iso8859.GetBytes(lrc)); return lrc; } else @@ -49,8 +66,38 @@ } } + public DataTable FindLRCs(string artist, string title) + { + this.artist = artist; + this.title = title; - private bool IsLyric(string lrc) + DataTable lrcs = null; + + if (Abort == false) + { + lrcFinder = new lrcfinder.LrcFinder(); + + try + { + if (string.IsNullOrEmpty(Domain)) + { + string[] domains = lrcFinder.NewDomain(); + Random r = new Random(); + Domain = domains[r.Next(domains.Length)] as string; + } + + lrcs = lrcFinder.FindLRCs(this.artist, this.title); + } + catch + { + //lrcs = null; + } + } + + return lrcs; + } + + private bool LrcReturned(string lrc) { if (!lrc.Equals("Not found") && !lrc.Equals("NOT FOUND") && lrc.Length != 0) { @@ -62,10 +109,19 @@ } } - public bool SaveLyric(string lrcFile) + public bool SaveLrc(string lrcFile) { + lrcFinder = new lrcfinder.LrcFinder(); + try { + if (string.IsNullOrEmpty(Domain)) + { + string[] domains = lrcFinder.NewDomain(); + Random r = new Random(); + Domain = domains[r.Next(domains.Length)] as string; + } + string result = lrcFinder.SaveLRC(lrcFile); return result.Equals("DONE"); } Modified: trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/LyrDB.cs =================================================================== --- trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/LyrDB.cs 2009-05-10 22:18:04 UTC (rev 2859) +++ trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/LyrDB.cs 2009-05-12 15:49:36 UTC (rev 2860) @@ -29,8 +29,6 @@ m_EventStop_SiteSearches = eventStop_SiteSearches; - if (LyricDiagnostics.TraceSource != null) LyricDiagnostics.TraceSource.TraceEvent(TraceEventType.Information, 0, LyricDiagnostics.ElapsedTimeString() + "LyrDB(" + artist + ", " + title + ")"); - artist = LyricUtil.RemoveFeatComment(artist); artist = LyricUtil.TrimForParenthesis(artist); title = LyricUtil.RemoveFeatComment(title); Modified: trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/Lyrics007.cs =================================================================== --- trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/Lyrics007.cs 2009-05-10 22:18:04 UTC (rev 2859) +++ trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/Lyrics007.cs 2009-05-12 15:49:36 UTC (rev 2860) @@ -27,8 +27,6 @@ this.timeLimit = timeLimit / 2; timer = new System.Timers.Timer(); - if (LyricDiagnostics.TraceSource != null) LyricDiagnostics.TraceSource.TraceEvent(TraceEventType.Information, 0, LyricDiagnostics.ElapsedTimeString() + "Lyrics007(" + artist + ", " + title + ")"); - artist = LyricUtil.RemoveFeatComment(artist); artist = LyricUtil.TrimForParenthesis(artist); artist = artist.Replace("#", ""); Modified: trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/LyricsOnDemand.cs =================================================================== --- trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/LyricsOnDemand.cs 2009-05-10 22:18:04 UTC (rev 2859) +++ trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/LyricsOnDemand.cs 2009-05-12 15:49:36 UTC (rev 2860) @@ -26,8 +26,6 @@ this.timeLimit = timeLimit; timer = new System.Timers.Timer(); - if (LyricDiagnostics.TraceSource != null) LyricDiagnostics.TraceSource.TraceEvent(TraceEventType.Information, 0, LyricDiagnostics.ElapsedTimeString() + "LyricsOnDemand(" + artist + ", " + title + ")"); - artist = LyricUtil.RemoveFeatComment(artist); artist = LyricUtil.TrimForParenthesis(artist); artist = LyricUtil.DeleteSpecificChars(artist); Modified: trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/SeekLyrics.cs =================================================================== --- trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/SeekLyrics.cs 2009-05-10 22:18:04 UTC (rev 2859) +++ trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/SeekLyrics.cs 2009-05-12 15:49:36 UTC (rev 2860) @@ -27,8 +27,6 @@ this.timeLimit = timeLimit; timer = new System.Timers.Timer(); - if (LyricDiagnostics.TraceSource != null) LyricDiagnostics.TraceSource.TraceEvent(TraceEventType.Information, 0, LyricDiagnostics.ElapsedTimeString() + "SeekLyrics(" + artist + ", " + title + ")"); - artist = LyricUtil.RemoveFeatComment(artist); artist = LyricUtil.TrimForParenthesis(artist); artist = artist.Replace(" ", "-"); Modified: trunk/plugins/MyLyrics/LyricsEngine/Web References/org.lyricwiki/Reference.cs =================================================================== --- trunk/plugins/MyLyrics/LyricsEngine/Web References/org.lyricwiki/Reference.cs 2009-05-10 22:18:04 UTC (rev 2859) +++ trunk/plugins/MyLyrics/LyricsEngine/Web References/org.lyricwiki/Reference.cs 2009-05-12 15:49:36 UTC (rev 2860) @@ -47,12 +47,16 @@ private System.Threading.SendOrPostCallback getAlbumOperationCompleted; + private System.Threading.SendOrPostCallback getHometownOperationCompleted; + private System.Threading.SendOrPostCallback postArtistOperationCompleted; private System.Threading.SendOrPostCallback postAlbumOperationCompleted; private System.Threading.SendOrPostCallback postSongOperationCompleted; + private System.Threading.SendOrPostCallback postSong_flagsOperationCompleted; + private bool useDefaultCredentialsSetExplicitly; /// <remarks/> @@ -119,6 +123,9 @@ public event getAlbumCompletedEventHandler getAlbumCompleted; /// <remarks/> + public event getHometownCompletedEventHandler getHometownCompleted; + + /// <remarks/> public event postArtistCompletedEventHandler postArtistCompleted; /// <remarks/> @@ -128,6 +135,9 @@ public event postSongCompletedEventHandler postSongCompleted; /// <remarks/> + public event postSong_flagsCompletedEventHandler postSong_flagsCompleted; + + /// <remarks/> [System.Web.Services.Protocols.SoapRpcMethodAttribute("urn:LyricWiki#checkSongExists", RequestNamespace="urn:LyricWiki", ResponseNamespace="urn:LyricWiki")] [return: System.Xml.Serialization.SoapElementAttribute("return")] public bool checkSongExists(string artist, string song) { @@ -417,6 +427,38 @@ } /// <remarks/> + [System.Web.Services.Protocols.SoapRpcMethodAttribute("urn:LyricWiki#getHometown", RequestNamespace="urn:LyricWiki", ResponseNamespace="urn:LyricWiki")] + [return: System.Xml.Serialization.SoapElementAttribute("country")] + public string getHometown(string artist, out string state, out string hometown) { + object[] results = this.Invoke("getHometown", new object[] { + artist}); + state = ((string)(results[1])); + hometown = ((string)(results[2])); + return ((string)(results[0])); + } + + /// <remarks/> + public void getHometownAsync(string artist) { + this.getHometownAsync(artist, null); + } + + /// <remarks/> + public void getHometownAsync(string artist, object userState) { + if ((this.getHometownOperationCompleted == null)) { + this.getHometownOperationCompleted = new System.Threading.SendOrPostCallback(this.OngetHometownOperationCompleted); + } + this.InvokeAsync("getHometown", new object[] { + artist}, this.getHometownOperationCompleted, userState); + } + + private void OngetHometownOperationCompleted(object arg) { + if ((this.getHometownCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.getHometownCompleted(this, new getHometownCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// <remarks/> [System.Web.Services.Protocols.SoapRpcMethodAttribute("urn:LyricWiki#postArtist", RequestNamespace="urn:LyricWiki", ResponseNamespace="urn:LyricWiki")] [return: System.Xml.Serialization.SoapElementAttribute("dataUsed")] public bool postArtist(bool overwriteIfExists, ref string artist, string[] albums, out string message) { @@ -538,6 +580,49 @@ } /// <remarks/> + [System.Web.Services.Protocols.SoapRpcMethodAttribute("urn:LyricWiki#postSong_flags", RequestNamespace="urn:LyricWiki", ResponseNamespace="urn:LyricWiki")] + [return: System.Xml.Serialization.SoapElementAttribute("dataUsed")] + public bool postSong_flags(bool overwriteIfExists, ref string artist, ref string song, string lyrics, string[] onAlbums, string flags, out string message) { + object[] results = this.Invoke("postSong_flags", new object[] { + overwriteIfExists, + artist, + song, + lyrics, + onAlbums, + flags}); + artist = ((string)(results[1])); + song = ((string)(results[2])); + message = ((string)(results[3])); + return ((bool)(results[0])); + } + + /// <remarks/> + public void postSong_flagsAsync(bool overwriteIfExists, string artist, string song, string lyrics, string[] onAlbums, string flags) { + this.postSong_flagsAsync(overwriteIfExists, artist, song, lyrics, onAlbums, flags, null); + } + + /// <remarks/> + public void postSong_flagsAsync(bool overwriteIfExists, string artist, string song, string lyrics, string[] onAlbums, string flags, object userState) { + if ((this.postSong_flagsOperationCompleted == null)) { + this.postSong_flagsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnpostSong_flagsOperationCompleted); + } + this.InvokeAsync("postSong_flags", new object[] { + overwriteIfExists, + artist, + song, + lyrics, + onAlbums, + flags}, this.postSong_flagsOperationCompleted, userState); + } + + private void OnpostSong_flagsOperationCompleted(object arg) { + if ((this.postSong_flagsCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.postSong_flagsCompleted(this, new postSong_flagsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// <remarks/> public new void CancelAsync(object userState) { base.CancelAsync(userState); } @@ -603,6 +688,8 @@ private string lyricsField; + private string urlField; + /// <remarks/> public string artist { get { @@ -632,6 +719,16 @@ this.lyricsField = value; } } + + /// <remarks/> + public string url { + get { + return this.urlField; + } + set { + this.urlField = value; + } + } } /// <remarks/> @@ -979,6 +1076,48 @@ /// <remarks/> [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.1434")] + public delegate void getHometownCompletedEventHandler(object sender, getHometownCompletedEventArgs e); + + /// <remarks/> + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.1434")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class getHometownCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal getHometownCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// <remarks/> + public string Result { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + + /// <remarks/> + public string state { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[1])); + } + } + + /// <remarks/> + public string hometown { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[2])); + } + } + } + + /// <remarks/> + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.1434")] public delegate void postArtistCompletedEventHandler(object sender, postArtistCompletedEventArgs e); /// <remarks/> @@ -1126,6 +1265,56 @@ } } } + + /// <remarks/> + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.1434")] + public delegate void postSong_flagsCompletedEventHandler(object sender, postSong_flagsCompletedEventArgs e); + + /// <remarks/> + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.1434")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class postSong_flagsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal postSong_flagsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// <remarks/> + public bool Result { + get { + this.RaiseExceptionIfNecessary(); + return ((bool)(this.results[0])); + } + } + + /// <remarks/> + public string artist { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[1])); + } + } + + /// <remarks/> + public string song { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[2])); + } + } + + /// <remarks/> + public string message { + get { + this.RaiseExceptionIfNecessary(); + return ((string)(this.results[3])); + } + } + } } #pragma warning restore 1591 \ No newline at end of file Modified: trunk/plugins/MyLyrics/LyricsEngine/Web References/org.lyricwiki/server.wsdl =================================================================== --- trunk/plugins/MyLyrics/LyricsEngine/Web References/org.lyricwiki/server.wsdl 2009-05-10 22:18:04 UTC (rev 2859) +++ trunk/plugins/MyLyrics/LyricsEngine/Web References/org.lyricwiki/server.wsdl 2009-05-12 15:49:36 UTC (rev 2860) @@ -36,6 +36,7 @@ <xsd:element name="artist" type="xsd:string" /> <xsd:element name="song" type="xsd:string" /> <xsd:element name="lyrics" type="xsd:string" /> + <xsd:element name="url" type="xsd:string" /> </xsd:all> </xsd:complexType> <xsd:complexType name="SOTDResult"> @@ -129,6 +130,14 @@ <wsdl:part name="amazonLink" type="xsd:string" /> <wsdl:part name="songs" type="tns:ArrayOfstring" /> </wsdl:message> + <wsdl:message name="getHometownRequest"> + <wsdl:part name="artist" type="xsd:string" /> + </wsdl:message> + <wsdl:message name="getHometownResponse"> + <wsdl:part name="country" type="xsd:string" /> + <wsdl:part name="state" type="xsd:string" /> + <wsdl:part name="hometown" type="xsd:string" /> + </wsdl:message> <wsdl:message name="postArtistRequest"> <wsdl:part name="overwriteIfExists" type="xsd:boolean" /> <wsdl:part name="artist" type="xsd:string" /> @@ -167,6 +176,20 @@ <wsdl:part name="dataUsed" type="xsd:boolean" /> <wsdl:part name="message" type="xsd:string" /> </wsdl:message> + <wsdl:message name="postSong_flagsRequest"> + <wsdl:part name="overwriteIfExists" type="xsd:boolean" /> + <wsdl:part name="artist" type="xsd:string" /> + <wsdl:part name="song" type="xsd:string" /> + <wsdl:part name="lyrics" type="xsd:string" /> + <wsdl:part name="onAlbums" type="tns:AlbumResultArray" /> + <wsdl:part name="flags" type="xsd:string" /> + </wsdl:message> + <wsdl:message name="postSong_flagsResponse"> + <wsdl:part name="artist" type="xsd:string" /> + <wsdl:part name="song" type="xsd:string" /> + <wsdl:part name="dataUsed" type="xsd:boolean" /> + <wsdl:part name="message" type="xsd:string" /> + </wsdl:message> <wsdl:portType name="LyricWikiPortType"> <wsdl:operation name="checkSongExists"> <documentation>Check if a song exists in the LyricWiki database yet</documentation> @@ -213,6 +236,11 @@ <wsdl:input message="tns:getAlbumRequest" /> <wsdl:output message="tns:getAlbumResponse" /> </wsdl:operation> + <wsdl:operation name="getHometown"> + <documentation>Gets the hometown for an artist</documentation> + <wsdl:input message="tns:getHometownRequest" /> + <wsdl:output message="tns:getHometownResponse" /> + </wsdl:operation> <wsdl:operation name="postArtist"> <documentation>Posts data of an artist and their discography. Will create any missing album pages based on the data passed in.</documentation> <wsdl:input message="tns:postArtistRequest" /> @@ -228,6 +256,11 @@ <wsdl:input message="tns:postSongRequest" /> <wsdl:output message="tns:postSongResponse" /> </wsdl:operation> + <wsdl:operation name="postSong_flags"> + <documentation>Posts data for a single song. If correcting exiting lyrics, make sure overwriteIfExists is set to true. In the onAlbums array, if artist is left blank, it will default to the artist of the song.For the flags parameter, this is a comma-separated list of flags. For example, pass 'LW_SANDBOX' in to use the sandbox for testing and not actually update the site.</documentation> + <wsdl:input message="tns:postSong_flagsRequest" /> + <wsdl:output message="tns:postSong_flagsResponse" /> + </wsdl:operation> </wsdl:portType> <wsdl:binding name="LyricWikiBinding" type="tns:LyricWikiPortType"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc" /> @@ -312,6 +345,15 @@ <soap:body use="encoded" namespace="urn:LyricWiki" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </wsdl:output> </wsdl:operation> + <wsdl:operation name="getHometown"> + <soap:operation soapAction="urn:LyricWiki#getHometown" style="rpc" /> + <wsdl:input> + <soap:body use="encoded" namespace="urn:LyricWiki" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> + </wsdl:input> + <wsdl:output> + <soap:body use="encoded" namespace="urn:LyricWiki" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> + </wsdl:output> + </wsdl:operation> <wsdl:operation name="postArtist"> <soap:operation soapAction="urn:LyricWiki#postArtist" style="rpc" /> <wsdl:input> @@ -339,6 +381,15 @@ <soap:body use="encoded" namespace="urn:LyricWiki" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </wsdl:output> </wsdl:operation> + <wsdl:operation name="postSong_flags"> + <soap:operation soapAction="urn:LyricWiki#postSong_flags" style="rpc" /> + <wsdl:input> + <soap:body use="encoded" namespace="urn:LyricWiki" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> + </wsdl:input> + <wsdl:output> + <soap:body use="encoded" namespace="urn:LyricWiki" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> + </wsdl:output> + </wsdl:operation> </wsdl:binding> <wsdl:service name="LyricWiki"> <wsdl:port name="LyricWikiPort" binding="tns:LyricWikiBinding"> Modified: trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/LyricsLibrary.cs =================================================================== --- trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/LyricsLibrary.cs 2009-05-10 22:18:04 UTC (rev 2859) +++ trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/LyricsLibrary.cs 2009-05-12 15:49:36 UTC (rev 2860) @@ -366,7 +366,7 @@ if (lrc.IsValid && parent.cbUploadLrcAutomatically.Checked) { LyricsEngine.LyricSites.LrcFinder lrcFinder = new LyricsEngine.LyricSites.LrcFinder(); - lrcFinder.SaveLyric(lyrics); + lrcFinder.SaveLrc(lyrics); } btSave.Enabled = false; Modified: trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/MusicDatabaseBrowse.cs =================================================================== --- trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/MusicDatabaseBrowse.cs 2009-05-10 22:18:04 UTC (rev 2859) +++ trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/MusicDatabaseBrowse.cs 2009-05-12 15:49:36 UTC (rev 2860) @@ -296,7 +296,7 @@ m_noOfSearchesToComplete -= m_noOfSearchesCompleted; m_noOfSearchesCompleted = 0; m_noOfCurrentlySearches = 0; - + if (bwOnlineSearch.IsBusy) { Thread.Sleep(2000); @@ -396,7 +396,7 @@ lbStats.Text = string.Format("Lyrics: {0} - Lyrics in LyricsDB: {1} - Lyrics in MarkedDB: {2}", lvSongs.Items.Count, lyricsInLyricDB, lyricsInMarkedDB); } - private void ChangeSearchingSubItemsToCancelled() + private void ChangeStatusOnSubItems(bool cancelled) { foreach (ListViewItem lvi in lvSelectedSongs.Items) { @@ -404,16 +404,23 @@ { string artist = lvi.SubItems[0].Text; string title = lvi.SubItems[1].Text; - if (DatabaseUtil.IsTrackInLyricsMarkedDatabase(MyLyricsSettings.LyricsMarkedDB, artist, title).Equals(DatabaseUtil.LYRIC_FOUND)) + if (DatabaseUtil.IsTrackInLyricsMarkedDatabase(MyLyricsSettings.LyricsMarkedDB, artist, title).Equals(DatabaseUtil.LYRIC_MARKED)) { lvi.SubItems[2].Text = "MarkedDB"; + if (cancelled) + { + lvi.SubItems[3].Text = "-"; + } + else + { + lvi.SubItems[3].Text = "miss"; + } } else { lvi.SubItems[2].Text = "-"; + lvi.SubItems[3].Text = "-"; } - - lvi.SubItems[3].Text = "-"; } } } @@ -524,6 +531,7 @@ lvi.ImageIndex = 0; lvi.SubItems[2].Text = "LyricsDB"; lvi.SubItems[3].Text = "OK"; + lvi.EnsureVisible(); string capArtist = LyricUtil.CapatalizeString(artist); string capTitle = LyricUtil.CapatalizeString(title); @@ -543,16 +551,13 @@ } m_noOfCurrentlySearches -= 1; + ++m_noOfSearchesCompleted; - if (++m_noOfSearchesCompleted == m_noOfSearchesToComplete) - { - ChangeButtonsEnableState(); - RefreshSongsListView(); - } - break; } } + + //lvSelectedSongs.Update(); } private void lyricNotFoundMethod(String artist, String title, String message, String site) @@ -564,6 +569,7 @@ { lvi.SubItems[2].Text = "MarkedDB"; lvi.SubItems[3].Text = "miss"; + lvi.EnsureVisible(); string capArtist = LyricUtil.CapatalizeString(artist); string capTitle = LyricUtil.CapatalizeString(title); @@ -575,16 +581,13 @@ DatabaseUtil.SerializeLyricMarkedDB(); m_noOfCurrentlySearches -= 1; + ++m_noOfSearchesCompleted; - if (++m_noOfSearchesCompleted == m_noOfSearchesToComplete) - { - ChangeButtonsEnableState(); - RefreshSongsListView(); - } - break; } } + + //lvSelectedSongs.Update(); } @@ -592,11 +595,16 @@ // Called from worker thread using delegate and Control.Invoke private void ThreadFinishedMethod(string artist, string title, string message, string site) { - ; + ChangeButtonsEnableState(); + RefreshSongsListView(); + ChangeStatusOnSubItems(false); + + lvSelectedSongs.Update(); } private void ThreadExceptionMethod(Object o) { + lvSelectedSongs.Update(); } #endregion @@ -717,7 +725,7 @@ Thread.Sleep(500); RefreshSongsListView(); RefreshArtistStats(); - ChangeSearchingSubItemsToCancelled(); + ChangeStatusOnSubItems(true); } Modified: trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/MyLyricsSetup.Designer.cs =================================================================== --- trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/MyLyricsSetup.Designer.cs 2009-05-10 22:18:04 UTC (rev 2859) +++ trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/MyLyricsSetup.Designer.cs 2009-05-12 15:49:36 UTC (rev 2860) @@ -75,7 +75,11 @@ this.lbLyricsFound = new MediaPortal.UserInterface.Controls.MPLabel(); this.tabPageSetup = new MediaPortal.UserInterface.Controls.MPTabPage(); this.gbLrc = new MediaPortal.UserInterface.Controls.MPGroupBox(); + this.tbLrcTaggingName = new MediaPortal.UserInterface.Controls.MPTextBox(); + this.lbLrcTaggingName = new MediaPortal.UserInterface.Controls.MPLabel(); + this.tbLrcTaggingOffset = new MediaPortal.UserInterface.Controls.MPTextBox(); this.cbUploadLrcAutomatically = new MediaPortal.UserInterface.Controls.MPCheckBox(); + this.lbLrcTaggingOffset = new MediaPortal.UserInterface.Controls.MPLabel(); this.gbGUI = new MediaPortal.UserInterface.Controls.MPGroupBox(); this.tbLyricsLimit = new MediaPortal.UserInterface.Controls.MPTextBox(); this.cbAutoChangeToLineLimit = new MediaPortal.UserInterface.Controls.MPCheckBox(); @@ -624,15 +628,52 @@ // // gbLrc // + this.gbLrc.Controls.Add(this.tbLrcTaggingName); + this.gbLrc.Controls.Add(this.lbLrcTaggingName); + this.gbLrc.Controls.Add(this.tbLrcTaggingOffset); this.gbLrc.Controls.Add(this.cbUploadLrcAutomatically); + this.gbLrc.Controls.Add(this.lbLrcTaggingOffset); this.gbLrc.FlatStyle = System.Windows.Forms.FlatStyle.Popup; - this.gbLrc.Location = new System.Drawing.Point(5, 296); + this.gbLrc.Location = new System.Drawing.Point(5, 287); this.gbLrc.Name = "gbLrc"; - this.gbLrc.Size = new System.Drawing.Size(538, 45); + this.gbLrc.Size = new System.Drawing.Size(538, 64); this.gbLrc.TabIndex = 32; this.gbLrc.TabStop = false; this.gbLrc.Text = "LRC settings"; // + // tbLrcTaggingName + // + this.tbLrcTaggingName.BorderColor = System.Drawing.Color.Empty; + this.tbLrcTaggingName.Location = new System.Drawing.Point(355, 39); + this.tbLrcTaggingName.MaxLength = 30; + this.tbLrcTaggingName.Name = "tbLrcTaggingName"; + this.tbLrcTaggingName.Size = new System.Drawing.Size(122, 20); + this.tbLrcTaggingName.TabIndex = 18; + this.tbLrcTaggingName.Leave += new System.EventHandler(this.WriteMediaPortalXML); + // + // lbLrcTaggingName + // + this.lbLrcTaggingName.AutoSize = true; + this.lbLrcTaggingName.Location = new System.Drawing.Point(271, 42); + this.lbLrcTaggingName.Name = "lbLrcTaggingName"; + this.lbLrcTaggingName.Size = new System.Drawing.Size(78, 13); + this.lbLrcTaggingName.TabIndex = 17; + this.lbLrcTaggingName.Text = "Tagging name:"; + // + // tbLrcTaggingOffset + // + this.tbLrcTaggingOffset.BorderColor = System.Drawing.Color.Empty; + this.tbLrcTaggingOffset.Location = new System.Drawing.Point(146, 38); + this.tbLrcTaggingOffset.MaximumSize = new System.Drawing.Size(33, 20); + this.tbLrcTaggingOffset.MaxLength = 30; + this.tbLrcTaggingOffset.MinimumSize = new System.Drawing.Size(33, 20); + this.tbLrcTaggingOffset.Name = "tbLrcTaggingOffset"; + this.tbLrcTaggingOffset.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.tbLrcTaggingOffset.Size = new System.Drawing.Size(33, 20); + this.tbLrcTaggingOffset.TabIndex = 15; + this.tbLrcTaggingOffset.Text = "0"; + this.tbLrcTaggingOffset.Leave += new System.EventHandler(this.WriteMediaPortalXML); + // // cbUploadLrcAutomatically // this.cbUploadLrcAutomatically.AutoSize = true; @@ -645,6 +686,15 @@ this.cbUploadLrcAutomatically.UseVisualStyleBackColor = true; this.cbUploadLrcAutomatically.MouseLeave += new System.EventHandler(this.WriteMediaPortalXML); // + // lbLrcTaggingOffset + // + this.lbLrcTaggingOffset.AutoSize = true; + this.lbLrcTaggingOffset.Location = new System.Drawing.Point(13, 42); + this.lbLrcTaggingOffset.Name = "lbLrcTaggingOffset"; + this.lbLrcTaggingOffset.Size = new System.Drawing.Size(132, 13); + this.lbLrcTaggingOffset.TabIndex = 16; + this.lbLrcTaggingOffset.Text = "LRC tagging offset (msec):"; + // // gbGUI // this.gbGUI.Controls.Add(this.tbLyricsLimit); @@ -652,9 +702,9 @@ this.gbGUI.Controls.Add(this.lblyricLengthLimit); this.gbGUI.Controls.Add(this.cbUseAutoScrollAsDefault); this.gbGUI.FlatStyle = System.Windows.Forms.FlatStyle.Popup; - this.gbGUI.Location = new System.Drawing.Point(5, 211); + this.gbGUI.Location = new System.Drawing.Point(5, 196); this.gbGUI.Name = "gbGUI"; - this.gbGUI.Size = new System.Drawing.Size(538, 83); + this.gbGUI.Size = new System.Drawing.Size(538, 87); this.gbGUI.TabIndex = 33; this.gbGUI.TabStop = false; this.gbGUI.Text = "Gui settings"; @@ -663,10 +713,10 @@ // this.tbLyricsLimit.BorderColor = System.Drawing.Color.Empty; this.tbLyricsLimit.Font = new System.Drawing.Font("Microsoft Sans Serif", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tbLyricsLimit.Location = new System.Drawing.Point(141, 61); - this.tbLyricsLimit.MaximumSize = new System.Drawing.Size(24, 14); + this.tbLyricsLimit.Location = new System.Drawing.Point(146, 59); + this.tbLyricsLimit.MaximumSize = new System.Drawing.Size(24, 18); this.tbLyricsLimit.MaxLength = 30; - this.tbLyricsLimit.MinimumSize = new System.Drawing.Size(24, 14); + this.tbLyricsLimit.MinimumSize = new System.Drawing.Size(24, 18); this.tbLyricsLimit.Name = "tbLyricsLimit"; this.tbLyricsLimit.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.tbLyricsLimit.Size = new System.Drawing.Size(24, 18); @@ -678,7 +728,7 @@ // this.cbAutoChangeToLineLimit.AutoSize = true; this.cbAutoChangeToLineLimit.FlatStyle = System.Windows.Forms.FlatStyle.Popup; - this.cbAutoChangeToLineLimit.Location = new System.Drawing.Point(16, 42); + this.cbAutoChangeToLineLimit.Location = new System.Drawing.Point(16, 41); this.cbAutoChangeToLineLimit.Name = "cbAutoChangeToLineLimit"; this.cbAutoChangeToLineLimit.Size = new System.Drawing.Size(443, 17); this.cbAutoChangeToLineLimit.TabIndex = 7; @@ -692,7 +742,7 @@ // this.lblyricLengthLimit.AutoSize = true; this.lblyricLengthLimit.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblyricLengthLimit.Location = new System.Drawing.Point(38, 62); + this.lblyricLengthLimit.Location = new System.Drawing.Point(38, 60); this.lblyricLengthLimit.Name = "lblyricLengthLimit"; this.lblyricLengthLimit.Size = new System.Drawing.Size(103, 13); this.lblyricLengthLimit.TabIndex = 16; @@ -715,9 +765,9 @@ this.gbTag.Controls.Add(this.cbMusicTagAlwaysCheck); this.gbTag.Controls.Add(this.cbMusicTagWrite); this.gbTag.FlatStyle = System.Windows.Forms.FlatStyle.Popup; - this.gbTag.Location = new System.Drawing.Point(5, 347); + this.gbTag.Location = new System.Drawing.Point(5, 357); this.gbTag.Name = "gbTag"; - this.gbTag.Size = new System.Drawing.Size(538, 45); + this.gbTag.Size = new System.Drawing.Size(538, 44); this.gbTag.TabIndex = 31; this.gbTag.TabStop = false; this.gbTag.Text = "Music tags"; @@ -752,7 +802,7 @@ this.mpGroupBox3.Controls.Add(this.cbMoveSongFrom); this.mpGroupBox3.Controls.Add(this.cbAutoFetch); this.mpGroupBox3.FlatStyle = System.Windows.Forms.FlatStyle.Popup; - this.mpGroupBox3.Location = new System.Drawing.Point(5, 398); + this.mpGroupBox3.Location = new System.Drawing.Point(5, 406); this.mpGroupBox3.Name = "mpGroupBox3"; this.mpGroupBox3.Size = new System.Drawing.Size(538, 69); this.mpGroupBox3.TabIndex = 30; @@ -806,7 +856,7 @@ this.mpGroupBox2.FlatStyle = System.Windows.Forms.FlatStyle.Popup; this.mpGroupBox2.Location = new System.Drawing.Point(5, 5); this.mpGroupBox2.Name = "mpGroupBox2"; - this.mpGroupBox2.Size = new System.Drawing.Size(538, 50); + this.mpGroupBox2.Size = new System.Drawing.Size(538, 46); this.mpGroupBox2.TabIndex = 29; this.mpGroupBox2.TabStop = false; this.mpGroupBox2.Text = "Basic settings"; @@ -839,9 +889,9 @@ this.gbLyricSites.Controls.Add(this.rdLyricsMode); this.gbLyricSites.Controls.Add(this.rbUserSelectMode); this.gbLyricSites.FlatStyle = System.Windows.Forms.FlatStyle.Popup; - this.gbLyricSites.Location = new System.Drawing.Point(5, 61); + this.gbLyricSites.Location = new System.Drawing.Point(5, 52); this.gbLyricSites.Name = "gbLyricSites"; - this.gbLyricSites.Size = new System.Drawing.Size(538, 144); + this.gbLyricSites.Size = new System.Drawing.Size(538, 142); this.gbLyricSites.TabIndex = 28; this.gbLyricSites.TabStop = false; this.gbLyricSites.Text = "Lyrics search mode"; @@ -1053,8 +1103,8 @@ this.rbUserSelectMode.Name = "rbUserSelectMode"; this.rbUserSelectMode.Size = new System.Drawing.Size(107, 17); this.rbUserSelectMode.TabIndex = 22; - this.rbUserSelectMode.Tag = "User select mode"; - this.rbUserSelectMode.Text = "User select mode"; + this.rbUserSelectMode.Tag = "Custom mode"; + this.rbUserSelectMode.Text = "Custom mode"; this.rbUserSelectMode.UseVisualStyleBackColor = true; this.rbUserSelectMode.Leave += new System.EventHandler(this.WriteMediaPortalXML); this.rbUserSelectMode.CheckedChanged += new System.EventHandler(this.rdTrackBar_CheckedChanged); @@ -1284,5 +1334,9 @@ private System.Windows.Forms.RadioButton rbLrcMode; private MediaPortal.UserInterface.Controls.MPGroupBox gbLrc; internal MediaPortal.UserInterface.Controls.MPCheckBox cbUploadLrcAutomatically; + private MediaPortal.UserInterface.Controls.MPTextBox tbLrcTaggingOffset; + private MediaPortal.UserInterface.Controls.MPLabel lbLrcTaggingOffset; + private MediaPortal.UserInterface.Controls.MPTextBox tbLrcTaggingName; + private MediaPortal.UserInterface.Controls.MPLabel lbLrcTaggingName; } } \ No newline at end of file Modified: trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/MyLyricsSetup.cs =================================================================== --- trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/MyLyricsSetup.cs 2009-05-10 22:18:04 UTC (rev 2859) +++ trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/MyLyricsSetup.cs 2009-05-12 15:49:36 UTC (rev 2860) @@ -85,7 +85,7 @@ string[] m_strippedPrefixStrings; - const int m_NoOfCurrentSearchesAllowed = 6; + const int m_NoOfCurrentSearchesAllowed = 8; int m_Limit = 100; // Collections and arrays @@ -116,8 +116,6 @@ public MyLyricsSetup() { - //LyricDiagnostics.OpenLog(MediaPortal.Configuration.Config.GetFile(MediaPortal.Configuration.Config.Dir.Log, MyLyricsSettings.LogName)); - #region Initialize GUI and class InitializeComponent(); lyricsLibraryUC = new LyricsLibrary(this); @@ -279,6 +277,8 @@ cbUseAutoScrollAsDefault.Checked = xmlreader.GetValue("myLyrics", "useAutoscroll").Equals("yes"); cbAutoChangeToLineLimit.Checked = xmlreader.GetValue("myLyrics", "useAutoOnLyricLength").Equals("yes"); tbLyricsLimit.Text = xmlreader.GetValueAsString("myLyrics", "AutoLyricLength", "45"); + tbLrcTaggingOffset.Text = xmlreader.GetValueAsString("myLyrics", "LrcTaggingOffset", "0"); + tbLrcTaggingName.Text = xmlreader.GetValueAsString("myLyrics", "LrcTaggingName", ""); cbUploadLrcAutomatically.Checked = xmlreader.GetValue("myLyrics", "uploadLrcToLrcFinder").Equals("yes"); @@ -635,6 +635,7 @@ this.Invoke(m_DelegateLyricFound, value); } } + public Object[] LyricNotFound { set @@ -959,7 +960,7 @@ private void MyLyricsSetup_FormClosing(object sender, FormClosingEventArgs e) { - LyricDiagnostics.Dispose(); + //LyricDiagnostics.Dispose(); } private void timer_Tick(object sender, EventArgs e) @@ -1069,7 +1070,11 @@ cbActionext.Checked = true; } - WriteMediaPortalXML(null, null); + if (sender != null) + { + WriteMediaPortalXML(null, null); + } + } private void trackBar_ValueChanged(object sender, EventArgs e) @@ -1185,6 +1190,8 @@ xmlwriter.SetValueAsBool("myLyrics", "useAutoOnLyricLength", cbAutoChangeToLineLimit.Checked); xmlwriter.SetValue("myLyrics", "AutoLyricLength", tbLyricsLimit.Text); xmlwriter.SetValueAsBool("myLyrics", "uploadLrcToLrcFinder", cbUploadLrcAutomatically.Checked); + xmlwriter.SetValue("myLyrics", "LrcTaggingOffset", tbLrcTaggingOffset.Text); + xmlwriter.SetValue("myLyrics", "LrcTaggingName", tbLrcTaggingName.Text); xmlwriter.SetValueAsBool("myLyrics", "automaticFetch", cbAutoFetch.Checked); xmlwriter.SetValueAsBool("myLyrics", "automaticUpdateWhenFirstFound", cbAutomaticUpdate.Checked); xmlwriter.SetValueAsBool("myLyrics", "moveLyricFromMarkedDatabase", cbMoveSongFrom.Checked); Modified: trunk/plugins/MyLyrics/My Lyrics/MyLyrics.cs =================================================================== --- trunk/plugins/MyLyrics/My Lyrics/MyLyrics.cs 2009-05-10 22:18:04 UTC (rev 2859) +++ trunk/plugins/MyLyrics/My Lyrics/MyLyrics.cs 2009-05-12 15:49:36 UTC (rev 2860) @@ -23,6 +23,7 @@ using MediaPortal.GUI.Music; using System.Collections; +using LyricsEngine.LyricSites; namespace MyLyrics { @@ -37,39 +38,40 @@ public static int WINDOW_MYLYRICS = 90478; - private int selectedScreen = 0; - private Nullable<bool> basicScreenSelected = null; - string lyricsScreenXML = "MyLyrics.xml"; + private int m_selectedScreen = 0; + private Nullable<bool> m_basicScreenSelected = null; + string m_lyricsScreenXML = "MyLyrics.xml"; - int startingScrollSpeedVertical; + int m_startingScrollSpeedVertical; - string skin = ""; + string m_skin = ""; - bool exitingMyLyrics = false; - bool newTrack = false; - bool alreadyValidLRC = false; + bool m_newTrack = false; + bool m_alreadyValidLRC = false; bool m_ValidLrcLyric = false; // A valid LRC-lyric always overwrites a normal lyric in both Lyrics db and music tag (if allowed) - //bool m_OkToCallPreviousMenu = false; + bool m_useLyricWiki, m_useLrcFinder, m_useLyrics007, m_useLyricsOnDemand, m_useSeekLyrics, m_useHotLyrics, m_useActionext, m_useLyrDB; - private string CurrentThumbFileName = string.Empty; - private MusicTag PreviousTrackTag = null; - private MusicTag CurrentTrackTag = null; - private MusicTag NextTrackTag = null; - private bool UseID3 = false; - private List<String> ImagePathContainer = null; - private System.Timers.Timer ImageChangeTimer = null; - private object _imageMutex = null; - private string CurrentTrackFileName = string.Empty; - private string NextTrackFileName = string.Empty; - private PlayListPlayer PlaylistPlayer = null; + private string m_CurrentThumbFileName = string.Empty; + private MusicTag m_PreviousTrackTag = null; + private MusicTag m_CurrentTrackTag = null; + private MusicTag m_NextTrackTag = null; + private bool m_UseID3 = false; + private List<String> m_ImagePathContainer = null; + private System.Timers.Timer m_ImageChangeTimer = null; + private object m_imageMutex = null; + private string m_CurrentTrackFileName = string.Empty; + private string m_NextTrackFileName = string.Empty; + private PlayListPlayer m_PlaylistPlayer = null; private System.Timers.Timer m_WriteTagTimer = null; + private List<string[]> m_LyricsToWriteToTag = null; + // worker thread Thread m_LyricControllerThread; - LyricsController lc; + LyricsController m_lc; // events used to stop worker thread ManualResetEvent m_EventStopThread; @@ -85,24 +87,30 @@ int m_crossfade = 0; + int m_Sear... [truncated message content] |