banshee r4323 - in trunk/musicbrainz-sharp/src/MusicBrainz: . MusicBrainz
- From: scottp svn gnome org
- To: svn-commits-list gnome org
- Subject: banshee r4323 - in trunk/musicbrainz-sharp/src/MusicBrainz: . MusicBrainz
- Date: Tue, 5 Aug 2008 10:41:45 +0000 (UTC)
Author: scottp
Date: Tue Aug 5 10:41:45 2008
New Revision: 4323
URL: http://svn.gnome.org/viewvc/banshee?rev=4323&view=rev
Log:
* src/MusicBrainz/MusicBrainz/MusicBrainzObject.cs: Made some protected
methods static.
* src/MusicBrainz/MusicBrainz/LocalDisc.cs: Changed protected
properties to protected fields and changed an array property to a
method.
* src/MusicBrainz/MusicBrainz/DiscLinux.cs,
src/MusicBrainz/MusicBrainz/DiscWin32.cs: Changed class name to
match file name and changed protected properties to protected
fields.
* src/MusicBrainz/MusicBrainz/Query.cs: Changed attribute public
readonly fields to public readonly properties.
* src/MusicBrainz/MusicBrainz/Artist.cs: Made public static field
ThreadStatic and made a private method static.
* src/MusicBrainz/MusicBrainz/MusicBrainzService.cs: Made public static
fields ThreadStatic.
Modified:
trunk/musicbrainz-sharp/src/MusicBrainz/ChangeLog
trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/Artist.cs
trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/DiscLinux.cs
trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/DiscWin32.cs
trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/LocalDisc.cs
trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/MusicBrainzObject.cs
trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/MusicBrainzService.cs
trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/Query.cs
Modified: trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/Artist.cs
==============================================================================
--- trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/Artist.cs (original)
+++ trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/Artist.cs Tue Aug 5 10:41:45 2008
@@ -125,8 +125,20 @@
#region Public
- public static ArtistReleaseType DefaultArtistReleaseType =
- new ArtistReleaseType (ReleaseStatus.Official, false);
+ [ThreadStatic]
+ private static ArtistReleaseType default_artist_release_type;
+ public static ArtistReleaseType DefaultArtistReleaseType {
+ get {
+ if (default_artist_release_type == null) {
+ default_artist_release_type = new ArtistReleaseType (ReleaseStatus.Official, false);
+ }
+ return default_artist_release_type;
+ }
+ set {
+ if (value == null) throw new ArgumentNullException ("value");
+ default_artist_release_type = value;
+ }
+ }
public ArtistReleaseType ArtistReleaseType {
get { return artist_release_type; }
@@ -238,7 +250,7 @@
str = builder.ToString ();
}
- void Format (StringBuilder builder, Enum enumeration, bool various)
+ static void Format (StringBuilder builder, Enum enumeration, bool various)
{
builder.Append (various ? "va-" : "sa-");
Utils.EnumToString (builder, enumeration.ToString ());
@@ -256,8 +268,8 @@
public static bool operator ==(ArtistReleaseType artistReleaseType1, ArtistReleaseType artistReleaseType2)
{
- return (artistReleaseType1 == null && artistReleaseType2 == null) ||
- (artistReleaseType1 != null && artistReleaseType2 != null && artistReleaseType1.str == artistReleaseType2.str);
+ return (Object.ReferenceEquals (artistReleaseType1, null) && Object.ReferenceEquals (artistReleaseType2, null)) ||
+ (!Object.ReferenceEquals (artistReleaseType1, null) && !Object.ReferenceEquals (artistReleaseType2, null) && artistReleaseType1.str == artistReleaseType2.str);
}
public static bool operator !=(ArtistReleaseType artistReleaseType1, ArtistReleaseType artistReleaseType2)
Modified: trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/DiscLinux.cs
==============================================================================
--- trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/DiscLinux.cs (original)
+++ trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/DiscLinux.cs Tue Aug 5 10:41:45 2008
@@ -25,7 +25,7 @@
namespace MusicBrainz
{
- internal sealed class LinuxDisc : LocalDisc
+ internal sealed class DiscLinux : LocalDisc
{
const int O_RDONLY = 0x0;
const int O_NONBLOCK = 0x4000;
@@ -37,7 +37,7 @@
const int CD_FRAMES = 75;
const int XA_INTERVAL = ((60 + 90 + 2) * CD_FRAMES);
- [DllImport ("libc.so.6")]
+ [DllImport ("libc.so.6", CharSet = CharSet.Auto)]
static extern int open (string path, int flags);
[DllImport ("libc.so.6")]
@@ -95,18 +95,18 @@
if (ret < 0) return ret;
- FirstTrack = th.cdth_trk0;
- LastTrack = th.cdth_trk1;
+ first_track = th.cdth_trk0;
+ last_track = th.cdth_trk1;
ms.addr_format = CDROM_LBA;
ret = read_multisession (fd, ref ms);
- if(ms.xa_flag != 0) LastTrack--;
+ if(ms.xa_flag != 0) last_track--;
return ret;
}
- int ReadTocEntry (int fd, byte track_number, ref ulong lba)
+ static int ReadTocEntry (int fd, byte track_number, ref ulong lba)
{
cdrom_tocentry te = new cdrom_tocentry ();
te.cdte_track = track_number;
@@ -134,7 +134,7 @@
return ReadTocEntry (fd, CDROM_LEADOUT, ref lba);
}
- internal LinuxDisc (string device)
+ internal DiscLinux (string device)
{
int fd = open (device, O_RDONLY | O_NONBLOCK);
@@ -142,15 +142,15 @@
try {
if (ReadTocHeader(fd) < 0) throw new Exception ("Cannot read table of contents");
- if (LastTrack == 0) throw new Exception ("This disc has no tracks");
+ if (last_track == 0) throw new Exception ("This disc has no tracks");
ulong lba = 0;
ReadLeadout (fd, ref lba);
- TrackOffsets [0] = (int)lba + 150;
+ track_offsets [0] = (int)lba + 150;
- for (byte i = FirstTrack; i <= LastTrack; i++) {
+ for (byte i = first_track; i <= last_track; i++) {
ReadTocEntry (fd, i, ref lba);
- TrackOffsets[i] = (int)lba + 150;
+ track_offsets[i] = (int)lba + 150;
}
} finally {
close (fd);
Modified: trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/DiscWin32.cs
==============================================================================
--- trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/DiscWin32.cs (original)
+++ trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/DiscWin32.cs Tue Aug 5 10:41:45 2008
@@ -27,17 +27,17 @@
namespace MusicBrainz
{
- internal sealed class Win32Disc : LocalDisc
+ internal sealed class DiscWin32 : LocalDisc
{
[DllImport ("winmm")]
- static extern Int32 mciSendString (String command, StringBuilder buffer, Int32 bufferSize, IntPtr hwndCallback);
+ static extern Int32 mciSendString ([MarshalAs(UnmanagedType.LPTStr)] String command, [MarshalAs(UnmanagedType.LPTStr)] StringBuilder buffer, Int32 bufferSize, IntPtr hwndCallback);
[DllImport ("winmm")]
- static extern Int32 mciGetErrorString (Int32 errorCode, StringBuilder errorText, Int32 errorTextSize);
+ static extern Int32 mciGetErrorString (Int32 errorCode, [MarshalAs(UnmanagedType.LPTStr)] StringBuilder errorText, Int32 errorTextSize);
delegate void MciCall (string result);
- internal Win32Disc (string device)
+ internal DiscWin32 (string device)
{
string device_string = device.Length == 0 ? "cdaudio" : string.Format ("{0} type cdaudio", device);
@@ -61,8 +61,8 @@
string.Format ("status {0} number of tracks wait", alias),
"Could not read number of tracks",
delegate (string result) {
- FirstTrack = 1;
- LastTrack = byte.Parse (result);
+ first_track = 1;
+ last_track = byte.Parse (result);
});
MciClosure (
@@ -70,26 +70,26 @@
"Could not set time format",
null);
- for (int i = 1; i <= LastTrack; i++)
+ for (int i = 1; i <= last_track; i++)
MciClosure (
string.Format ("status {0} position track {1} wait", alias, i),
string.Format ("Could not get position for track {0}", i),
delegate (string result) {
- TrackOffsets [i] =
+ track_offsets [i] =
int.Parse (result.Substring (0,2)) * 4500 +
int.Parse (result.Substring (3,2)) * 75 +
int.Parse (result.Substring (6,2));
});
MciClosure (
- string.Format ("status {0} length track {1} wait", alias, LastTrack),
+ string.Format ("status {0} length track {1} wait", alias, last_track),
"Could not read the length of the last track",
delegate (string result) {
- TrackOffsets [0] =
+ track_offsets [0] =
int.Parse (result.Substring (0, 2)) * 4500 +
int.Parse (result.Substring (3, 2)) * 75 +
int.Parse (result.Substring (6, 2)) +
- TrackOffsets [LastTrack] + 1;
+ track_offsets [last_track] + 1;
});
MciClosure (
Modified: trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/LocalDisc.cs
==============================================================================
--- trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/LocalDisc.cs (original)
+++ trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/LocalDisc.cs Tue Aug 5 10:41:45 2008
@@ -28,12 +28,25 @@
{
public abstract class LocalDisc : Disc
{
- public static string SubmissionServiceUrl = "http://mm.musicbrainz.org/bare/cdlookup.html";
+ [ThreadStatic]
+ private static string submission_service_url;
+ public static string SubmissionServiceUrl {
+ get {
+ if (submission_service_url == null) {
+ submission_service_url = "http://mm.musicbrainz.org/bare/cdlookup.html";
+ }
+ return submission_service_url;
+ }
+ set {
+ if (value == null) throw new ArgumentNullException ("value");
+ submission_service_url = value;
+ }
+ }
- byte first_track;
- byte last_track;
+ protected byte first_track;
+ protected byte last_track;
+ protected int [] track_offsets = new int [100];
int [] track_durations;
- int [] track_offsets = new int [100];
internal LocalDisc()
{
@@ -55,8 +68,8 @@
{
StringBuilder input_builder = new StringBuilder (804);
- input_builder.Append (string.Format ("{0:X2}", FirstTrack));
- input_builder.Append (string.Format ("{0:X2}", LastTrack));
+ input_builder.Append (string.Format ("{0:X2}", first_track));
+ input_builder.Append (string.Format ("{0:X2}", last_track));
for (int i = 0; i < track_offsets.Length; i++)
input_builder.Append (string.Format ("{0:X8}", track_offsets [i]));
@@ -75,22 +88,9 @@
Id = hash_builder.ToString ();
}
- protected byte FirstTrack {
- get { return first_track; }
- set { first_track = value; }
- }
-
- protected byte LastTrack {
- get { return last_track; }
- set { last_track = value; }
- }
-
- protected int [] TrackOffsets {
- get { return track_offsets; }
- }
-
- public int [] TrackDurations {
- get { return track_durations; }
+ public int [] GetTrackDurations ()
+ {
+ return (int []) track_durations.Clone ();
}
string submission_url;
@@ -123,8 +123,8 @@
{
if (device == null) throw new ArgumentNullException ("device");
return Environment.OSVersion.Platform != PlatformID.Unix
- ? (LocalDisc)new Win32Disc (device)
- : new LinuxDisc (device);
+ ? (LocalDisc)new DiscWin32 (device)
+ : new DiscLinux (device);
}
}
}
Modified: trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/MusicBrainzObject.cs
==============================================================================
--- trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/MusicBrainzObject.cs (original)
+++ trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/MusicBrainzObject.cs Tue Aug 5 10:41:45 2008
@@ -168,13 +168,13 @@
AppendIncParameters (builder, rels_params);
}
- protected void AppendIncParameters (StringBuilder builder, string parameter)
+ protected static void AppendIncParameters (StringBuilder builder, string parameter)
{
builder.Append (builder.Length == 0 ? "&inc=" : "+");
builder.Append (parameter);
}
- protected void AppendIncParameters (StringBuilder builder, string parameter1, string parameter2)
+ protected static void AppendIncParameters (StringBuilder builder, string parameter1, string parameter2)
{
builder.Append (builder.Length == 0 ? "&inc=" : "+");
builder.Append (parameter1);
@@ -182,7 +182,7 @@
builder.Append (parameter2);
}
- protected void AppendIncParameters (StringBuilder builder, string [] parameters)
+ protected static void AppendIncParameters (StringBuilder builder, string [] parameters)
{
foreach (string parameter in parameters)
AppendIncParameters (builder, parameter);
@@ -279,7 +279,7 @@
public static bool operator ==(MusicBrainzObject obj1, MusicBrainzObject obj2)
{
- return (obj1 == null && obj2 == null) || (obj1 != null && obj2 != null && obj1.GetType ().Equals (obj2.GetType ()) && obj1.Id == obj2.Id);
+ return (Object.ReferenceEquals (obj1, null) && Object.ReferenceEquals (obj2, null)) || (!Object.ReferenceEquals (obj1, null) && !Object.ReferenceEquals (obj2, null) && obj1.GetType () == obj2.GetType () && obj1.Id == obj2.Id);
}
public static bool operator !=(MusicBrainzObject obj1, MusicBrainzObject obj2)
Modified: trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/MusicBrainzService.cs
==============================================================================
--- trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/MusicBrainzService.cs (original)
+++ trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/MusicBrainzService.cs Tue Aug 5 10:41:45 2008
@@ -27,8 +27,28 @@
{
public static class MusicBrainzService
{
- public static string ServiceUrl = @"http://musicbrainz.org/ws/1/";
- public static RequestCachePolicy CachePolicy;
+ [ThreadStatic]
+ private static string service_url;
+ public static string ServiceUrl {
+ get {
+ if (service_url == null) {
+ service_url = @"http://musicbrainz.org/ws/1/";
+ }
+ return service_url;
+ }
+ set {
+ if (value == null) throw new ArgumentNullException ("value");
+ service_url = value;
+ }
+ }
+
+ [ThreadStatic]
+ private static RequestCachePolicy cache_policy;
+ public static RequestCachePolicy CachePolicy {
+ get { return cache_policy; }
+ set { cache_policy = value; }
+ }
+
public static event EventHandler<XmlRequestEventArgs> XmlRequest;
internal static void OnXmlRequest (string url, bool fromCache)
Modified: trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/Query.cs
==============================================================================
--- trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/Query.cs (original)
+++ trunk/musicbrainz-sharp/src/MusicBrainz/MusicBrainz/Query.cs Tue Aug 5 10:41:45 2008
@@ -174,23 +174,36 @@
[AttributeUsage (AttributeTargets.Method | AttributeTargets.Property)]
internal sealed class QueryableAttribute : Attribute
{
- public readonly string Name;
+ readonly string name;
+
public QueryableAttribute (string name)
{
- Name = name;
+ this.name = name;
+ }
+
+ public string Name {
+ get { return name; }
}
}
[AttributeUsage (AttributeTargets.Method | AttributeTargets.Property)]
internal sealed class QueryableMemberAttribute : Attribute
{
- public readonly string Name;
- public readonly string Member;
+ readonly string member;
+ readonly string name;
public QueryableMemberAttribute (string member, string name)
{
- Member = member;
- Name = name;
+ this.member = member;
+ this.name = name;
+ }
+
+ public string Member {
+ get { return member; }
+ }
+
+ public string Name {
+ get { return name; }
}
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]