File: node4.html

package info (click to toggle)
mma 21.09-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 51,828 kB
  • sloc: python: 16,751; sh: 26; makefile: 18; perl: 12
file content (122 lines) | stat: -rw-r--r-- 3,352 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//en">

<!--Converted with LaTeX2HTML 2021 (Released January 1, 2021) -->
<HTML lang="en">
<HEAD>
<TITLE>Returning Values</TITLE>
<META NAME="description" CONTENT="Returning Values">
<META NAME="keywords" CONTENT="mma-plugins">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">
<META NAME="viewport" CONTENT="width=device-width, initial-scale=1.0">
<META NAME="Generator" CONTENT="LaTeX2HTML v2021">

<LINK REL="STYLESHEET" HREF="mma-plugins.css">

<LINK REL="next" HREF="node5.html">
<LINK REL="previous" HREF="node3.html">
<LINK REL="next" HREF="node5.html">
</HEAD>

<BODY  bgcolor="#ffffff">

<DIV CLASS="navigation"><!--Navigation Panel-->
<A
 HREF="node5.html">
<IMG WIDTH="37" HEIGHT="24" ALT="next" SRC="next.png"></A> 
<A
 HREF="mma-plugins.html">
<IMG WIDTH="26" HEIGHT="24" ALT="up" SRC="up.png"></A> 
<A
 HREF="node3.html">
<IMG WIDTH="63" HEIGHT="24" ALT="previous" SRC="prev.png"></A>   
<BR>
<B> Next:</B> <A
 HREF="node5.html">Standard Interface</A>
<B> Up:</B> <A
 HREF="mma-plugins.html">Plugins</A>
<B> Previous:</B> <A
 HREF="node3.html">Preset Values</A>
<BR>
<BR></DIV>
<!--End of Navigation Panel-->

<H1><A ID="SECTION00400000000000000000">
Returning Values</A>
</H1>

<P>
In order to be of any use, a plugin will need to make modifications to
your song or library file. You can, if you want, make these inside
your function. However, we don't suggest you do. The API can change in
the future. Plus, many settings rely on other basic 
<FONT Face="Serif"  Color="Navy"><I>MMA</I></FONT>  settings
which are easy to miss. Much more robust is the method of creating
string(s) with native (or even other plugin) commands and returning
the to the main script.

<P>
This is easy to do. 

<P>
Just create a list of commands and push them onto the programs input
stack. Examine the <SPAN  CLASS="texttt"><SPAN  CLASS="textbf">hello/plugin.py</SPAN></SPAN> module for actual code, but
as a summary you'll need to:

<P>

<OL>
<LI>Create lines for each line of code. In our example we use the
  array &ldquo;ret&rdquo; and simply append each line to the array.

<P>
</LI>
<LI>Process each of the lines into an acceptable format. This is
  easy, it's just a matter of converting the string to a list of
  words. In our example we do:

<P>
<code> ret = [l.split() for l in ret] </code>

<P>
</LI>
<LI>Finally, return the value to the input queue. 

<P>
<code> gbl.inpath.push(ret, [gbl.lineno] * len(ret)) </code>

<P>
here we set the line number of each returned line to be the same as
the current line being processed. Note: we're assuming that your
plugin has imported &ldquo;gbl&rdquo; as detailed above.

<P>
</LI>
</OL>

<P>

<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
<A
 HREF="node5.html">
<IMG WIDTH="37" HEIGHT="24" ALT="next" SRC="next.png"></A> 
<A
 HREF="mma-plugins.html">
<IMG WIDTH="26" HEIGHT="24" ALT="up" SRC="up.png"></A> 
<A
 HREF="node3.html">
<IMG WIDTH="63" HEIGHT="24" ALT="previous" SRC="prev.png"></A>   
<BR>
<B> Next:</B> <A
 HREF="node5.html">Standard Interface</A>
<B> Up:</B> <A
 HREF="mma-plugins.html">Plugins</A>
<B> Previous:</B> <A
 HREF="node3.html">Preset Values</A></DIV>
<!--End of Navigation Panel-->

</BODY>
</HTML>