media-groups.js 766 B

123456789101112131415161718192021
  1. /**
  2. * Loops through all supported media groups in master and calls the provided
  3. * callback for each group
  4. *
  5. * @param {Object} master
  6. * The parsed master manifest object
  7. * @param {string[]} groups
  8. * The media groups to call the callback for
  9. * @param {Function} callback
  10. * Callback to call for each media group
  11. */
  12. export var forEachMediaGroup = function forEachMediaGroup(master, groups, callback) {
  13. groups.forEach(function (mediaType) {
  14. for (var groupKey in master.mediaGroups[mediaType]) {
  15. for (var labelKey in master.mediaGroups[mediaType][groupKey]) {
  16. var mediaProperties = master.mediaGroups[mediaType][groupKey][labelKey];
  17. callback(mediaProperties, mediaType, groupKey, labelKey);
  18. }
  19. }
  20. });
  21. };