Esempio n. 1
0
 public static MusicTrack FromSequence(MusicSequence sequence)
 {
     if (sequence == null)
     {
         throw new ArgumentNullException("sequence");
     }
     return(sequence.CreateTrack());
 }
Esempio n. 2
0
 protected virtual void Dispose(bool disposing)
 {
     if (handle != IntPtr.Zero)
     {
         if (owns)
         {
             MusicSequenceDisposeTrack(sequence.Handle, handle);
         }
         handle = IntPtr.Zero;
     }
     sequence = null;
 }
Esempio n. 3
0
        static void UserCallbackProxy(IntPtr inClientData, IntPtr inSequence, IntPtr inTrack, double inEventTime, IntPtr inEventData, double inStartSliceBeat, double inEndSliceBeat)
        {
            MusicSequenceUserCallback userCallback;

            lock (userCallbackHandles)
                userCallbackHandles.TryGetValue(inSequence, out userCallback);

            if (userCallback != null)
            {
                var userEventData = new MusicEventUserData(inEventData);
                var musicSequence = MusicSequence.Lookup(inSequence);
                var musicTrack    = new MusicTrack(musicSequence, inTrack, false);

                userCallback(musicTrack, inEventTime, userEventData, inStartSliceBeat, inEndSliceBeat);
            }
        }
Esempio n. 4
0
        internal static MusicSequence Lookup(IntPtr handle)
        {
            lock (sequenceMap){
                WeakReference weakRef;

                if (sequenceMap.TryGetValue(handle, out weakRef))
                {
                    var target = weakRef.Target;
                    if (target != null)
                    {
                        return((MusicSequence)target);
                    }
                    sequenceMap.Remove(handle);
                }
                var ms = new MusicSequence(handle);
                sequenceMap [handle] = new WeakReference(ms);
                return(ms);
            }
        }
Esempio n. 5
0
 internal MusicTrack(MusicSequence sequence, IntPtr handle, bool owns)
 {
     this.sequence = sequence;
     this.handle   = handle;
     this.owns     = owns;
 }
Esempio n. 6
0
		internal static MusicSequence Lookup (IntPtr handle)
		{
			lock (sequenceMap){
				WeakReference weakRef;
				
				if (sequenceMap.TryGetValue (handle, out weakRef)){
					var target = weakRef.Target;
					if (target != null){
						return (MusicSequence) target;
					}
					sequenceMap.Remove (handle);
				}
				var ms = new MusicSequence (handle);
				sequenceMap [handle] = new WeakReference (ms);
				return ms;
			}
		}
Esempio n. 7
0
 protected virtual void Dispose(bool disposing)
 {
     currentSequence = null;
     if (handle != IntPtr.Zero){
         DisposeMusicPlayer (handle);
         handle = IntPtr.Zero;
     }
 }
Esempio n. 8
0
		public static MusicTrack FromSequence (MusicSequence sequence)
		{
			if (sequence == null)
				throw new ArgumentNullException ("sequence");
			return sequence.CreateTrack ();
		}
Esempio n. 9
0
		protected virtual void Dispose (bool disposing)
		{
			if (handle != IntPtr.Zero){
				if (owns)
					MusicSequenceDisposeTrack (sequence.Handle, handle);
				handle = IntPtr.Zero;
			}
			sequence = null;
		}
Esempio n. 10
0
		internal MusicTrack (MusicSequence sequence, IntPtr handle, bool owns)
		{
			this.sequence = sequence;
			this.handle = handle;
			this.owns = owns;
		}