File: node4.html

package info (click to toggle)
mma 16.06-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 45,200 kB
  • ctags: 3,741
  • sloc: python: 14,894; sh: 26; makefile: 13; perl: 12
file content (130 lines) | stat: -rw-r--r-- 3,961 bytes parent folder | download | duplicates (2)
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
123
124
125
126
127
128
129
130
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<!--Converted with LaTeX2HTML 2008 (1.71)
original version by:  Nikos Drakos, CBLU, University of Leeds
* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<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=utf-8">
<META NAME="Generator" CONTENT="LaTeX2HTML v2008">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">

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

<LINK REL="next" HREF="node5.html">
<LINK REL="previous" HREF="node3.html">
<LINK REL="up" HREF="mma-plugins.html">
<LINK REL="next" HREF="node5.html">
</HEAD>

<BODY  bgcolor="#ffffff">

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

<H1><A NAME="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 <TT><SPAN  CLASS="textbf">hello/plugin.py</SPAN></TT> 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 ``ret'' 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 ``gbl'' as detailed above.

<P>
</LI>
</OL>

<P>

<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
<A NAME="tex2html59"
  HREF="node5.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
<A NAME="tex2html57"
  HREF="mma-plugins.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
<A NAME="tex2html51"
  HREF="node3.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>   
<BR>
<B> Next:</B> <A NAME="tex2html60"
  HREF="node5.html">Standard Interface</A>
<B> Up:</B> <A NAME="tex2html58"
  HREF="mma-plugins.html">Plugins</A>
<B> Previous:</B> <A NAME="tex2html52"
  HREF="node3.html">Preset Values</A></DIV>
<!--End of Navigation Panel-->
<ADDRESS>
Bob van der Poel
2016-06-11
</ADDRESS>
</BODY>
</HTML>