Beispiel #1
0
    def selected(self):
        """
        Whether CC is selected.

        :type: bool

        See also
        --------
        CC.infos
            For maximum efficiency when querying several properties of
            a CC.
        """
        return bool(
            RPR.MIDI_GetCC(self.parent.id, self.index, 0, 0, 0, 0, 0, 0, 0)[3])
Beispiel #2
0
    def channel_message(self):
        """
        CC channel message.

        :type: int

        See also
        --------
        CC.infos
            For maximum efficiency when querying several properties of
            a CC.
        """
        return RPR.MIDI_GetCC(self.parent.id, self.index, 0, 0, 0, 0, 0, 0,
                              0)[6]
Beispiel #3
0
    def messages(self):
        """
        CC messages.

        :type: 2-list of int

        See also
        --------
        CC.infos
            For maximum efficiency when querying several properties of
            a CC.
        """
        return RPR.MIDI_GetCC(self.parent.id, self.index, 0, 0, 0, 0, 0, 0,
                              0)[-2:]
Beispiel #4
0
    def infos(self):
        """
        Return infos about CC.

        Keys are {"selected", "muted", "position", "channel",
        "channel_message", "messages"}.

        :type: dict
        """
        res = list(
            RPR.MIDI_GetCC(self.parent.id, self.index, 0, 0, 0, 0, 0, 0,
                           0))[3:]
        res[0] = bool(res[0])
        res[1] = bool(res[1])
        res[2] = self.parent.ppq_to_time(res[2])
        res[-2] = res[-2], res[-1]
        res.pop()
        keys = ("selected", "muted", "position", "channel_message", "channel",
                "messages")
        return {k: r for k, r in zip(keys, res)}