Advertisement
ExtremeHunter

Simple VU Meter (Requested by Arnie)

Mar 25th, 2013
337
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==PREPROCESSOR==
  2. // @name "Simple VU meter (25.03.2013)"
  3. // @author "eXtremeHunter"
  4. // ==/PREPROCESSOR==
  5. // Tested with foo_vis_vumeter v. 2013-02-16
  6.  
  7. function RGB(r, g, b) {
  8.     return (0xff000000 | (r << 16) | (g << 8) | (b));
  9. }
  10. VUMeter = new ActiveXObject("VUMeter");
  11. VUMeter.RegisterWindow(window.ID);
  12.  
  13. // ==================================================== //
  14.  
  15. var meterBackColor = RGB(230, 230, 230);
  16. var levelColor = RGB(75, 149, 229);
  17. var peakColor = RGB(180, 180, 80);
  18.  
  19. function on_paint(gr) {
  20.  
  21.     var centerGap = 40,
  22.         x = 15,
  23.         y = 10,
  24.         w = ww / 2,
  25.         h = 8,
  26.         c = centerGap / 2,
  27.         leftLevel = (VUMeter.LeftLevel * ((w - c - x) / 2.5)),
  28.         rightLevel = (VUMeter.RightLevel * ((w - c - x) / 2.5)),
  29.         leftPeak = (VUMeter.LeftPeak * ((w - c - x) / 2.5)),
  30.         rightPeak = (VUMeter.RightPeak * ((w - c - x) / 2.5));
  31.  
  32.     // Draw Level
  33.  
  34.     gr.FillSolidRect(x, y, w - c - x, h, meterBackColor); // L
  35.     gr.FillSolidRect(x, y, leftLevel, h, levelColor);
  36.  
  37.     gr.FillSolidRect(w + c, y, w - c - x, h, meterBackColor); // R
  38.     gr.FillSolidRect(ww - rightLevel - x, y, rightLevel, h, levelColor);
  39.  
  40.     // Offset Indicator
  41.     gr.SetTextRenderingHint(5);
  42.     gr.Drawstring(VUMeter.Offset, gdi.font("Segoe Ui", 12, 0), RGB(0, 0, 0), 0, y, ww, 14, 0x11005000);
  43.  
  44.     var y = y + h + 3;
  45.     var h = 3;
  46.  
  47.     // Draw Peak
  48.  
  49.     gr.FillSolidRect(x, y, w - c - x, h, meterBackColor); // L
  50.     gr.FillSolidRect(x, y, leftPeak, h, peakColor);
  51.  
  52.     gr.FillSolidRect(w + c, y, w - c - x, h, meterBackColor); // R
  53.     gr.FillSolidRect(ww - rightPeak - x, y, rightPeak, h, peakColor);
  54.  
  55. }
  56. // ==================================================== //
  57.  
  58. function on_size() {
  59.     ww = window.Width;
  60.     wh = window.Height;
  61. }
  62. // ==================================================== //
  63.  
  64. function on_mouse_wheel(step) {
  65.     VUMeter.Offset = VUMeter.Offset + step;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement