| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | 
							- 
 - import logger from './logger';
 - 
 - /**
 -  * Begins a request to get available DesktopCapturerSources.
 -  *
 -  * @param {Array} types - An array with DesktopCapturerSource type strings.
 -  * @param {Object} options - Additional configuration for getting a list of
 -  * sources.
 -  * @param {Object} options.thumbnailSize - The desired height and width of the
 -  * return native image object used for the preview image of the source.
 -  * @returns {Function}
 -  */
 - export function obtainDesktopSources(types, options = {}) {
 -     const capturerOptions = {
 -         types
 -     };
 - 
 -     if (options.thumbnailSize) {
 -         capturerOptions.thumbnailSize = options.thumbnailSize;
 -     }
 - 
 -     return new Promise((resolve, reject) => {
 -         const { JitsiMeetElectron } = window;
 - 
 -         if (JitsiMeetElectron && JitsiMeetElectron.obtainDesktopStreams) {
 -             JitsiMeetElectron.obtainDesktopStreams(
 -                 sources => resolve(_seperateSourcesByType(sources)),
 -                 error => {
 -                     logger.error(
 -                         `Error while obtaining desktop sources: ${error}`);
 -                     reject(error);
 -                 },
 -                 capturerOptions
 -             );
 -         } else {
 -             const reason = 'Called JitsiMeetElectron.obtainDesktopStreams'
 -                 + ' but it is not defined';
 - 
 -             logger.error(reason);
 - 
 -             return Promise.reject(new Error(reason));
 -         }
 -     });
 - }
 - 
 - 
 - /**
 -  * Converts an array of DesktopCapturerSources to an object with types for keys
 -  * and values being an array with sources of the key's type.
 -  *
 -  * @param {Array} sources - DesktopCapturerSources.
 -  * @private
 -  * @returns {Object} An object with the sources split into seperate arrays based
 -  * on source type.
 -  */
 - function _seperateSourcesByType(sources = []) {
 -     const sourcesByType = {
 -         screen: [],
 -         window: []
 -     };
 - 
 -     sources.forEach(source => {
 -         const idParts = source.id.split(':');
 -         const type = idParts[0];
 - 
 -         if (sourcesByType[type]) {
 -             sourcesByType[type].push(source);
 -         }
 -     });
 - 
 -     return sourcesByType;
 - }
 
 
  |