public void fadeStop(long logid, int milliseconds)
        {
            AUDIOTRACK track = AudioServiceHost.audiomgr.getTrack(logid);
            if (track != null)
            {
                track.FadeOut(TimeSpan.FromMilliseconds(milliseconds));

                KeyValuePair<long, AUDIOTRACK> t = new KeyValuePair<long, AUDIOTRACK>(logid, track);
                EndSyncEventArgs e = new EndSyncEventArgs(t, TrackPlayStatus.CLOSING);

                AudioServiceHost.audiomgr.launchUpdate(e);
            }
        }
        public void playTrack(long logid)
        {
            try
            {
                AUDIOTRACK track = this.tracks[logid];
                if (track != null)
                    track.play();
               // this.instantUpdate(track, null);
                KeyValuePair<long, AUDIOTRACK> t = new KeyValuePair<long, AUDIOTRACK>(logid, track);

                EndSyncEventArgs e = new EndSyncEventArgs(t, TrackPlayStatus.ONAIR);

                instantUpdate(this, e);
            }
            catch
            {
                Console.WriteLine("error when playing");
            }
        }
        void TSF(int syncHandle, int channel, int data, IntPtr user)
        {

            KeyValuePair<long, AUDIOTRACK> track = tracks.Where(tt => tt.Value.stream == channel).First();

            EndSyncEventArgs e = new EndSyncEventArgs(track, TrackPlayStatus.PLAYED);
                  
            instantUpdate(this, e);


        }
        public void launchUpdate(EndSyncEventArgs e)
        {

            instantUpdate(this, e);
        }