return result;
}
+static PyObject*
+Channel_get_kmeter(ChannelObject *self, void *closure)
+{
+ PyObject *result;
+ double peak_left, peak_right, rms_left, rms_right;
+
+ if (channel_is_stereo(self->channel)) {
+ result = PyTuple_New(4);
+ channel_stereo_kmeter_read(self->channel, &peak_left, &peak_right, &rms_left, &rms_right);
+ PyTuple_SetItem(result, 0, PyFloat_FromDouble(peak_left));
+ PyTuple_SetItem(result, 1, PyFloat_FromDouble(peak_right));
+ PyTuple_SetItem(result, 2, PyFloat_FromDouble(rms_left));
+ PyTuple_SetItem(result, 3, PyFloat_FromDouble(rms_right));
+ } else {
+ result = PyTuple_New(2);
+ channel_mono_kmeter_read(self->channel, &peak_left, &rms_left);
+ PyTuple_SetItem(result, 0, PyFloat_FromDouble(peak_left));
+ PyTuple_SetItem(result, 1, PyFloat_FromDouble(rms_left));
+ }
+ return result;
+}
+
static PyObject*
Channel_get_abspeak(ChannelObject *self, void *closure)
{
{"meter",
(getter)Channel_get_meter, NULL,
"meter", NULL},
+ {"kmeter",
+ (getter)Channel_get_kmeter, NULL,
+ "kmeter", NULL},
{"abspeak",
(getter)Channel_get_abspeak, (setter)Channel_set_abspeak,
"balance", NULL},
return Py_None;
}
-static int
-Channel_set_volume_from_midi(ChannelObject *self, PyObject *args)
-{
- double value;
-
- if (! PyArg_ParseTuple(args, "f", &value)) return NULL;
- if (self->channel == NULL) {
- PyErr_SetString(PyExc_RuntimeError, "unitialized channel");
- return -1;
- }
- channel_volume_write(self->channel, value);
- return 0;
-}
-
-static int
-Channel_set_balance_from_midi(ChannelObject *self, PyObject *args)
-{
- double value;
-
- if (! PyArg_ParseTuple(args, "f", &value)) return NULL;
- if (self->channel == NULL) {
- PyErr_SetString(PyExc_RuntimeError, "unitialized channel");
- return -1;
- }
- channel_balance_write(self->channel, value);
- return 0;
-}
-
static PyMethodDef channel_methods[] = {
{"remove", (PyCFunction)Channel_remove, METH_VARARGS, "Remove"},
{"autoset_volume_midi_cc",
(PyCFunction)Channel_autoset_mute_midi_cc, METH_VARARGS, "Autoset Mute MIDI CC"},
{"autoset_solo_midi_cc",
(PyCFunction)Channel_autoset_solo_midi_cc, METH_VARARGS, "Autoset Solo MIDI CC"},
- {"set_volume_from_midi",
- (PyCFunction)Channel_set_volume_from_midi, METH_VARARGS, "Set Volume From MIDI"},
- {"set_balance_from_midi",
- (PyCFunction)Channel_set_volume_from_midi, METH_VARARGS, "Set Balance From MIDI"},
{NULL}
};
return result;
}
+static PyObject*
+OutputChannel_set_in_prefader(OutputChannelObject *self, PyObject *args)
+{
+ PyObject *channel;
+ unsigned char prefader;
+
+ if (! PyArg_ParseTuple(args, "Ob", &channel, &prefader)) return NULL;
+
+ output_channel_set_in_prefader(self->output_channel,
+ ((ChannelObject*)channel)->channel,
+ prefader);
+
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+
+static PyObject*
+OutputChannel_is_in_prefader(OutputChannelObject *self, PyObject *args)
+{
+ PyObject *channel;
+ PyObject *result;
+
+ if (! PyArg_ParseTuple(args, "O", &channel)) return NULL;
+
+ if (output_channel_is_in_prefader(self->output_channel,
+ ((ChannelObject*)channel)->channel)) {
+ result = Py_True;
+ } else {
+ result = Py_False;
+ }
+
+ Py_INCREF(result);
+ return result;
+}
+
static PyMethodDef output_channel_methods[] = {
{"remove", (PyCFunction)OutputChannel_remove, METH_VARARGS, "Remove"},
{"set_solo", (PyCFunction)OutputChannel_set_solo, METH_VARARGS, "Set a channel as solo"},
{"set_muted", (PyCFunction)OutputChannel_set_muted, METH_VARARGS, "Set a channel as muted"},
{"is_solo", (PyCFunction)OutputChannel_is_solo, METH_VARARGS, "Is a channel set as solo"},
{"is_muted", (PyCFunction)OutputChannel_is_muted, METH_VARARGS, "Is a channel set as muted"},
+ {"set_in_prefader", (PyCFunction)OutputChannel_set_in_prefader, METH_VARARGS, "Set a channel as prefader"},
+ {"is_in_prefader", (PyCFunction)OutputChannel_is_in_prefader, METH_VARARGS, "Is a channel set as prefader"},
{NULL}
};