forked from 0x2620/oxjs
support per clip volume
This commit is contained in:
parent
34cdae0ab3
commit
bfb5c3d3ef
6 changed files with 78 additions and 18 deletions
|
|
@ -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]);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue