1
0
Fork 0
forked from 0x2620/oxjs

support per clip volume

This commit is contained in:
j 2017-04-15 13:45:01 +02:00
commit bfb5c3d3ef
6 changed files with 78 additions and 18 deletions

View file

@ -175,6 +175,21 @@ Ox.ClipPanel = function(options, self) {
visible: true,
width: 90
},
{
align: 'right',
editable: self.options.editable,
format: function(value, data) {
return Ox.formatNumber(value, 2);
},
id: 'volume',
operator: '+',
sort: function(value, data) {
return data.sort;
},
title: Ox._('Volume'),
visible: false,
width: 45
},
{
addable: false,
id: 'sort',
@ -491,23 +506,34 @@ Ox.ClipPanel = function(options, self) {
},
submit: function(data) {
var value = self.$list.value(data.id);
data.value = Ox.parseDuration(data.value);
if (
(data.key == 'in' && data.value < value.out)
|| (data.key == 'out' && data.value > value['in'])
|| (data.key == 'duration' && data.value > 0)
) {
self.$list.value(data.id, data.key, data.value);
if (data.key == 'in') {
self.$list.value(data.id, 'duration', value.out - data.value);
} else if (data.key == 'out') {
self.$list.value(data.id, 'duration', data.value - value['in']);
} else if (data.key == 'duration') {
self.$list.value(data.id, 'out', value['in'] + data.value);
if (data.key == 'volume') {
data.value = parseFloat(data.value);
if (data.value >= 1 || Ox.isNaN(data.value)) {
data.value = 1;
} else if (data.value < 0) {
data.value = 0;
}
self.$list.value(data.id, data.key, data.value);
that.triggerEvent('edit', data);
} else {
self.$list.value(data.id, data.key, value[data.key]);
data.value = Ox.parseDuration(data.value);
if (
(data.key == 'in' && data.value < value.out)
|| (data.key == 'out' && data.value > value['in'])
|| (data.key == 'duration' && data.value > 0)
) {
self.$list.value(data.id, data.key, data.value);
if (data.key == 'in') {
self.$list.value(data.id, 'duration', value.out - data.value);
} else if (data.key == 'out') {
self.$list.value(data.id, 'duration', data.value - value['in']);
} else if (data.key == 'duration') {
self.$list.value(data.id, 'out', value['in'] + data.value);
}
that.triggerEvent('edit', data);
} else {
self.$list.value(data.id, data.key, value[data.key]);
}
}
}
});