Coverage for linuxpy/codegen/midi.py: 0%
10 statements
« prev ^ index » next coverage.py v7.6.8, created at 2025-05-27 13:54 +0200
« prev ^ index » next coverage.py v7.6.8, created at 2025-05-27 13:54 +0200
1#
2# This file is part of the linuxpy project
3#
4# Copyright (c) 2023 Tiago Coutinho
5# Distributed under the GPLv3 license. See LICENSE for more info.
7import pathlib
9from linuxpy.codegen.base import CEnum, run
11HEADERS = [
12 "/usr/include/sound/asequencer.h",
13]
16TEMPLATE = """\
17#
18# This file is part of the linuxpy project
19#
20# Copyright (c) 2023 Tiago Coutinho
21# Distributed under the GPLv3 license. See LICENSE for more info.
23# This file has been generated by {name}
24# Date: {date}
25# System: {system}
26# Release: {release}
27# Version: {version}
29import enum
31from linuxpy.ioctl import IOR as _IOR, IOW as _IOW, IOWR as _IOWR
32from linuxpy.ctypes import u8, u16, cuint, cint, cchar
33from linuxpy.ctypes import Struct, Union, POINTER, cvoidp
36class ClientType(enum.IntEnum):
37 NO_CLIENT = 0
38 USER = 1
39 KERNEL = 2
42{enums_body}
45snd_seq_tick_time_t = cuint
48class snd_seq_real_time(Struct):
49 _fields_ = [
50 ("tv_sec", cuint),
51 ("tv_nsec", cuint),
52 ]
55# Defined in /usr/include/sound/asound.h
56class snd_timer_id(Struct):
57 _fields_ = [
58 ("dev_class", cint),
59 ("dev_sclass", cint),
60 ("card", cint),
61 ("device", cint),
62 ("subdevice", cint),
63 ]
66{structs_body}
69{iocs_body}"""
72# macros from #define statements
73MACRO_ENUMS = [
74 CEnum("EventLength", "SNDRV_SEQ_EVENT_LENGTH_"),
75 CEnum("TimeStamp", "SNDRV_SEQ_TIME_STAMP_", klass="IntFlag"),
76 CEnum("TimeMode", "SNDRV_SEQ_TIME_MODE_", klass="IntFlag"),
77 CEnum("Priority", "SNDRV_SEQ_PRIORITY_", klass="IntFlag"),
78 CEnum("EventType", "SNDRV_SEQ_EVENT_"),
79 CEnum("ClientNumber", "SNDRV_SEQ_CLIENT_"),
80 CEnum("Filter", "SNDRV_SEQ_FILTER_", klass="IntFlag"),
81 CEnum("Remove", "SNDRV_SEQ_REMOVE_", klass="IntFlag"),
82 CEnum("PortSystem", "SNDRV_SEQ_PORT_SYSTEM_", klass="IntFlag"),
83 CEnum("PortCapability", "SNDRV_SEQ_PORT_CAP_", klass="IntFlag"),
84 CEnum("PortType", "SNDRV_SEQ_PORT_TYPE_", klass="IntFlag"),
85 CEnum("PortFlag", "SNDRV_SEQ_PORT_FLG_", klass="IntFlag"),
86 CEnum("QueueFlag", "SNDRV_SEQ_QUEUE_FLG_", klass="IntFlag"),
87 CEnum("Timer", "SNDRV_SEQ_TIMER_"),
88 CEnum("QuerySubscription", "SNDRV_SEQ_QUERY_SUBS_"),
89 CEnum("IOC", "SNDRV_SEQ_IOCTL_"),
90]
93this_dir = pathlib.Path(__file__).parent
96def main(output=this_dir.parent / "midi" / "raw.py"):
97 run(__name__, HEADERS, TEMPLATE, MACRO_ENUMS, output=output)
100if __name__ == "__main__":
101 main()