public USlotContent(LogListPrj.SlotItem slot)
        {
            // TODO: Complete member initialization
            this.slot = slot;

            InitializeComponent();
            String[] slides = parseSlidesFromLog(slot.item.label);
            foreach (String s in slides)
                slidenames.Text += s;

        }
        public static RadioVisItems getFromDataItem(LogListPrj.DataItems.DataSongItem item)
        {
            List<String> img = new List<String>();
            List<String> text = new List<String>();
            img.Add(item.getField("radiovis1"));
            img.Add(item.getField("radiovis2"));
            img.Add(item.getField("radiovis3"));
            img.Add(item.getField("radiovis4"));
            text.Add(item.getField("radiovistxt"));

            return new RadioVisItems(img, text);
        }
        public Track(string filename, LogListPrj.DataItems.DataSongItem item = null)
        {
            Filename = filename;
            Tags = BassTags.BASS_TAG_GetFromFile(Filename);
            if (Tags == null)
                //throw new ArgumentException("File not valid!");
                MessageBox.Show("File not found");

            this.item = item;
            // we already create a stream handle
            // might not be the best place here (especially when having a larger playlist), but for the demo this is okay ;)
            CreateStream();
        }
        internal void load(LogListPrj.DataItems.DataSongItem item)
        {
            this.listBoxPlaylist.Items.Clear();
            newtrack(@"D:\OAIBC\" + item.filename, item);

        }
        private Track newtrack(string filename, LogListPrj.DataItems.DataSongItem item)
        {

            Track track = new Track(filename, item);
            listBoxPlaylist.Items.Add(track);

            // add the new track to the mixer (in PAUSED mode!)
            BassMix.BASS_Mixer_StreamAddChannel(_mixer, track.Channel, BASSFlag.BASS_MIXER_PAUSE | BASSFlag.BASS_MIXER_DOWNMIX | BASSFlag.BASS_STREAM_AUTOFREE);

            // an BASS_SYNC_END is used to trigger the next track in the playlist (if no POS sync was set)
            track.TrackSync = new SYNCPROC(OnTrackSync);
            BassMix.BASS_Mixer_ChannelSetSync(track.Channel, BASSSync.BASS_SYNC_END, 0L, track.TrackSync, new IntPtr(0));

            if(_currentTrack == null)
                DrawWave();
            return track;
        }