mirror of
				https://github.com/gyurix1968/guacamole-client.git
				synced 2025-10-31 09:03:21 +00:00 
			
		
		
		
	GUAC-919: Copy Angular changes from old GUAC-546 branch.
This commit is contained in:
		
				
					committed by
					
						 Michael Jumper
						Michael Jumper
					
				
			
			
				
	
			
			
			
						parent
						
							ac2617b92a
						
					
				
				
					commit
					5c43ae4ff9
				
			
							
								
								
									
										79
									
								
								guacamole/src/main/webapp/app/client/services/guacAudio.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								guacamole/src/main/webapp/app/client/services/guacAudio.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,79 @@ | ||||
| /* | ||||
|  * Copyright (C) 2014 Glyptodon LLC | ||||
|  * | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
|  * of this software and associated documentation files (the "Software"), to deal | ||||
|  * in the Software without restriction, including without limitation the rights | ||||
|  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
|  * copies of the Software, and to permit persons to whom the Software is | ||||
|  * furnished to do so, subject to the following conditions: | ||||
|  * | ||||
|  * The above copyright notice and this permission notice shall be included in | ||||
|  * all copies or substantial portions of the Software. | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
|  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
|  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
|  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
|  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||
|  * THE SOFTWARE. | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * A service for checking browser audio support. | ||||
|  */ | ||||
| angular.module('client').factory('guacAudio', [function guacAudio() { | ||||
|              | ||||
|     /** | ||||
|      * Object describing the UI's level of audio support. | ||||
|      */ | ||||
|     return new (function() { | ||||
|  | ||||
|         var codecs = [ | ||||
|             'audio/ogg; codecs="vorbis"', | ||||
|             'audio/mp4; codecs="mp4a.40.5"', | ||||
|             'audio/mpeg; codecs="mp3"', | ||||
|             'audio/webm; codecs="vorbis"', | ||||
|             'audio/wav; codecs=1' | ||||
|         ]; | ||||
|  | ||||
|         var probably_supported = []; | ||||
|         var maybe_supported = []; | ||||
|  | ||||
|         /** | ||||
|          * Array of all supported audio mimetypes, ordered by liklihood of | ||||
|          * working. | ||||
|          */ | ||||
|         this.supported = []; | ||||
|  | ||||
|         // Build array of supported audio formats | ||||
|         codecs.forEach(function(mimetype) { | ||||
|  | ||||
|             var audio = new Audio(); | ||||
|             var support_level = audio.canPlayType(mimetype); | ||||
|  | ||||
|             // Trim semicolon and trailer | ||||
|             var semicolon = mimetype.indexOf(";"); | ||||
|             if (semicolon != -1) | ||||
|                 mimetype = mimetype.substring(0, semicolon); | ||||
|  | ||||
|             // Partition by probably/maybe | ||||
|             if (support_level == "probably") | ||||
|                 probably_supported.push(mimetype); | ||||
|             else if (support_level == "maybe") | ||||
|                 maybe_supported.push(mimetype); | ||||
|  | ||||
|         }); | ||||
|  | ||||
|         // Add probably supported types first | ||||
|         Array.prototype.push.apply( | ||||
|             this.supported, probably_supported); | ||||
|  | ||||
|         // Prioritize "maybe" supported types second | ||||
|         Array.prototype.push.apply( | ||||
|             this.supported, maybe_supported); | ||||
|  | ||||
|     })(); | ||||
|  | ||||
| }]); | ||||
							
								
								
									
										77
									
								
								guacamole/src/main/webapp/app/client/services/guacVideo.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								guacamole/src/main/webapp/app/client/services/guacVideo.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,77 @@ | ||||
| /* | ||||
|  * Copyright (C) 2014 Glyptodon LLC | ||||
|  * | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
|  * of this software and associated documentation files (the "Software"), to deal | ||||
|  * in the Software without restriction, including without limitation the rights | ||||
|  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
|  * copies of the Software, and to permit persons to whom the Software is | ||||
|  * furnished to do so, subject to the following conditions: | ||||
|  * | ||||
|  * The above copyright notice and this permission notice shall be included in | ||||
|  * all copies or substantial portions of the Software. | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
|  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
|  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
|  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
|  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||
|  * THE SOFTWARE. | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * A service for checking browser video support. | ||||
|  */ | ||||
| angular.module('client').factory('guacVideo', [function guacVideo() { | ||||
|             | ||||
|     /** | ||||
|      * Object describing the UI's level of video support. | ||||
|      */ | ||||
|     return new (function() { | ||||
|  | ||||
|         var codecs = [ | ||||
|             'video/ogg; codecs="theora, vorbis"', | ||||
|             'video/mp4; codecs="avc1.4D401E, mp4a.40.5"', | ||||
|             'video/webm; codecs="vp8.0, vorbis"' | ||||
|         ]; | ||||
|  | ||||
|         var probably_supported = []; | ||||
|         var maybe_supported = []; | ||||
|  | ||||
|         /** | ||||
|          * Array of all supported video mimetypes, ordered by liklihood of | ||||
|          * working. | ||||
|          */ | ||||
|         this.supported = []; | ||||
|  | ||||
|         // Build array of supported audio formats | ||||
|         codecs.forEach(function(mimetype) { | ||||
|  | ||||
|             var video = document.createElement("video"); | ||||
|             var support_level = video.canPlayType(mimetype); | ||||
|  | ||||
|             // Trim semicolon and trailer | ||||
|             var semicolon = mimetype.indexOf(";"); | ||||
|             if (semicolon != -1) | ||||
|                 mimetype = mimetype.substring(0, semicolon); | ||||
|  | ||||
|             // Partition by probably/maybe | ||||
|             if (support_level == "probably") | ||||
|                 probably_supported.push(mimetype); | ||||
|             else if (support_level == "maybe") | ||||
|                 maybe_supported.push(mimetype); | ||||
|  | ||||
|         }); | ||||
|  | ||||
|         // Add probably supported types first | ||||
|         Array.prototype.push.apply( | ||||
|             this.supported, probably_supported); | ||||
|  | ||||
|         // Prioritize "maybe" supported types second | ||||
|         Array.prototype.push.apply( | ||||
|             this.supported, maybe_supported); | ||||
|  | ||||
|     })(); | ||||
|  | ||||
| }]); | ||||
		Reference in New Issue
	
	Block a user