From c353706435e02aaa4f9932fd6cf2f1d7ffebe2cf Mon Sep 17 00:00:00 2001 From: Mathias Markl Date: Sun, 13 May 2018 12:03:37 +0200 Subject: [PATCH] 2.0 --- muk_web_preview_audio/README.md | 7 -- muk_web_preview_audio/__init__.py | 2 - muk_web_preview_audio/__manifest__.py | 14 +-- muk_web_preview_audio/doc/changelog.rst | 6 +- muk_web_preview_audio/doc/index.rst | 51 ++++++++ .../static/description/index.html | 38 +++++- .../static/lib/visualizer/visualizer.js | 112 ------------------ .../static/src/js/preview_handler.js | 4 +- 8 files changed, 95 insertions(+), 139 deletions(-) delete mode 100644 muk_web_preview_audio/README.md create mode 100644 muk_web_preview_audio/doc/index.rst delete mode 100644 muk_web_preview_audio/static/lib/visualizer/visualizer.js diff --git a/muk_web_preview_audio/README.md b/muk_web_preview_audio/README.md deleted file mode 100644 index d9e3887..0000000 --- a/muk_web_preview_audio/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# MuK Preview Audio - -Extendes the Preview Dialog to support audio. Currently the following audio extensions are supported: - -* Wav (*.wav, audio/wav) -* Ogg Theora Vorbis (*.ogg, audio/ogg) -* MP3 (*.mp3, audio/mpeg) \ No newline at end of file diff --git a/muk_web_preview_audio/__init__.py b/muk_web_preview_audio/__init__.py index 48ccf85..21f21ae 100644 --- a/muk_web_preview_audio/__init__.py +++ b/muk_web_preview_audio/__init__.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - ################################################################################### # # Copyright (C) 2017 MuK IT GmbH diff --git a/muk_web_preview_audio/__manifest__.py b/muk_web_preview_audio/__manifest__.py index 2cf3401..58d1d87 100644 --- a/muk_web_preview_audio/__manifest__.py +++ b/muk_web_preview_audio/__manifest__.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - ################################################################################### # # Copyright (C) 2017 MuK IT GmbH @@ -22,17 +20,11 @@ { "name": "MuK Preview Audio", "summary": """Audio Preview""", - "description": """ - Extendes the Preview Dialog to support audio. - Currently the following audio extensions are supported: - - Wav (*.wav, audio/wav) - - Ogg Theora Vorbis (*.ogg, audio/ogg) - - MP3 (*.mp3, audio/mpeg) - """, - "version": "11.0.1.1.0", + "version": "11.0.2.0.0", "category": "Extra Tools", "license": "AGPL-3", "website": "http://www.mukit.at", + "live_test_url": "https://demo.mukit.at/web/login", "author": "MuK IT", "contributors": [ "Mathias Markl ", @@ -43,8 +35,6 @@ "data": [ "template/assets.xml", ], - "demo": [ - ], "qweb": [ "static/src/xml/*.xml", ], diff --git a/muk_web_preview_audio/doc/changelog.rst b/muk_web_preview_audio/doc/changelog.rst index 0a9ed4b..f10b321 100644 --- a/muk_web_preview_audio/doc/changelog.rst +++ b/muk_web_preview_audio/doc/changelog.rst @@ -1,9 +1,13 @@ +`2.0.0` +------- + +- Migrated to Python 3 + `1.1.0` ------- - Lazy load javascript - `1.0.0` ------- diff --git a/muk_web_preview_audio/doc/index.rst b/muk_web_preview_audio/doc/index.rst new file mode 100644 index 0000000..e892bb4 --- /dev/null +++ b/muk_web_preview_audio/doc/index.rst @@ -0,0 +1,51 @@ +================= +MuK Preview Audio +================= + +Extendes the Preview Dialog to support images. Currently the following image extensions +are supported: + +* Wav (\*.wav, audio/wav) +* Ogg Theora Vorbis (\*.ogg, audio/ogg) +* MP3 (\*.mp3, audio/mpeg) + +Installation +============ + +To install this module, you need to: + +Download the module and add it to your Odoo addons folder. Afterward, log on to +your Odoo server and go to the Apps menu. Trigger the debug modus and update the +list by clicking on the "Update Apps List" link. Now install the module by +clicking on the install button. + +Configuration +============= + +No additional configuration is needed to use this module. + +Usage +============= + +Go to a binary that contains an audio file and open the preview dialog to view +the preview. + +Credits +======= + +Contributors +------------ + +* Mathias Markl + +Author & Maintainer +------------------- + +This module is maintained by the `MuK IT GmbH `_. + +MuK IT is an Austrian company specialized in customizing and extending Odoo. +We develop custom solutions for your individual needs to help you focus on +your strength and expertise to grow your business. + +If you want to get in touch please contact us via mail +(sale@mukit.at) or visit our website (https://mukit.at). diff --git a/muk_web_preview_audio/static/description/index.html b/muk_web_preview_audio/static/description/index.html index 4543148..9c46aca 100644 --- a/muk_web_preview_audio/static/description/index.html +++ b/muk_web_preview_audio/static/description/index.html @@ -4,15 +4,15 @@

Preview your audio files directly in Odoo.

MuK IT GmbH - www.mukit.at

-
+
-
+
-
+

Overview

Extendes the Preview Dialog to support audio. Currently the following audio extensions are supported:

@@ -25,14 +25,46 @@
+
+

Demo

+
+
+
User:
+
+
+
apps
+
+
+
Password:
+
+
+
demo
+
+
+ +
+

Help and Support

+
Feel free to + contact us, if you need any help with your Odoo integration or + addiontal features.
. -* -**********************************************************************************/ - -window.AudioContext = window.AudioContext || window.webkitAudioContext || window.mozAudioContext; - -function Visualizer($audio, $container, $canvas) { - var _this = this; - - this.$audio = $audio; - this.$container = $container; - this.$canvas = $canvas; - - this.audio = $audio.get(0); - this.canvas = $canvas.get(0); - - this.audioCtx = new AudioContext(); - this.analyser = this.audioCtx.createAnalyser(); - this.audioSrc = this.audioCtx.createMediaElementSource(this.audio); - this.frequencyData = new Uint8Array(this.analyser.frequencyBinCount); - this.smoothEndingCounter = 0; - - this.audioSrc.connect(this.analyser); - this.analyser.connect(this.audioCtx.destination); - - this.ctx = this.canvas.getContext('2d'), - - this.capYPositionArray = []; - - this.$audio.bind('play', function (e) { - _this.smoothEndingCounter = 0; - _this.calcCanvas(); - _this.renderFrame(); - }); - - this.map = function (num, in_min, in_max, out_min, out_max) { - return (num - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; - } - - this.calcCanvas = function() { - _this.canvas.width = _this.$container.width() !== 0 ? _this.$container.width() : 650; - _this.canvas.height = _this.$container.height() !== 0 ? _this.$container.height() : 360; - _this.cwidth = _this.canvas.width; - _this.cheight = _this.canvas.height - 4; - _this.meterWidth = 10; - _this.capHeight = 4; - _this.capStyle = '#FFF'; - _this.meterNum = (_this.$container.width() !== 0 ? _this.$container.width() : 650) / (10 + 2); - - _this.gradient = _this.ctx.createLinearGradient(0, 0, 0, _this.cheight); - _this.gradient.addColorStop(1, '#1CD5FB'); - _this.gradient.addColorStop(0.75, '#19DECA'); - _this.gradient.addColorStop(0.5, '#28F5A6'); - _this.gradient.addColorStop(0.25, '#19DE5A'); - _this.gradient.addColorStop(0, '#1CFB27'); - } - - this.renderFrame = function() { - if(_this.$container.width() !== _this.cwidth) { - _this.calcCanvas(); - } - - _this.ctx.clearRect(0, 0, _this.cwidth, _this.cheight); - - _this.analyser.getByteFrequencyData(_this.frequencyData); - var step = Math.round(_this.frequencyData.length / _this.meterNum); - - for (var i = 0; i < _this.meterNum; i++) { - var valueBar = _this.map(_this.frequencyData[i * step], 0, 255, 0, _this.cheight); - var valueCap = _this.map(_this.frequencyData[i * step], 0, 255, 0, _this.canvas.height); - - if (_this.capYPositionArray.length < Math.round(_this.meterNum)) { - _this.capYPositionArray.push(valueCap); - }; - - _this.ctx.fillStyle = _this.gradient; - _this.ctx.fillRect(i * 12, _this.cheight - valueBar, _this.meterWidth, _this.cheight); - - _this.ctx.fillStyle = _this.capStyle; - if (valueCap < _this.capYPositionArray[i]) { - _this.ctx.fillRect(i * 12, _this.canvas.height - (--_this.capYPositionArray[i]), _this.meterWidth, _this.capHeight); - } else { - _this.ctx.fillRect(i * 12, _this.canvas.height - valueCap, _this.meterWidth, _this.capHeight); - _this.capYPositionArray[i] = valueCap; - }; - } - - if(!_this.audio.paused) { - requestAnimationFrame(_this.renderFrame); - } else { - if(_this.smoothEndingCounter < 500) { - requestAnimationFrame(_this.renderFrame); - } - _this.smoothEndingCounter++; - } - } -}; diff --git a/muk_web_preview_audio/static/src/js/preview_handler.js b/muk_web_preview_audio/static/src/js/preview_handler.js index c5da58b..9878462 100644 --- a/muk_web_preview_audio/static/src/js/preview_handler.js +++ b/muk_web_preview_audio/static/src/js/preview_handler.js @@ -32,7 +32,7 @@ var AudioHandler = PreviewHandler.BaseHandler.extend({ cssLibs: [ ], jsLibs: [ - '/muk_web_preview_audio/static/lib/visualizer/visualizer.js', + '/muk_web_utils/static/lib/visualizer/visualizer.js', ], mimetypeMap: { '.wav': 'audio/wav', '.ogg': 'audio/ogg', '.mp3': 'audio/mpeg', @@ -61,6 +61,6 @@ var AudioHandler = PreviewHandler.BaseHandler.extend({ return { AudioHandler: AudioHandler, -} +}; }); \ No newline at end of file