Пользовательские индикаторы к foo_vis_vumeter

Список разделов foobar2000 Секреты foobar2000

Описание: Кнопочки, конфиги, секреты, советы.

Сообщение #341 macarych » 02.09.2017, 02:39

macarych M
Автор темы
Аватара
Репутация: 417
С нами: 15 лет 9 месяцев

SONY TC-1xxx

Сообщение #342 noelj62 » 21.09.2017, 18:52

Вложения
Sony_VU_meter_final_v01_screencapture.jpg
noelj62
Репутация: 12
С нами: 8 лет 4 месяца

Сообщение #343 iprad » 22.09.2017, 13:34

Есть идея. В основном для световых индикаторов

Код приведен ниже, установить шрифт во вложении
Первые два индикатора - это уровни каналов. Вторая пара - пики
Спойлер
Код: Выделить всё
// ==PREPROCESSOR==
// @name "Analog VUMeter automation demo"
// @version "1.0"
// ==/PREPROCESSOR==

// --- VUMeter BEGIN
VUMeter = new ActiveXObject("VUMeter");
VUMeter.RegisterWindow(window.ID);

var VUWidth=200,VUHeight=100;
var ww = 0, wh = 0;

var color_vu = RGB(255,255,255);

function on_size() {
    ww = window.Width;
    wh = window.Height;
}

function ToDB(Level){
    return (20*Math.log(Level)/Math.LN10).toFixed(2);
}

function on_mouse_wheel(step) {
    VUMeter.Offset+=step;
}

var Delta=0;

function on_paint(gr) {
   var L=VUMeter.LeftLevel;
    var R=VUMeter.RightLevel;
    var LM=VUMeter.LeftPeak;
    var RM=VUMeter.RightPeak;
    var D=Delta*0.95+VUMeter.UpdatePeriod*0.05;
    Delta=D;
    var text="Period:"+Math.round(D*1000)+ " ms\nLeft:"+ToDB(L)+"\nRight:"+ToDB(R)+"\nOffset:"+VUMeter.Offset+" dB";
   
    gr.FillSolidRect(0, 100, 1000, 200, RGB(0, 0, 0));
   var text_vuL = "m";
    var text_vuR = "k";
   
   var maxL=10*L;
    var maxR=10*R;
   
    for (var j = 0; j < maxL-1; j++){   
         text_vuL = text_vuL + "x";
      }
       
    for (var j = 0; j < maxR-1; j++){   
         text_vuR = text_vuR + "x";
      }
           
   gr.DrawString(text_vuL,gdi.Font("Technics HiFi", 60, 0), color_vu,
         0,
         100,
         1000,
         50,
         0x00100000
         );
           
    gr.DrawString(text_vuR,gdi.Font("Technics HiFi", 60, 0), color_vu,
         0,
         150,
         1000,
         50,
         0x00100000
         );
         
   var maxL=10*LM;
    var maxR=10*RM;
   
    for (var j = 0; j < maxL-1; j++){   
         text_vuL = text_vuL + "x";
      }
       
    for (var j = 0; j < maxR-1; j++){   
         text_vuR = text_vuR + "x";
      }
           
   gr.DrawString(text_vuL,gdi.Font("Technics HiFi", 60, 0), color_vu,
         0,
         200,
         1000,
         50,
         0x00100000
         );
           
    gr.DrawString(text_vuR,gdi.Font("Technics HiFi", 60, 0), color_vu,
         0,
         250,
         1000,
         50,
         0x00100000
         );
         
         
         
   
   
    gr.GdiDrawText(text, g_font, g_textcolor, 5, 5, ww, wh, DT_CALCRECT | DT_NOPREFIX);
}





// -- predefined functions

function RGBA(r, g, b, a) {
    r &= 0xff;
    g &= 0xff;
    b &= 0xff;
    a &= 0xff;
    return ((a << 24) | (r << 16) | (g << 8) | (b));
}

function RGB(r, g, b) {
    return RGBA(r, g, b, 0xff);
}

// {{
var DT_TOP = 0x00000000;
var DT_CENTER = 0x00000001;
var DT_VCENTER = 0x00000004;
var DT_WORDBREAK = 0x00000010;
var DT_CALCRECT = 0x00000400;
var DT_NOPREFIX = 0x00000800;
// }}

// {{
// Used in window.GetColorCUI()
ColorTypeCUI = {
    text: 0,
    selection_text: 1,
    inactive_selection_text: 2,
    background: 3,
    selection_background: 4,
    inactive_selection_background: 5,
    active_item_frame: 6
};

// Used in window.GetFontCUI()
FontTypeCUI = {
    items: 0,
    labels: 1
};

// Used in window.GetColorDUI()
ColorTypeDUI = {
    text: 0,
    background: 1,
    highlight: 2,
    selection: 3
};

// Used in window.GetFontDUI()
FontTypeDUI = {
    defaults: 0,
    tabs: 1,
    lists: 2,
    playlists: 3,
    statusbar: 4,
    console: 5
};
//}}

var g_instancetype = window.InstanceType;
var g_font = null;

var g_textcolor = 0, g_textcolor_hl = 0;
var g_backcolor = 0;
var g_hot = false;

function get_font() {
    if (g_instancetype == 0) { // CUI
        g_font = window.GetFontCUI(FontTypeCUI.items);
    } else if (g_instancetype == 1) { // DUI
        g_font = window.GetFontDUI(FontTypeDUI.defaults);
    } else {
        // None
    }
}
get_font();

function get_colors() {
    if (g_instancetype == 0) { // CUI
        g_textcolor = window.GetColorCUI(ColorTypeCUI.text);
        g_textcolor_hl = window.GetColorCUI(ColorTypeCUI.text);
        g_backcolor = window.GetColorCUI(ColorTypeCUI.background);
    } else if (g_instancetype == 1) { // DUI
        g_textcolor = window.GetColorDUI(ColorTypeDUI.text);
        g_textcolor_hl = window.GetColorDUI(ColorTypeDUI.highlight);
        g_backcolor = window.GetColorDUI(ColorTypeDUI.background);
    } else {
        // None
    }
}

Осталось проверить на сколько такой подход грузит процессор...

Стрелочные тоже в принципе можно использовать.. Одна картинка на background и стрелка программно...
Забыл добавить, что код для WSH Panel, а то кто-нить не поймет.
Вложения
Technics Hi-Fi.zip
(9.09 КБ) Скачиваний: 633
iprad M
Аватара
Репутация: 89
С нами: 11 лет 7 месяцев

Сообщение #344 MC Web » 22.09.2017, 14:57

iprad:Есть идея. В основном для световых индикаторов
Не в обиду, но подобные kgena_ua и другие предлагали:

Спойлер
Изображение

Изображение

Изображение

Или я сути идеи не уловил?

Единственное, что мне во всех их не нравится, что это не индикаторы, а имитация индикаторов.
MC Web
Репутация: 248
С нами: 11 лет 2 месяца

Сообщение #345 iprad » 22.09.2017, 15:58

Возможно пропустил. Отрисовка идёт не графикой, а символами шрифта
iprad M
Аватара
Репутация: 89
С нами: 11 лет 7 месяцев

Сообщение #346 MC Web » 22.09.2017, 16:18

iprad, а Вам для чего такого типа индикаторы на данном компоненте?
"Правильную" информацию с них не получишь.
Данный компонент создавался именно для отображения "красоты" аналоговых стрелочных индикаторов.
MC Web
Репутация: 248
С нами: 11 лет 2 месяца

Сообщение #347 iprad » 22.09.2017, 16:32

Ну например тот же RT909. Скин vu для него примерно 4 МБ и грузится долго. А так сделать шрифт и просто выводить текст поверх background в виде катушечника. Экономия памяти, хоть он и будет для красоты
iprad M
Аватара
Репутация: 89
С нами: 11 лет 7 месяцев

Сообщение #348 MC Web » 22.09.2017, 16:44

iprad:Ну например тот же RT909. Скин vu для него примерно 4 МБ и грузится долго.
Там я понимаю в 3D, а тут такого эффекта не будет.
Да и грузится долго наверно не из за скина VU... :smile:
MC Web
Репутация: 248
С нами: 11 лет 2 месяца

Сообщение #349 kutuzof » 24.09.2017, 12:21

Simpson Motorola (for DarkOne)
Спойлер
Изображение
https://drive.google.com/open?id=0B-0gor9tLAPiLUxaR3UybXZpVG8

Добавлено спустя 7 минут 35 секунд:
Weston (for DarkOne) big & small
Спойлер
Изображение
https://drive.google.com/open?id=0B-0gor9tLAPiZmJkNThqengtYWs
https://drive.google.com/open?id=0B-0gor9tLAPiX2NmeTF5aVVZNEE

Добавлено спустя 3 минуты 43 секунды:
Weston 1721 (for DarkOne) big & small
Спойлер
Изображение
https://drive.google.com/open?id=0B-0gor9tLAPiUnhQZVg4clN0Wm8
https://drive.google.com/open?id=0B-0gor9tLAPiMXdvLWg4Q1Fnb2c

Добавлено спустя 15 минут 54 секунды:
Nuclear-Electronics (for DarkOne) big & small по картинке от macarych
Спойлер
Изображение
https://drive.google.com/open?id=0B-0gor9tLAPidVRkUXluQXRfd1U
https://drive.google.com/open?id=0B-0gor9tLAPiSERoUGlxUkV0LXM

Добавлено спустя 5 минут 51 секунду:
Молот (mod DarkOne) big & small by G121121
Спойлер
Изображение
https://drive.google.com/open?id=0B-0gor9tLAPiQ2lkWlB5X3dwSVU
https://drive.google.com/open?id=0B-0gor9tLAPiQU9lcHdWdjRmNGc
kutuzof M
Аватара
Откуда: г. Орёл, Россия
Репутация: 256
С нами: 8 лет 1 месяц

Сообщение #350 vladj » 24.09.2017, 13:47

Спасибо за Motorola...инетересно стекло прорисовано, как настоящее.
vladj M
Аватара
Откуда: Пермский край
Репутация: 427
С нами: 14 лет 9 месяцев

Сообщение #351 AHAPXICT » 24.09.2017, 18:45

kutuzof, Приветствую :beer: Шикарно!
AHAPXICT M
Аватара
Откуда: Киев
Репутация: 252
С нами: 11 лет

Сообщение #352 kutuzof » 24.09.2017, 18:45

AHAPXICT, :beer:
kutuzof M
Аватара
Откуда: г. Орёл, Россия
Репутация: 256
С нами: 8 лет 1 месяц

Сообщение #353 kutuzof » 26.09.2017, 15:35

kutuzof M
Аватара
Откуда: г. Орёл, Россия
Репутация: 256
С нами: 8 лет 1 месяц

Сообщение #354 PitKon » 27.09.2017, 22:02

kutuzof, СПАСИБО! Отличные вуметры. Дело Макарыча и Дрона живёт и процветает :)
PitKon M
Аватара
Откуда: Беларусь, Жодино
Репутация: 6
С нами: 12 лет 5 месяцев

Сообщение #355 kutuzof » 01.10.2017, 14:22

kutuzof M
Аватара
Откуда: г. Орёл, Россия
Репутация: 256
С нами: 8 лет 1 месяц

Сообщение #356 kutuzof » 07.10.2017, 15:25

kutuzof M
Аватара
Откуда: г. Орёл, Россия
Репутация: 256
С нами: 8 лет 1 месяц

Сообщение #357 macarych » 09.10.2017, 05:25

macarych M
Автор темы
Аватара
Репутация: 417
С нами: 15 лет 9 месяцев

Сообщение #358 kutuzof » 09.10.2017, 21:45

kutuzof M
Аватара
Откуда: г. Орёл, Россия
Репутация: 256
С нами: 8 лет 1 месяц

Сообщение #359 macarych » 09.10.2017, 21:50

kutuzof, такие мне нравятся больше всех :clap:
macarych M
Автор темы
Аватара
Репутация: 417
С нами: 15 лет 9 месяцев

Сообщение #360 kgena_ua » 09.10.2017, 21:51

kutuzof, еще бы и царапины на стекле... :beer:
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет 6 месяцев

Пред.След.

Вернуться в Секреты foobar2000