You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

MediaSource.java 2.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /*
  2. * Copyright (c) 2006-2017 DMDirc Developers
  3. *
  4. * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
  5. * documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
  6. * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
  7. * permit persons to whom the Software is furnished to do so, subject to the following conditions:
  8. *
  9. * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
  10. * Software.
  11. *
  12. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  13. * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
  14. * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
  15. * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  16. */
  17. package com.dmdirc.addons.nowplaying;
  18. /**
  19. * The media source describes one source of "now playing" information (i.e., one method of getting
  20. * information from one media player).
  21. */
  22. public interface MediaSource {
  23. /**
  24. * Get the state of this media source
  25. *
  26. * @return State for this media source.
  27. */
  28. MediaSourceState getState();
  29. /**
  30. * Retrieves the name of the application that this source is for.
  31. *
  32. * @return This source's application name
  33. */
  34. String getAppName();
  35. /**
  36. * Retrieves the artist of the curently loaded track.
  37. *
  38. * @return Current track artist
  39. */
  40. String getArtist();
  41. /**
  42. * Retrieves the title of the currently loaded track.
  43. *
  44. * @return Current track title
  45. */
  46. String getTitle();
  47. /**
  48. * Retrieves the album of the currently loaded track.
  49. *
  50. * @return Current track album
  51. */
  52. String getAlbum();
  53. /**
  54. * Retrieves the length of the currently loaded track ([h:]mm:ss).
  55. *
  56. * @return Current track length
  57. */
  58. String getLength();
  59. /**
  60. * Retrieves the time of the currently loaded track ([h:]mm:ss).
  61. *
  62. * @return Current track time
  63. */
  64. String getTime();
  65. /**
  66. * Retrieves the format of the currently loaded track.
  67. *
  68. * @return Current track format
  69. */
  70. String getFormat();
  71. /**
  72. * Retrieves the bitrate of the currently loaded track.
  73. *
  74. * @return Current track bitrate
  75. */
  76. String getBitrate();
  77. }