protected virtual void OnBtnQueueSongClicked(object sender, System.EventArgs e) { HTreeNode theNode = tvLibrary.SelectedNode; // Check if node has children if (theNode.Nodes.Count > 0) { // Will add all children to queue } else { // Node is a leaf (song) SubsonicItem theItem = GetNodeItem(theNode); // Confirm that the item is asong if (theItem.itemType == SubsonicItem.SubsonicItemType.Song) { //slPlaylist.Items.Add(theItem); Dictionary <string, string> songId = new Dictionary <string, string>(); songId.Add("id", theItem.id); string streamURL = Subsonic.BuildDirectURL("download.view", songId); System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName = "vlc"; proc.StartInfo.Arguments = "--one-instance --playlist-enqueue " + streamURL; proc.Start(); } } }