#!/usr/bin/env python3

from sys import exit
from errno import ENXIO

from helper import test_object

import gi
gi.require_version('Hitaki', '0.0')
from gi.repository import Hitaki

target_type = Hitaki.SndMotu
props = (
    # From interface.
    'unit-type',
    'card-id',
    'node-device',
    'is-locked',
    'guid',
    'is-disconnected',
)
methods = (
    'new',
    # From interfaces.
    'open',
    'lock',
    'unlock',
    'create_source',
    'read_parameter',
    'read_byte_meter',
    'read_float_meter',
)
vmethods = (
    # From interfaces.
    'do_open',
    'do_lock',
    'do_unlock',
    'do_create_source',
    'do_notified',
    'do_read_parameter',
    'do_read_byte_meter',
    'do_changed',
    'do_read_float_meter',
)
signals = (
    # From interfaces.
    'notified',
    'changed',
)

if not test_object(target_type, props, methods, vmethods, signals):
    exit(ENXIO)
