Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
flow3r firmware
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
dos
flow3r firmware
Commits
6db0f37a
Verified
Commit
6db0f37a
authored
1 year ago
by
dos
Browse files
Options
Downloads
Patches
Plain Diff
sigh
parent
710e08f6
No related branches found
No related tags found
No related merge requests found
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
components/micropython/usermodule/mp_sys_bl00mbox.c
+621
-1
621 additions, 1 deletion
components/micropython/usermodule/mp_sys_bl00mbox.c
components/micropython/usermodule/mp_sys_bl00mbox.c
+621
-1
621 additions, 1 deletion
components/micropython/usermodule/mp_sys_bl00mbox.c
with
1242 additions
and
2 deletions
components/micropython/usermodule/mp_sys_bl00mbox.c
deleted
120000 → 0
+
621
−
1
View file @
710e08f6
..
/
..
/
bl00mbox
/
micropython
/
mp_sys_bl00mbox
.
c
\ No newline at end of file
This diff is collapsed.
Click to expand it.
components/micropython/usermodule/mp_sys_bl00mbox.c
0 → 100644
+
621
−
1
View file @
6db0f37a
// SPDX-License-Identifier: CC0-1.0
#include
<stdio.h>
#include
"py/obj.h"
#include
"py/runtime.h"
#include
"bl00mbox.h"
#include
"bl00mbox_plugin_registry.h"
#include
"bl00mbox_user.h"
#include
"radspa.h"
// ========================
// PLUGIN OPERATIONS
// ========================
STATIC
mp_obj_t
mp_plugin_index_get_id
(
mp_obj_t
index
)
{
/// prints name
radspa_descriptor_t
*
desc
=
bl00mbox_plugin_registry_get_descriptor_from_index
(
mp_obj_get_int
(
index
));
if
(
desc
==
NULL
)
return
mp_const_none
;
return
mp_obj_new_int
(
desc
->
id
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_1
(
mp_plugin_index_get_id_obj
,
mp_plugin_index_get_id
);
STATIC
mp_obj_t
mp_plugin_index_get_name
(
mp_obj_t
index
)
{
/// prints name
radspa_descriptor_t
*
desc
=
bl00mbox_plugin_registry_get_descriptor_from_index
(
mp_obj_get_int
(
index
));
if
(
desc
==
NULL
)
return
mp_const_none
;
return
mp_obj_new_str
(
desc
->
name
,
strlen
(
desc
->
name
));
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_1
(
mp_plugin_index_get_name_obj
,
mp_plugin_index_get_name
);
STATIC
mp_obj_t
mp_plugin_index_get_description
(
mp_obj_t
index
)
{
/// prints name
radspa_descriptor_t
*
desc
=
bl00mbox_plugin_registry_get_descriptor_from_index
(
mp_obj_get_int
(
index
));
if
(
desc
==
NULL
)
return
mp_const_none
;
return
mp_obj_new_str
(
desc
->
description
,
strlen
(
desc
->
description
));
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_1
(
mp_plugin_index_get_description_obj
,
mp_plugin_index_get_description
);
STATIC
mp_obj_t
mp_plugin_registry_num_plugins
(
void
)
{
return
mp_obj_new_int
(
bl00mbox_plugin_registry_get_plugin_num
());
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_0
(
mp_plugin_registry_num_plugins_obj
,
mp_plugin_registry_num_plugins
);
// ========================
// CHANNEL OPERATIONS
// ========================
STATIC
mp_obj_t
mp_channel_clear
(
mp_obj_t
index
)
{
return
mp_obj_new_bool
(
bl00mbox_channel_clear
(
mp_obj_get_int
(
index
)));
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_1
(
mp_channel_clear_obj
,
mp_channel_clear
);
static
mp_obj_t
mp_channel_get_free
(
mp_obj_t
index
)
{
return
mp_obj_new_int
(
bl00mbox_channel_get_free
(
mp_obj_get_int
(
index
)));
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_1
(
mp_channel_get_free_obj
,
mp_channel_get_free
);
static
mp_obj_t
mp_channel_set_free
(
mp_obj_t
index
,
mp_obj_t
free
)
{
return
mp_obj_new_int
(
bl00mbox_channel_set_free
(
mp_obj_get_int
(
index
),
mp_obj_is_true
(
free
)));
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_2
(
mp_channel_set_free_obj
,
mp_channel_set_free
);
static
mp_obj_t
mp_channel_get_free_index
()
{
return
mp_obj_new_int
(
bl00mbox_channel_get_free_index
());
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_0
(
mp_channel_get_free_index_obj
,
mp_channel_get_free_index
);
STATIC
mp_obj_t
mp_channel_get_foreground
()
{
return
mp_obj_new_int
(
bl00mbox_channel_get_foreground_index
());
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_0
(
mp_channel_get_foreground_obj
,
mp_channel_get_foreground
);
STATIC
mp_obj_t
mp_channel_set_foreground
(
mp_obj_t
index
)
{
bl00mbox_channel_set_foreground_index
(
mp_obj_get_int
(
index
));
return
mp_const_none
;
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_1
(
mp_channel_set_foreground_obj
,
mp_channel_set_foreground
);
STATIC
mp_obj_t
mp_channel_get_background_mute_override
(
mp_obj_t
index
)
{
bool
ret
=
bl00mbox_channel_get_background_mute_override
(
mp_obj_get_int
(
index
));
return
mp_obj_new_bool
(
ret
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_1
(
mp_channel_get_background_mute_override_obj
,
mp_channel_get_background_mute_override
);
STATIC
mp_obj_t
mp_channel_set_background_mute_override
(
mp_obj_t
index
,
mp_obj_t
enable
)
{
bool
ret
=
bl00mbox_channel_set_background_mute_override
(
mp_obj_get_int
(
index
),
mp_obj_is_true
(
enable
));
return
mp_obj_new_bool
(
ret
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_2
(
mp_channel_set_background_mute_override_obj
,
mp_channel_set_background_mute_override
);
STATIC
mp_obj_t
mp_channel_enable
(
mp_obj_t
chan
)
{
bl00mbox_channel_enable
(
mp_obj_get_int
(
chan
));
return
mp_const_none
;
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_1
(
mp_channel_enable_obj
,
mp_channel_enable
);
STATIC
mp_obj_t
mp_channel_disable
(
mp_obj_t
chan
)
{
bl00mbox_channel_disable
(
mp_obj_get_int
(
chan
));
return
mp_const_none
;
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_1
(
mp_channel_disable_obj
,
mp_channel_disable
);
STATIC
mp_obj_t
mp_channel_set_volume
(
mp_obj_t
chan
,
mp_obj_t
vol
)
{
bl00mbox_channel_set_volume
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
vol
));
return
mp_const_none
;
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_2
(
mp_channel_set_volume_obj
,
mp_channel_set_volume
);
STATIC
mp_obj_t
mp_channel_get_volume
(
mp_obj_t
chan
)
{
return
mp_obj_new_int
(
bl00mbox_channel_get_volume
(
mp_obj_get_int
(
chan
)));
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_1
(
mp_channel_get_volume_obj
,
mp_channel_get_volume
);
STATIC
mp_obj_t
mp_channel_set_name
(
mp_obj_t
chan
,
mp_obj_t
name
)
{
char
*
tmp
=
strdup
(
mp_obj_str_get_str
(
name
));
bl00mbox_channel_set_name
(
mp_obj_get_int
(
chan
),
tmp
);
free
(
tmp
);
return
mp_const_none
;
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_2
(
mp_channel_set_name_obj
,
mp_channel_set_name
);
STATIC
mp_obj_t
mp_channel_get_name
(
mp_obj_t
chan
)
{
char
*
name
=
bl00mbox_channel_get_name
(
mp_obj_get_int
(
chan
));
if
(
name
==
NULL
)
return
mp_const_none
;
return
mp_obj_new_str
(
name
,
strlen
(
name
));
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_1
(
mp_channel_get_name_obj
,
mp_channel_get_name
);
STATIC
mp_obj_t
mp_channel_buds_num
(
mp_obj_t
chan
)
{
return
mp_obj_new_int
(
bl00mbox_channel_buds_num
(
mp_obj_get_int
(
chan
)));
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_1
(
mp_channel_buds_num_obj
,
mp_channel_buds_num
);
STATIC
mp_obj_t
mp_channel_get_bud_by_list_pos
(
mp_obj_t
chan
,
mp_obj_t
pos
)
{
return
mp_obj_new_int
(
bl00mbox_channel_get_bud_by_list_pos
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
pos
)));
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_2
(
mp_channel_get_bud_by_list_pos_obj
,
mp_channel_get_bud_by_list_pos
);
STATIC
mp_obj_t
mp_channel_conns_num
(
mp_obj_t
chan
)
{
return
mp_obj_new_int
(
bl00mbox_channel_conns_num
(
mp_obj_get_int
(
chan
)));
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_1
(
mp_channel_conns_num_obj
,
mp_channel_conns_num
);
STATIC
mp_obj_t
mp_channel_mixer_num
(
mp_obj_t
chan
)
{
return
mp_obj_new_int
(
bl00mbox_channel_mixer_num
(
mp_obj_get_int
(
chan
)));
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_1
(
mp_channel_mixer_num_obj
,
mp_channel_mixer_num
);
STATIC
mp_obj_t
mp_channel_get_bud_by_mixer_list_pos
(
mp_obj_t
chan
,
mp_obj_t
pos
)
{
return
mp_obj_new_int
(
bl00mbox_channel_get_bud_by_mixer_list_pos
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
pos
)));
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_2
(
mp_channel_get_bud_by_mixer_list_pos_obj
,
mp_channel_get_bud_by_mixer_list_pos
);
STATIC
mp_obj_t
mp_channel_get_signal_by_mixer_list_pos
(
mp_obj_t
chan
,
mp_obj_t
pos
)
{
return
mp_obj_new_int
(
bl00mbox_channel_get_signal_by_mixer_list_pos
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
pos
)));
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_2
(
mp_channel_get_signal_by_mixer_list_pos_obj
,
mp_channel_get_signal_by_mixer_list_pos
);
// ========================
// BUD OPERATIONS
// ========================
STATIC
mp_obj_t
mp_channel_new_bud
(
mp_obj_t
chan
,
mp_obj_t
id
,
mp_obj_t
init_var
)
{
bl00mbox_bud_t
*
bud
=
bl00mbox_channel_new_bud
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
id
),
mp_obj_get_int
(
init_var
));
if
(
bud
==
NULL
)
return
mp_const_none
;
return
mp_obj_new_int
(
bud
->
index
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_3
(
mp_channel_new_bud_obj
,
mp_channel_new_bud
);
STATIC
mp_obj_t
mp_channel_delete_bud
(
mp_obj_t
chan
,
mp_obj_t
bud
)
{
bool
ret
=
bl00mbox_channel_delete_bud
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
bud
));
return
mp_obj_new_bool
(
ret
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_2
(
mp_channel_delete_bud_obj
,
mp_channel_delete_bud
);
STATIC
mp_obj_t
mp_channel_bud_exists
(
mp_obj_t
chan
,
mp_obj_t
bud
)
{
bool
ret
=
bl00mbox_channel_bud_exists
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
bud
));
return
mp_obj_new_bool
(
ret
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_2
(
mp_channel_bud_exists_obj
,
mp_channel_bud_exists
);
STATIC
mp_obj_t
mp_channel_bud_get_name
(
mp_obj_t
chan
,
mp_obj_t
bud
)
{
char
*
name
=
bl00mbox_channel_bud_get_name
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
bud
));
return
mp_obj_new_str
(
name
,
strlen
(
name
));
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_2
(
mp_channel_bud_get_name_obj
,
mp_channel_bud_get_name
);
STATIC
mp_obj_t
mp_channel_bud_get_description
(
mp_obj_t
chan
,
mp_obj_t
bud
)
{
char
*
description
=
bl00mbox_channel_bud_get_description
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
bud
));
return
mp_obj_new_str
(
description
,
strlen
(
description
));
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_2
(
mp_channel_bud_get_description_obj
,
mp_channel_bud_get_description
);
STATIC
mp_obj_t
mp_channel_bud_get_plugin_id
(
mp_obj_t
chan
,
mp_obj_t
bud
)
{
uint32_t
plugin_id
=
bl00mbox_channel_bud_get_plugin_id
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
bud
));
return
mp_obj_new_int
(
plugin_id
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_2
(
mp_channel_bud_get_plugin_id_obj
,
mp_channel_bud_get_plugin_id
);
STATIC
mp_obj_t
mp_channel_bud_get_init_var
(
mp_obj_t
chan
,
mp_obj_t
bud
)
{
uint32_t
init_var
=
bl00mbox_channel_bud_get_init_var
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
bud
));
return
mp_obj_new_int
(
init_var
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_2
(
mp_channel_bud_get_init_var_obj
,
mp_channel_bud_get_init_var
);
STATIC
mp_obj_t
mp_channel_bud_get_num_signals
(
mp_obj_t
chan
,
mp_obj_t
bud
)
{
uint16_t
ret
=
bl00mbox_channel_bud_get_num_signals
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
bud
));
return
mp_obj_new_int
(
ret
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_2
(
mp_channel_bud_get_num_signals_obj
,
mp_channel_bud_get_num_signals
);
// ========================
// SIGNAL OPERATIONS
// ========================
STATIC
mp_obj_t
mp_channel_bud_get_signal_name
(
mp_obj_t
chan
,
mp_obj_t
bud
,
mp_obj_t
signal
)
{
char
*
name
=
bl00mbox_channel_bud_get_signal_name
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
bud
),
mp_obj_get_int
(
signal
));
return
mp_obj_new_str
(
name
,
strlen
(
name
));
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_3
(
mp_channel_bud_get_signal_name_obj
,
mp_channel_bud_get_signal_name
);
STATIC
mp_obj_t
mp_channel_bud_get_signal_name_multiplex
(
mp_obj_t
chan
,
mp_obj_t
bud
,
mp_obj_t
signal
)
{
int8_t
ret
=
bl00mbox_channel_bud_get_signal_name_multiplex
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
bud
),
mp_obj_get_int
(
signal
));
return
mp_obj_new_int
(
ret
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_3
(
mp_channel_bud_get_signal_name_multiplex_obj
,
mp_channel_bud_get_signal_name_multiplex
);
STATIC
mp_obj_t
mp_channel_bud_get_signal_description
(
mp_obj_t
chan
,
mp_obj_t
bud
,
mp_obj_t
signal
)
{
char
*
description
=
bl00mbox_channel_bud_get_signal_description
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
bud
),
mp_obj_get_int
(
signal
));
return
mp_obj_new_str
(
description
,
strlen
(
description
));
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_3
(
mp_channel_bud_get_signal_description_obj
,
mp_channel_bud_get_signal_description
);
STATIC
mp_obj_t
mp_channel_bud_get_signal_unit
(
mp_obj_t
chan
,
mp_obj_t
bud
,
mp_obj_t
signal
)
{
char
*
unit
=
bl00mbox_channel_bud_get_signal_unit
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
bud
),
mp_obj_get_int
(
signal
));
return
mp_obj_new_str
(
unit
,
strlen
(
unit
));
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_3
(
mp_channel_bud_get_signal_unit_obj
,
mp_channel_bud_get_signal_unit
);
STATIC
mp_obj_t
mp_channel_bud_get_signal_hints
(
mp_obj_t
chan
,
mp_obj_t
bud
,
mp_obj_t
signal
)
{
uint32_t
val
=
bl00mbox_channel_bud_get_signal_hints
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
bud
),
mp_obj_get_int
(
signal
));
return
mp_obj_new_int
(
val
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_3
(
mp_channel_bud_get_signal_hints_obj
,
mp_channel_bud_get_signal_hints
);
STATIC
mp_obj_t
mp_channel_bud_set_signal_value
(
size_t
n_args
,
const
mp_obj_t
*
args
)
{
int32_t
value
=
mp_obj_get_int
(
args
[
3
]);
if
(
value
>
32767
)
value
=
32767
;
if
(
value
<
-
32767
)
value
=
-
32767
;
bool
success
=
bl00mbox_channel_bud_set_signal_value
(
mp_obj_get_int
(
args
[
0
]),
// chan
mp_obj_get_int
(
args
[
1
]),
// bud_index
mp_obj_get_int
(
args
[
2
]),
// bud_signal_index
value
);
return
mp_obj_new_bool
(
success
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN
(
mp_channel_bud_set_signal_value_obj
,
4
,
4
,
mp_channel_bud_set_signal_value
);
STATIC
mp_obj_t
mp_channel_bud_get_signal_value
(
mp_obj_t
chan
,
mp_obj_t
bud
,
mp_obj_t
signal
)
{
int16_t
val
=
bl00mbox_channel_bud_get_signal_value
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
bud
),
mp_obj_get_int
(
signal
));
return
mp_obj_new_int
(
val
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_3
(
mp_channel_bud_get_signal_value_obj
,
mp_channel_bud_get_signal_value
);
STATIC
mp_obj_t
mp_channel_subscriber_num
(
mp_obj_t
chan
,
mp_obj_t
bud
,
mp_obj_t
signal
)
{
return
mp_obj_new_int
(
bl00mbox_channel_subscriber_num
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
bud
),
mp_obj_get_int
(
signal
)));
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_3
(
mp_channel_subscriber_num_obj
,
mp_channel_subscriber_num
);
STATIC
mp_obj_t
mp_channel_get_bud_by_subscriber_list_pos
(
size_t
n_args
,
const
mp_obj_t
*
args
)
{
return
mp_obj_new_int
(
bl00mbox_channel_get_bud_by_subscriber_list_pos
(
mp_obj_get_int
(
args
[
0
]),
// chan
mp_obj_get_int
(
args
[
1
]),
// bud_index
mp_obj_get_int
(
args
[
2
]),
// bud_signal_index
mp_obj_get_int
(
args
[
3
]))
// pos
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN
(
mp_channel_get_bud_by_subscriber_list_pos_obj
,
4
,
4
,
mp_channel_get_bud_by_subscriber_list_pos
);
STATIC
mp_obj_t
mp_channel_get_signal_by_subscriber_list_pos
(
size_t
n_args
,
const
mp_obj_t
*
args
)
{
return
mp_obj_new_int
(
bl00mbox_channel_get_signal_by_subscriber_list_pos
(
mp_obj_get_int
(
args
[
0
]),
// chan
mp_obj_get_int
(
args
[
1
]),
// bud_index
mp_obj_get_int
(
args
[
2
]),
// bud_signal_index
mp_obj_get_int
(
args
[
3
]))
// pos
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN
(
mp_channel_get_signal_by_subscriber_list_pos_obj
,
4
,
4
,
mp_channel_get_signal_by_subscriber_list_pos
);
STATIC
mp_obj_t
mp_channel_get_source_bud
(
mp_obj_t
chan
,
mp_obj_t
bud
,
mp_obj_t
signal
)
{
uint64_t
val
=
bl00mbox_channel_get_source_bud
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
bud
),
mp_obj_get_int
(
signal
));
return
mp_obj_new_int
(
val
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_3
(
mp_channel_get_source_bud_obj
,
mp_channel_get_source_bud
);
STATIC
mp_obj_t
mp_channel_get_source_signal
(
mp_obj_t
chan
,
mp_obj_t
bud
,
mp_obj_t
signal
)
{
uint64_t
val
=
bl00mbox_channel_get_source_signal
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
bud
),
mp_obj_get_int
(
signal
));
return
mp_obj_new_int
(
val
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_3
(
mp_channel_get_source_signal_obj
,
mp_channel_get_source_signal
);
// ========================
// TABLE OPERATIONS
// ========================
STATIC
mp_obj_t
mp_channel_bud_set_table_value
(
size_t
n_args
,
const
mp_obj_t
*
args
)
{
bool
success
=
bl00mbox_channel_bud_set_table_value
(
mp_obj_get_int
(
args
[
0
]),
// chan
mp_obj_get_int
(
args
[
1
]),
// bud_index
mp_obj_get_int
(
args
[
2
]),
// table_index
mp_obj_get_int
(
args
[
3
]));
// value
return
mp_obj_new_bool
(
success
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN
(
mp_channel_bud_set_table_value_obj
,
4
,
4
,
mp_channel_bud_set_table_value
);
STATIC
mp_obj_t
mp_channel_bud_get_table_value
(
mp_obj_t
chan
,
mp_obj_t
bud
,
mp_obj_t
table_index
)
{
int16_t
val
=
bl00mbox_channel_bud_get_table_value
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
bud
),
mp_obj_get_int
(
table_index
));
return
mp_obj_new_int
(
val
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_3
(
mp_channel_bud_get_table_value_obj
,
mp_channel_bud_get_table_value
);
STATIC
mp_obj_t
mp_channel_bud_get_table_pointer
(
mp_obj_t
chan
,
mp_obj_t
bud
)
{
int16_t
*
val
=
bl00mbox_channel_bud_get_table_pointer
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
bud
));
return
mp_obj_new_int_from_uint
((
uint32_t
)
val
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_2
(
mp_channel_bud_get_table_pointer_obj
,
mp_channel_bud_get_table_pointer
);
STATIC
mp_obj_t
mp_channel_bud_get_table_len
(
mp_obj_t
chan
,
mp_obj_t
bud
)
{
uint32_t
val
=
bl00mbox_channel_bud_get_table_len
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
bud
));
return
mp_obj_new_int_from_uint
(
val
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_2
(
mp_channel_bud_get_table_len_obj
,
mp_channel_bud_get_table_len
);
// ========================
// CONNECTION OPERATIONS
// ========================
STATIC
mp_obj_t
mp_channel_disconnect_signal_rx
(
mp_obj_t
chan
,
mp_obj_t
bud
,
mp_obj_t
signal
)
{
bool
ret
=
bl00mbox_channel_disconnect_signal_rx
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
bud
),
mp_obj_get_int
(
signal
));
return
mp_obj_new_bool
(
ret
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_3
(
mp_channel_disconnect_signal_rx_obj
,
mp_channel_disconnect_signal_rx
);
STATIC
mp_obj_t
mp_channel_disconnect_signal_tx
(
mp_obj_t
chan
,
mp_obj_t
bud
,
mp_obj_t
signal
)
{
bool
ret
=
bl00mbox_channel_disconnect_signal_tx
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
bud
),
mp_obj_get_int
(
signal
));
return
mp_obj_new_bool
(
ret
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_3
(
mp_channel_disconnect_signal_tx_obj
,
mp_channel_disconnect_signal_tx
);
STATIC
mp_obj_t
mp_channel_connect_signal
(
size_t
n_args
,
const
mp_obj_t
*
args
)
{
bool
success
=
bl00mbox_channel_connect_signal
(
mp_obj_get_int
(
args
[
0
]),
// chan
mp_obj_get_int
(
args
[
1
]),
// bud_tx_index
mp_obj_get_int
(
args
[
2
]),
// bud_tx_signal_index
mp_obj_get_int
(
args
[
3
]),
// bud_tx_index
mp_obj_get_int
(
args
[
4
]));
// bud_tx_signal_index
return
mp_obj_new_bool
(
success
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN
(
mp_channel_connect_signal_obj
,
5
,
5
,
mp_channel_connect_signal
);
STATIC
mp_obj_t
mp_channel_connect_signal_to_output_mixer
(
mp_obj_t
chan
,
mp_obj_t
bud_index
,
mp_obj_t
bud_signal_index
)
{
bool
success
=
bl00mbox_channel_connect_signal_to_output_mixer
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
bud_index
),
mp_obj_get_int
(
bud_signal_index
));
return
mp_obj_new_bool
(
success
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_3
(
mp_channel_connect_signal_to_output_mixer_obj
,
mp_channel_connect_signal_to_output_mixer
);
STATIC
mp_obj_t
mp_channel_disconnect_signal_from_output_mixer
(
mp_obj_t
chan
,
mp_obj_t
bud
,
mp_obj_t
signal
)
{
bool
ret
=
bl00mbox_channel_disconnect_signal_from_output_mixer
(
mp_obj_get_int
(
chan
),
mp_obj_get_int
(
bud
),
mp_obj_get_int
(
signal
));
return
mp_obj_new_bool
(
ret
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_3
(
mp_channel_disconnect_signal_from_output_mixer_obj
,
mp_channel_disconnect_signal_from_output_mixer
);
STATIC
const
mp_map_elem_t
bl00mbox_globals_table
[]
=
{
{
MP_OBJ_NEW_QSTR
(
MP_QSTR___name__
),
MP_OBJ_NEW_QSTR
(
MP_QSTR_sys_bl00mbox
)
},
// PLUGIN OPERATIONS
{
MP_ROM_QSTR
(
MP_QSTR_plugin_registry_num_plugins
),
MP_ROM_PTR
(
&
mp_plugin_registry_num_plugins_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_plugin_index_get_id
),
MP_ROM_PTR
(
&
mp_plugin_index_get_id_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_plugin_index_get_name
),
MP_ROM_PTR
(
&
mp_plugin_index_get_name_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_plugin_index_get_description
),
MP_ROM_PTR
(
&
mp_plugin_index_get_description_obj
)
},
// CHANNEL OPERATIONS
{
MP_ROM_QSTR
(
MP_QSTR_channel_get_free
),
MP_ROM_PTR
(
&
mp_channel_get_free_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_set_free
),
MP_ROM_PTR
(
&
mp_channel_set_free_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_get_free_index
),
MP_ROM_PTR
(
&
mp_channel_get_free_index_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_get_foreground
),
MP_ROM_PTR
(
&
mp_channel_get_foreground_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_set_foreground
),
MP_ROM_PTR
(
&
mp_channel_set_foreground_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_get_background_mute_override
),
MP_ROM_PTR
(
&
mp_channel_get_background_mute_override_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_set_background_mute_override
),
MP_ROM_PTR
(
&
mp_channel_set_background_mute_override_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_enable
),
MP_ROM_PTR
(
&
mp_channel_enable_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_disable
),
MP_ROM_PTR
(
&
mp_channel_disable_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_clear
),
MP_ROM_PTR
(
&
mp_channel_clear_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_set_volume
),
MP_ROM_PTR
(
&
mp_channel_set_volume_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_get_volume
),
MP_ROM_PTR
(
&
mp_channel_get_volume_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_set_name
),
MP_ROM_PTR
(
&
mp_channel_set_name_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_get_name
),
MP_ROM_PTR
(
&
mp_channel_get_name_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_buds_num
),
MP_ROM_PTR
(
&
mp_channel_buds_num_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_get_bud_by_list_pos
),
MP_ROM_PTR
(
&
mp_channel_get_bud_by_list_pos_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_conns_num
),
MP_ROM_PTR
(
&
mp_channel_conns_num_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_mixer_num
),
MP_ROM_PTR
(
&
mp_channel_mixer_num_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_get_bud_by_mixer_list_pos
),
MP_ROM_PTR
(
&
mp_channel_get_bud_by_mixer_list_pos_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_get_signal_by_mixer_list_pos
),
MP_ROM_PTR
(
&
mp_channel_get_signal_by_mixer_list_pos_obj
)
},
// BUD OPERATIONS
{
MP_ROM_QSTR
(
MP_QSTR_channel_new_bud
),
MP_ROM_PTR
(
&
mp_channel_new_bud_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_delete_bud
),
MP_ROM_PTR
(
&
mp_channel_delete_bud_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_bud_exists
),
MP_ROM_PTR
(
&
mp_channel_bud_exists_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_bud_get_name
),
MP_ROM_PTR
(
&
mp_channel_bud_get_name_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_bud_get_description
),
MP_ROM_PTR
(
&
mp_channel_bud_get_description_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_bud_get_plugin_id
),
MP_ROM_PTR
(
&
mp_channel_bud_get_plugin_id_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_bud_get_init_var
),
MP_ROM_PTR
(
&
mp_channel_bud_get_init_var_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_bud_get_num_signals
),
MP_ROM_PTR
(
&
mp_channel_bud_get_num_signals_obj
)
},
// SIGNAL OPERATIONS
{
MP_ROM_QSTR
(
MP_QSTR_channel_bud_get_signal_name
),
MP_ROM_PTR
(
&
mp_channel_bud_get_signal_name_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_bud_get_signal_name_multiplex
),
MP_ROM_PTR
(
&
mp_channel_bud_get_signal_name_multiplex_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_bud_get_signal_description
),
MP_ROM_PTR
(
&
mp_channel_bud_get_signal_description_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_bud_get_signal_unit
),
MP_ROM_PTR
(
&
mp_channel_bud_get_signal_unit_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_bud_set_signal_value
),
MP_ROM_PTR
(
&
mp_channel_bud_set_signal_value_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_bud_get_signal_value
),
MP_ROM_PTR
(
&
mp_channel_bud_get_signal_value_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_bud_get_signal_hints
),
MP_ROM_PTR
(
&
mp_channel_bud_get_signal_hints_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_subscriber_num
),
MP_ROM_PTR
(
&
mp_channel_subscriber_num_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_get_bud_by_subscriber_list_pos
),
MP_ROM_PTR
(
&
mp_channel_get_bud_by_subscriber_list_pos_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_get_signal_by_subscriber_list_pos
),
MP_ROM_PTR
(
&
mp_channel_get_signal_by_subscriber_list_pos_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_get_source_bud
),
MP_ROM_PTR
(
&
mp_channel_get_source_bud_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_get_source_signal
),
MP_ROM_PTR
(
&
mp_channel_get_source_signal_obj
)
},
// TABLE OPERATIONS
{
MP_ROM_QSTR
(
MP_QSTR_channel_bud_set_table_value
),
MP_ROM_PTR
(
&
mp_channel_bud_set_table_value_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_bud_get_table_value
),
MP_ROM_PTR
(
&
mp_channel_bud_get_table_value_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_bud_get_table_pointer
),
MP_ROM_PTR
(
&
mp_channel_bud_get_table_pointer_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_bud_get_table_len
),
MP_ROM_PTR
(
&
mp_channel_bud_get_table_len_obj
)
},
// CONNECTION OPERATIONS
{
MP_ROM_QSTR
(
MP_QSTR_channel_connect_signal
),
MP_ROM_PTR
(
&
mp_channel_connect_signal_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_disconnect_signal_rx
),
MP_ROM_PTR
(
&
mp_channel_disconnect_signal_rx_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_disconnect_signal_tx
),
MP_ROM_PTR
(
&
mp_channel_disconnect_signal_tx_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_connect_signal_to_output_mixer
),
MP_ROM_PTR
(
&
mp_channel_connect_signal_to_output_mixer_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_channel_disconnect_signal_from_output_mixer
),
MP_ROM_PTR
(
&
mp_channel_disconnect_signal_from_output_mixer_obj
)
},
// CONSTANTS
{
MP_ROM_QSTR
(
MP_QSTR_NUM_CHANNELS
),
MP_ROM_INT
(
BL00MBOX_CHANNELS
)
},
{
MP_ROM_QSTR
(
MP_QSTR_RADSPA_SIGNAL_HINT_SCT
),
MP_ROM_INT
(
RADSPA_SIGNAL_HINT_SCT
)
},
{
MP_ROM_QSTR
(
MP_QSTR_RADSPA_SIGNAL_HINT_GAIN
),
MP_ROM_INT
(
RADSPA_SIGNAL_HINT_GAIN
)
},
{
MP_ROM_QSTR
(
MP_QSTR_RADSPA_SIGNAL_HINT_TRIGGER
),
MP_ROM_INT
(
RADSPA_SIGNAL_HINT_TRIGGER
)
},
{
MP_ROM_QSTR
(
MP_QSTR_BL00MBOX_CHANNELS
),
MP_ROM_INT
(
BL00MBOX_CHANNELS
)
},
};
STATIC
MP_DEFINE_CONST_DICT
(
mp_module_bl00mbox_globals
,
bl00mbox_globals_table
);
const
mp_obj_module_t
bl00mbox_user_cmodule
=
{
.
base
=
{
&
mp_type_module
},
.
globals
=
(
mp_obj_dict_t
*
)
&
mp_module_bl00mbox_globals
,
};
MP_REGISTER_MODULE
(
MP_QSTR_sys_bl00mbox
,
bl00mbox_user_cmodule
);
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment