diff options
Diffstat (limited to 'apps/plugins/lib/pluginlib_actions.c')
-rw-r--r-- | apps/plugins/lib/pluginlib_actions.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/apps/plugins/lib/pluginlib_actions.c b/apps/plugins/lib/pluginlib_actions.c new file mode 100644 index 0000000000..312eb61ea6 --- /dev/null +++ b/apps/plugins/lib/pluginlib_actions.c | |||
@@ -0,0 +1,46 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2006 Jonathan Gordon | ||
11 | * | ||
12 | * | ||
13 | * All files in this archive are subject to the GNU General Public License. | ||
14 | * See the file COPYING in the source tree root for full license agreement. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | #include "plugin.h" | ||
22 | #include "action.h" | ||
23 | #include "pluginlib_actions.h" | ||
24 | |||
25 | static struct button_mapping **plugin_context_order; | ||
26 | static int plugin_context_count = 0; | ||
27 | static int last_context = 0; /* index into plugin_context_order | ||
28 | of the last context returned */ | ||
29 | |||
30 | const struct button_mapping* get_context_map(int context) | ||
31 | { | ||
32 | (void)context; | ||
33 | if (last_context<plugin_context_count) | ||
34 | return plugin_context_order[last_context++]; | ||
35 | else return NULL; | ||
36 | } | ||
37 | |||
38 | int pluginlib_getaction(struct plugin_api *api,int timeout, | ||
39 | const struct button_mapping *plugin_contexts[], | ||
40 | int count) | ||
41 | { | ||
42 | plugin_context_order = (struct button_mapping **)plugin_contexts; | ||
43 | plugin_context_count = count; | ||
44 | last_context = 0; | ||
45 | return api->get_custom_action(CONTEXT_CUSTOM,timeout,get_context_map); | ||
46 | } | ||