Revision 2366
tmp/org.txm.backtomedia.rcp/src/org/txm/backtomedia/editors/vlcplayer/VLCPlayer.java (revision 2366) | ||
---|---|---|
93 | 93 |
//uncomment to enable VLC logs |
94 | 94 |
//Logger.setLevel(Level.TRACE); |
95 | 95 |
} |
96 |
|
|
97 |
public EmbeddedMediaPlayer getEmbeddedMediaPlayer() { |
|
98 |
return vlcPlayer; |
|
99 |
} |
|
96 | 100 |
|
97 | 101 |
public VLCPlayer(Composite parent, int style) { |
98 | 102 |
super(parent, style); |
... | ... | |
250 | 254 |
rateField.setMaximum(140); |
251 | 255 |
rateField.setMinimum(70); |
252 | 256 |
rateField.setSelection(100); |
253 |
rateField.setPageIncrement (5);
|
|
257 |
rateField.setPageIncrement(5); |
|
254 | 258 |
|
255 | 259 |
rateField.addSelectionListener(new SelectionListener() { |
256 | 260 |
@Override |
... | ... | |
277 | 281 |
volumeField.setMinimum(0); |
278 | 282 |
volumeField.setMaximum(100); |
279 | 283 |
volumeField.setSelection(volume); |
280 |
volumeField.setPageIncrement (5);
|
|
284 |
volumeField.setPageIncrement(5); |
|
281 | 285 |
volumeField.addSelectionListener(new SelectionListener() { |
282 | 286 |
@Override |
283 | 287 |
public void widgetSelected(SelectionEvent e) { |
... | ... | |
296 | 300 |
vlcPlayer.addMediaPlayerEventListener(new MediaPlayerEventAdapter() { |
297 | 301 |
@Override |
298 | 302 |
public void playing(MediaPlayer mediaPlayer) { |
299 |
if (volumeField != null) |
|
303 |
if (volumeField != null) {
|
|
300 | 304 |
vlcPlayer.setVolume(volume); |
305 |
} |
|
301 | 306 |
} |
302 | 307 |
|
303 | 308 |
@Override |
... | ... | |
312 | 317 |
|
313 | 318 |
vlcPlayer.addMediaPlayerEventListener(new MediaPlayerEventAdapter() { |
314 | 319 |
|
315 |
// @Override |
|
316 |
// public void videoOutput(MediaPlayer arg0, int arg1) { |
|
317 |
// System.out.println("videoOutput: "+arg1); |
|
318 |
// } |
|
319 |
// |
|
320 |
// @Override |
|
321 |
// public void titleChanged(MediaPlayer arg0, int arg1) { |
|
322 |
// System.out.println("titleChanged: "+arg1); |
|
323 |
// } |
|
324 |
|
|
325 |
|
|
326 | 320 |
@Override |
327 | 321 |
public void timeChanged(MediaPlayer arg0, final long arg1) { |
328 | 322 |
time = arg1; |
329 |
if (previous == time) return; |
|
323 |
if (previous == time) { |
|
324 |
return; |
|
325 |
} |
|
330 | 326 |
previous = time; |
331 | 327 |
|
332 | 328 |
timeLabel.getDisplay().syncExec(new Runnable() { |
333 | 329 |
@Override |
334 | 330 |
public void run() { |
335 |
if (timeRange.isDisposed()) return; |
|
336 |
if (!timeRange.isDragMiddleKnob()) |
|
331 |
if (timeRange.isDisposed()) { |
|
332 |
return; |
|
333 |
} |
|
334 |
if (!timeRange.isDragMiddleKnob()) { |
|
337 | 335 |
timeRange.setMiddleValue((int)time); |
336 |
} |
|
338 | 337 |
updateTimeLabel(); |
339 | 338 |
|
340 |
if (arg1 > end) { |
|
339 |
if (arg1 > end && end != start) {
|
|
341 | 340 |
//System.out.println("Time > end :"+arg1 +" > "+end); |
342 | 341 |
if (repeat) { |
343 | 342 |
vlcPlayer.setTime(start); |
... | ... | |
347 | 346 |
} |
348 | 347 |
} |
349 | 348 |
}); |
350 |
|
|
351 |
|
|
352 | 349 |
} |
353 | 350 |
|
354 |
// @Override |
|
355 |
// public void subItemPlayed(MediaPlayer arg0, int arg1) { |
|
356 |
// System.out.println("subItemPlayed: "+arg1); |
|
357 |
// } |
|
358 |
// |
|
359 |
// @Override |
|
360 |
// public void subItemFinished(MediaPlayer arg0, int arg1) { |
|
361 |
// System.out.println("subItemFinished: "+arg1); |
|
362 |
// } |
|
363 |
// |
|
364 |
// @Override |
|
365 |
// public void stopped(MediaPlayer arg0) { |
|
366 |
// System.out.println("stopped: "); |
|
367 |
// } |
|
368 |
// |
|
369 |
// @Override |
|
370 |
// public void snapshotTaken(MediaPlayer arg0, String arg1) { |
|
371 |
// System.out.println("snapshotTaken: "+arg1); |
|
372 |
// } |
|
373 |
// |
|
374 |
// @Override |
|
375 |
// public void seekableChanged(MediaPlayer arg0, int arg1) { |
|
376 |
// System.out.println("seekableChanged: "+arg1); |
|
377 |
// } |
|
378 |
// |
|
379 |
// @Override |
|
380 |
// public void positionChanged(MediaPlayer arg0, float arg1) { |
|
381 |
// //System.out.println("positionChanged: "+arg1); |
|
382 |
// } |
|
383 |
// |
|
384 |
// @Override |
|
385 |
// public void playing(MediaPlayer arg0) { |
|
386 |
// System.out.println("playing: "); |
|
387 |
// } |
|
388 |
// |
|
389 |
// @Override |
|
390 |
// public void paused(MediaPlayer arg0) { |
|
391 |
// System.out.println("paused: "); |
|
392 |
// } |
|
393 |
// |
|
394 |
// @Override |
|
395 |
// public void pausableChanged(MediaPlayer arg0, int arg1) { |
|
396 |
// System.out.println("pausableChanged: "+arg1); |
|
397 |
// } |
|
398 |
// |
|
399 |
// @Override |
|
400 |
// public void opening(MediaPlayer arg0) { |
|
401 |
// System.out.println("opening: "); |
|
402 |
// } |
|
403 |
// |
|
404 |
// @Override |
|
405 |
// public void newMedia(MediaPlayer arg0) { |
|
406 |
// System.out.println("newMedia: "); |
|
407 |
// } |
|
408 |
// |
|
409 |
// @Override |
|
410 |
// public void mediaStateChanged(MediaPlayer arg0, int arg1) { |
|
411 |
// System.out.println("mediaStateChanged: "+arg1); |
|
412 |
// } |
|
413 |
// |
|
414 |
// @Override |
|
415 |
// public void mediaParsedChanged(MediaPlayer arg0, int arg1) { |
|
416 |
// System.out.println("mediaParsedChanged: "+arg1); |
|
417 |
// } |
|
418 |
// |
|
419 |
// @Override |
|
420 |
// public void mediaMetaChanged(MediaPlayer arg0, int arg1) { |
|
421 |
// System.out.println("mediaMetaChanged: "+arg1); |
|
422 |
// } |
|
423 |
// |
|
424 |
// @Override |
|
425 |
// public void mediaFreed(MediaPlayer arg0) { |
|
426 |
// System.out.println("mediaFreed: "); |
|
427 |
// } |
|
428 |
// |
|
429 |
// @Override |
|
430 |
// public void mediaDurationChanged(MediaPlayer arg0, long arg1) { |
|
431 |
// //System.out.println("mediaDurationChanged: "+arg1); |
|
432 |
// } |
|
433 |
// |
|
434 |
// @Override |
|
435 |
// public void mediaChanged(MediaPlayer arg0, libvlc_media_t arg1, String arg2) { |
|
436 |
// System.out.println("mediaChanged: "+arg1+" "+arg2); |
|
437 |
// } |
|
438 |
// |
|
439 |
|
|
440 | 351 |
@Override |
441 | 352 |
public void lengthChanged(MediaPlayer arg0, final long arg1) { |
442 | 353 |
if (firstLengthEvent) { |
... | ... | |
447 | 358 |
@Override |
448 | 359 |
public void run() { |
449 | 360 |
timeRange.setMaximum((int)arg1); |
450 |
if (start == end) end = (int)arg1; |
|
361 |
//if (start == end) end = (int)arg1; |
|
362 |
|
|
363 |
|
|
364 |
if (end > 0 && start != end) { |
|
365 |
timeRange.setUpperValue(end); |
|
366 |
} else { |
|
367 |
timeRange.setUpperValue((int)arg1); |
|
368 |
} |
|
369 |
|
|
451 | 370 |
timeRange.setLowerValue(start); |
452 |
timeRange.setUpperValue(end); |
|
453 | 371 |
//System.out.println("Range: "+start+" -> "+end+" song length "+arg1); |
454 | 372 |
} |
455 | 373 |
}); |
456 | 374 |
} |
457 | 375 |
} |
458 |
// |
|
459 |
// @Override |
|
460 |
// public void forward(MediaPlayer arg0) { |
|
461 |
// System.out.println("forward: "); |
|
462 |
// } |
|
463 |
// |
|
464 |
// @Override |
|
465 |
// public void finished(MediaPlayer arg0) { |
|
466 |
// System.out.println("finished: "); |
|
467 |
// } |
|
468 |
// |
|
469 |
// @Override |
|
470 |
// public void error(MediaPlayer arg0) { |
|
471 |
// System.out.println("error: "); |
|
472 |
// } |
|
473 |
// |
|
474 |
// @Override |
|
475 |
// public void endOfSubItems(MediaPlayer arg0) { |
|
476 |
// System.out.println("endOfSubItems: "); |
|
477 |
// } |
|
478 |
// |
|
479 |
// @Override |
|
480 |
// public void buffering(MediaPlayer arg0, float arg1) { |
|
481 |
// //System.out.println("buffering: "+arg1); |
|
482 |
// } |
|
483 |
// |
|
484 |
// @Override |
|
485 |
// public void backward(MediaPlayer arg0) { |
|
486 |
// System.out.println("backward: "); |
|
487 |
// } |
|
488 |
// |
|
489 |
// @Override |
|
490 |
// public void mediaSubItemAdded(MediaPlayer arg0, libvlc_media_t arg1) { |
|
491 |
// // TODO Auto-generated method stub |
|
492 |
// |
|
493 |
// } |
|
494 | 376 |
}); |
495 |
|
|
496 | 377 |
} |
497 | 378 |
|
498 | 379 |
private void updateTimeLabel() { |
499 | 380 |
mins = time / 60000; |
500 |
secs = time % 60000;
|
|
381 |
secs = (time / 1000) % 60;
|
|
501 | 382 |
timeLabel.setText(String.format("%02d:%02d", mins, secs)); //$NON-NLS-1$ |
502 | 383 |
timeLabel.update(); |
503 | 384 |
} |
... | ... | |
550 | 431 |
} |
551 | 432 |
|
552 | 433 |
public void hideStopButton() { |
553 |
if (this.stopButton != null && !this.stopButton.isDisposed()) |
|
434 |
if (this.stopButton != null && !this.stopButton.isDisposed()) {
|
|
554 | 435 |
this.stopButton.dispose(); |
436 |
} |
|
555 | 437 |
} |
556 | 438 |
|
557 | 439 |
DateTimeFormatter hhmmssFormatter = DateTimeFormatter.ISO_LOCAL_TIME; |
... | ... | |
566 | 448 |
if (startTime.matches("[0-9]+.[0-9]+")) { |
567 | 449 |
start = (int)(1000*Float.parseFloat(startTime)); |
568 | 450 |
} else if (startTime.matches("[0-9]+:[0-9]+:[0-9]+")) { |
569 |
if (startTime.indexOf(":") == 1) startTime = "0"+startTime; |
|
451 |
if (startTime.indexOf(":") == 1) { |
|
452 |
startTime = "0"+startTime; |
|
453 |
} |
|
570 | 454 |
LocalTime time1 = LocalTime.parse(startTime, hhmmssFormatter); |
571 |
start = (time1.getHour()*60*60) + (time1.getMinute()*60) + time1.getSecond();
|
|
455 |
start = 1000*((time1.getHour()*60*60) + (time1.getMinute()*60) + time1.getSecond());
|
|
572 | 456 |
} |
573 | 457 |
|
574 | 458 |
if (endTime.matches("[0-9]+.[0-9]+")) { |
... | ... | |
576 | 460 |
} else if (endTime.matches("[0-9]+:[0-9]+:[0-9]+")) { |
577 | 461 |
if (endTime.indexOf(":") == 1) endTime = "0"+endTime; |
578 | 462 |
LocalTime time1 = LocalTime.parse(endTime, hhmmssFormatter); |
579 |
end = (time1.getHour()*60*60) + (time1.getMinute()*60) + time1.getSecond();
|
|
463 |
end = 1000*((time1.getHour()*60*60) + (time1.getMinute()*60) + time1.getSecond());
|
|
580 | 464 |
} |
581 | 465 |
|
466 |
//if (start == end) end = -1; |
|
467 |
|
|
582 | 468 |
Log.fine(MessagesMP.bind(MessagesMP.playing, new Object[]{mrl, startTime, endTime})); |
583 | 469 |
vlcPlayer.playMedia(mrl); |
584 | 470 |
vlcPlayer.setTime(start); |
... | ... | |
600 | 486 |
public void stop() { |
601 | 487 |
vlcPlayer.stop(); |
602 | 488 |
currentlyPlayed = NOMEDIA; |
603 |
if (!playButton.isDisposed()) playButton.setText(MessagesMP.play); |
|
489 |
if (!playButton.isDisposed()) { |
|
490 |
playButton.setText(MessagesMP.play); |
|
491 |
} |
|
604 | 492 |
} |
605 | 493 |
} |
Also available in: Unified diff