@Override
    public void run() {
        Thread me = Thread.currentThread();
        String item = (String) (cb.getSelectedItem());
        int current_index = item2index(item);
        while (true) {
            item = (String) (cb.getItemAt(current_index));
            cb.setSelectedIndex(current_index);
            bitStream = selectSource(item);
            if (bitStream != null) {
                if (udp_port != -1) {
                    play_udp_stream(me);
                } else {
                    play_stream(me);
                }
            } else if (cb.getItemCount() == 1) {
                break;
            }
            if (player != me) {
                break;
            }
            bitStream = null;
            current_index++;
            if (current_index >= cb.getItemCount()) {
                current_index = 0;
            }
            if (cb.getItemCount() <= 0) {
                break;
            }
        }
        player = null;
        start_button.setText("start");
    }