- import java.io.File;
- import java.io.IOException;
- import javax.sound.sampled.LineUnavailableException;
- import javazoom.jl.decoder.JavaLayerException;
- import org.eclipse.swt.widgets.Display;
- import org.eclipse.swt.widgets.Shell;
- import org.eclipse.swt.widgets.TabFolder;
- import org.eclipse.swt.SWT;
- import org.eclipse.swt.widgets.Composite;
- import org.eclipse.swt.widgets.ToolBar;
- import org.eclipse.swt.widgets.Button;
- import org.eclipse.swt.widgets.Combo;
- import org.eclipse.swt.widgets.Text;
- import org.eclipse.swt.widgets.List;
- import org.eclipse.swt.widgets.Label;
- import org.eclipse.swt.widgets.Slider;
- import org.eclipse.swt.widgets.Menu;
- import org.eclipse.swt.events.SelectionAdapter;
- import org.eclipse.swt.events.SelectionEvent;
- import org.eclipse.swt.events.KeyAdapter;
- import org.eclipse.swt.events.KeyEvent;
- import org.eclipse.swt.graphics.GC;
- import org.eclipse.swt.graphics.Image;
- import org.eclipse.swt.graphics.Rectangle;
- import org.eclipse.swt.layout.FillLayout;
- import org.eclipse.swt.layout.FormAttachment;
- import org.eclipse.swt.layout.FormData;
- import org.eclipse.swt.layout.FormLayout;
- import org.eclipse.swt.layout.GridLayout;
- import org.eclipse.swt.widgets.Display;
- import org.eclipse.swt.widgets.Event;
- import org.eclipse.swt.widgets.Label;
- import org.eclipse.swt.widgets.Listener;
- import org.eclipse.swt.widgets.ProgressBar;
- import org.eclipse.swt.widgets.Shell;
- import org.eclipse.wb.swt.SWTResourceManager;
- import org.farng.mp3.MP3File;
- import com.beaglebuddy.mp3.MP3;
- import com.beaglebuddy.mp3.id3v23.exception.ID3v23InvalidFrameException;
- import org.eclipse.swt.widgets.ExpandBar;
- import org.eclipse.ui.forms.widgets.FormToolkit;
- import org.eclipse.ui.forms.widgets.Section;
- public class Main {
- protected Shell shell;
- private Text txtTitle;
- private Text txtArtist;
- private Text txtAlbum;
- private Text txtLenght;
- String track = "D:/muza.mp3";
- int tracknumber;
- float value = (float) 0.6;
- MP3Player player;
- MP3 info;
- boolean isPlaying = false;
- boolean isPaused = false;
- private final FormToolkit formToolkit = new FormToolkit(Display.getDefault());
- /**
- * Launch the application.
- * @param args
- */
- public static void main(String[] args) {
- try {
- Main window = new Main();
- window.open();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- /**
- * Open the window.
- * @throws JavaLayerException
- */
- public void open() throws JavaLayerException {
- Display display = Display.getDefault();
- try{
- createContents();
- try{
- shell.open();
- shell.layout();
- while (!shell.isDisposed()) {
- if (!display.readAndDispatch()) {
- display.sleep();
- }
- }
- } finally {
- if (!shell.isDisposed()) {
- shell.dispose();
- }
- }
- } finally {
- display.dispose();
- player.stop();
- }
- }
- /**
- * Create contents of the window.
- */
- protected void createContents() {
- shell = new Shell();
- shell.setSize(550, 440);
- shell.setText("Idgaf MP3");
- player = new MP3Player();
- player.setInputStream(track);
- Button btnStop = new Button(shell, SWT.NONE);
- btnStop.setImage(SWTResourceManager.getImage("C:\\Users\\ASUS\\workspace\\SWT\\icons\\stop.gif"));
- btnStop.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- try {
- player.stop();
- player = new MP3Player();
- player.setInputStream(track);
- } catch (JavaLayerException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- }
- });
- btnStop.setBounds(53, 10, 30, 25);
- Button btnStart = new Button(shell, SWT.NONE);
- btnStart.setImage(SWTResourceManager.getImage("C:\\Users\\ASUS\\workspace\\SWT\\icons\\start.gif"));
- btnStart.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- try{
- if(isPlaying == false){
- if(isPaused == false){
- player.setInputStream(track);
- }
- isPlaying = true;
- player.play();
- info = new MP3(track);
- File file = new File(track);
- txtTitle.setText("N/A");
- txtArtist.setText("N/A");
- txtAlbum.setText("N/A");
- txtTitle.setText(info.getTitle());
- txtArtist.setText(info.getBand());
- txtAlbum.setText(info.getAlbum());
- txtLenght.setText(player.getDuration(file));
- }
- else if(isPlaying == true){
- player.stop();
- player = new MP3Player();
- player.setInputStream(track);
- player.play();
- info = new MP3(track);
- File file = new File(track);
- txtTitle.setText("N/A");
- txtArtist.setText("N/A");
- txtAlbum.setText("N/A");
- txtTitle.setText(info.getTitle());
- txtArtist.setText(info.getBand());
- txtAlbum.setText(info.getAlbum());
- txtLenght.setText(player.getDuration(file));
- }
- } catch (Exception ex){
- }
- }
- });
- btnStart.setBounds(89, 10, 30, 25);
- Button btnPause = new Button(shell, SWT.NONE);
- btnPause.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- if(isPlaying == true){
- isPlaying = false;
- isPaused = true;
- player.pause();
- }
- }
- });
- btnPause.setImage(SWTResourceManager.getImage("C:\\Users\\ASUS\\workspace\\SWT\\icons\\pause.gif"));
- btnPause.addKeyListener(new KeyAdapter() {
- @Override
- public void keyPressed(KeyEvent e) {
- }
- });
- btnPause.setBounds(125, 10, 30, 25);
- Button btnPrev = new Button(shell, SWT.NONE);
- btnPrev.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- tracknumber--;
- player.setInputStream(track);
- }
- });
- btnPrev.setImage(SWTResourceManager.getImage("C:\\Users\\ASUS\\workspace\\SWT\\icons\\back.gif"));
- btnPrev.setBounds(161, 10, 30, 25);
- Button btnNext = new Button(shell, SWT.NONE);
- btnNext.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- tracknumber++;
- player.setInputStream(track);
- }
- });
- btnNext.setImage(SWTResourceManager.getImage("C:\\Users\\ASUS\\workspace\\SWT\\icons\\next.gif"));
- btnNext.setBounds(197, 10, 30, 25);
- final List list = new List(shell, SWT.BORDER);
- list.setBounds(315, 116, 168, 246);
- list.add("D:/muza.mp3");
- list.add("D:/muzaa.mp3");
- list.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event e) {
- String string = "";
- int selection[] = list.getSelectionIndices();
- for (int i = 0; i < selection.length; i++) {
- tracknumber = selection[i];
- }
- if(tracknumber == 0) track = "D:/muza.mp3";
- else if(tracknumber == 1) track = "D:/muzaa.mp3";
- isPlaying = true;
- //System.out.println("Selection = " + tracknumber +", track = " + track);
- }
- });
- Section sctnTrack= formToolkit.createSection(shell, Section.SHORT_TITLE_BAR);
- sctnTrack.setBackground(SWTResourceManager.getColor(SWT.COLOR_WIDGET_BACKGROUND));
- sctnTrack.setBounds(297, 53, 238, 21);
- formToolkit.paintBordersFor(sctnTrack);
- sctnTrack.setText("Tracklist:");
- sctnTrack.setExpanded(true);
- Section sctnFI = formToolkit.createSection(shell, Section.SHORT_TITLE_BAR);
- sctnFI.setBackground(SWTResourceManager.getColor(SWT.COLOR_WIDGET_BACKGROUND));
- sctnFI.setBounds(0, 53, 296, 21);
- formToolkit.paintBordersFor(sctnFI);
- sctnFI.setText("File information:");
- sctnFI.setExpanded(true);
- Label lblTrack = new Label(shell, SWT.NONE);
- lblTrack.setBounds(23, 116, 55, 15);
- lblTrack.setText("Track:");
- Label lblArtist = new Label(shell, SWT.NONE);
- lblArtist.setBounds(23, 143, 55, 15);
- lblArtist.setText("Artist:");
- Label lblAlbum = new Label(shell, SWT.NONE);
- lblAlbum.setBounds(23, 170, 55, 15);
- lblAlbum.setText("Album:");
- Label lblLenght = new Label(shell, SWT.NONE);
- lblLenght.setBounds(23, 196, 55, 15);
- lblLenght.setText("Lenght:");
- txtTitle = new Text(shell, SWT.BORDER);
- txtTitle.setText("N/A");
- txtTitle.setBounds(103, 116, 181, 21);
- txtArtist = new Text(shell, SWT.BORDER);
- txtArtist.setText("N/A");
- txtArtist.setBounds(103, 143, 181, 21);
- txtAlbum = new Text(shell, SWT.BORDER);
- txtAlbum.setText("N/A");
- txtAlbum.setBounds(103, 169, 181, 21);
- txtLenght = new Text(shell, SWT.BORDER);
- txtLenght.setText("N/A");
- txtLenght.setBounds(103, 196, 181, 21);
- final Slider slider = new Slider(shell, SWT.NONE);
- slider.setThumb(1);
- slider.setMaximum(10);
- slider.setPageIncrement(1);
- slider.setSelection(4);
- slider.setBounds(325, 30, 170, 17);
- Label lblCover = new Label(shell, SWT.NONE);
- lblCover.setBounds(23, 223, 55, 15);
- lblCover.setText("Cover:");
- Label lblVolume = new Label(shell, SWT.NONE);
- lblVolume.setBounds(325, 10, 55, 15);
- lblVolume.setText("Volume:");
- Label lblTracklist = new Label(shell, SWT.NONE);
- lblTracklist.setBounds(315, 95, 55, 15);
- lblTracklist.setText("Tracklist:");
- Label label = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL);
- label.setBounds(0, 53, 534, 2);
- Label label_1 = new Label(shell, SWT.SEPARATOR | SWT.VERTICAL);
- label_1.setBounds(296, 53, 2, 349);
- slider.addListener(SWT.Selection, new Listener() {
- public void handleEvent(Event event) {
- String string = "SWT.NONE";
- float tempUp = (float) (value - 0.1);
- float tempDown = (float) (value + 0.1);
- switch (event.detail) {
- case SWT.DRAG:
- string = "SWT.DRAG";
- value = slider.getSelection();
- try {
- player.volumeset(value);
- } catch (LineUnavailableException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- break;
- case SWT.ARROW_DOWN:
- string = "SWT.ARROW_DOWN";
- value = slider.getSelection();
- try {
- player.volumeset(value);
- } catch (LineUnavailableException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- break;
- case SWT.ARROW_UP:
- string = "SWT.ARROW_UP";
- value = slider.getSelection();
- try {
- player.volumeset(value);
- } catch (LineUnavailableException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- break;
- case SWT.NONE:
- string = "SWT.NONE";
- try {
- player.volumeset(slider.getSelection());
- } catch (LineUnavailableException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- break;
- }
- //System.out.println("Scroll detail -> " + string);
- //System.out.println("Value detail -> " + value);
- //System.out.println("Selektor -> " + slider.getSelection());
- }
- });
- }
- }