static/dmx.js
author Tero Marttila <terom@paivola.fi>
Thu, 01 May 2014 23:34:20 +0300
changeset 83 136e210fce82
child 85 ee05d89bde77
permissions -rw-r--r--
qmsk.dmx: new Head-based model/view; output/updates not yet implemented
83
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     1
function dmx_input (head, attr) {
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     2
    var value = $('.dmx-input#' + head + '-' + attr).val();
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     3
    
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     4
    if (value == undefined )
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     5
        return undefined;
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     6
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     7
    if (value == "")
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     8
        return 0; // default
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     9
    
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    10
    return parseInt(value);
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    11
}
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    12
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    13
/*
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    14
 * Update color for head.
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    15
 */
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    16
function dmx_color (head) {
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    17
    var alpha = dmx_input(head, 'alpha');
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    18
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    19
    if (alpha) 
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    20
        alpha = alpha / 255;
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    21
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    22
    $('.dmx-color#' + head + '-color').background_color(
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    23
            dmx_input(head, 'red') / 255,
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    24
            dmx_input(head, 'green') / 255,
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    25
            dmx_input(head, 'blue') / 255,
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    26
            alpha
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    27
    );
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    28
}
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    29
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    30
/*
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    31
 * Update slider from <input>.
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    32
 */
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    33
function _slider_input (input, slider) {
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    34
    var value;
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    35
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    36
    if (input.val())
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    37
        value = parseInt(input.val());
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    38
    else
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    39
        value = 0;
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    40
    
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    41
    slider.slider('value', value);
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    42
}
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    43
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    44
/*
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    45
 * Bind given <input> to given slider.
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    46
 */
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    47
function slider_input (input, slider) {
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    48
    // bind
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    49
    input.change(function () { _slider_input(input, slider); });
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    50
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    51
    // initialize
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    52
    _slider_input(input, slider);
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    53
}
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    54
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    55
$(function () {
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    56
    $('.dmx-input').each(function () {
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    57
        var attr = this.id;
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    58
        var head = attr.split('-', 1)[0];
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    59
        var input = $(this);
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    60
        var slider = $('.dmx-slider#' + attr + '-slider');
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    61
        var color = $('.dmx-color#' + head + '-color');
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    62
        
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    63
        // slider control
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    64
        slider.slider({
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    65
            orientation:    'horizontal',
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    66
            range:          'min',
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    67
            min:            0,
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    68
            max:            255,
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    69
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    70
            slide:          function () {
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    71
                var value = slider.slider('value');
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    72
                
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    73
                // update input
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    74
                input.val(value.toString());
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    75
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    76
                if (color) {
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    77
                    // update color value
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    78
                    dmx_color(head);
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    79
                }
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    80
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    81
            },
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    82
        });
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    83
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    84
        // update slider from <input>
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    85
        slider_input(input, slider);
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    86
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    87
        // init
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    88
        if (color) {
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    89
            dmx_color(head);
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    90
        }
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    91
    });
136e210fce82 qmsk.dmx: new Head-based model/view; output/updates not yet implemented
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    92
});