Skip to content
Snippets Groups Projects
Commit 390c6814 authored by Jonathan Wilkes's avatar Jonathan Wilkes
Browse files

add small javascript style guide, clean up c style guide

parent 67003cad
No related branches found
No related tags found
No related merge requests found
...@@ -345,19 +345,25 @@ below) and uncast conversions from longer to shorter numerical formats. ...@@ -345,19 +345,25 @@ below) and uncast conversions from longer to shorter numerical formats.
The code doesn't respect "const" yet. The code doesn't respect "const" yet.
1.1. Prefixes in structure elements. The names of structure elements always 1.1. Prefixes in structure elements. The names of structure elements always
have a K&R-style prefix, as in ((t_atom)x)->a_type, where the "a_" prefix have a K&R-style prefix, as in `((t_atom)x)->a_type`, where the `a_` prefix
indicates "atom." This is intended to enhance readability (although the indicates "atom." This is intended to enhance readability (although the
convention arose from a limitation of early C compilers.) Common prefixes are convention arose from a limitation of early C compilers.) Common prefixes are:
"w_" (word), "a_" (atom), "s_" (symbol), "ob_" (object), "te_" (text object), * `w_` (word)
"g_" (graphical object), and "gl_" (glist, a list of graphical objects). Also, * `a_` (atom)
global symbols sometimes get prefixes, as in "s_float" (the symbol whose string * `s_` (symbol)
is "float). Typedefs are prefixed by "t_". Most _private_ structures, i.e., * `ob_` (object)
structures whose definitions appear in a ".c" file, are prefixed by "x_". * `te_` (text object)
* `g_` (graphical object)
* `gl_` (glist, a list of graphical objects).
Also, global symbols sometimes get prefixes, as in `s_float` (the symbol whose
string is "float"). Typedefs are prefixed by `t_`. Most _private_ structures,
i.e., structures whose definitions appear in a ".c" file, are prefixed by `x_`.
1.2. Function arguments. Many functions take as their first 1.2. Function arguments. Many functions take as their first
argument a pointer named "x", which is a pointer to a structure suggested argument a pointer named `x`, which is a pointer to a structure suggested
by the function prefix; e.g., canvas_dirty(x, n) where "x" points to a canvas by the function prefix; e.g., `canvas_dirty(x, n)` where `x` points to a canvas
(t_canvas *x). `(t_canvas *x)`.
1.3. Function Prototypes. Functions which are used in at least two different 1.3. Function Prototypes. Functions which are used in at least two different
files (besides where they originate) are prototyped in the appropriate include files (besides where they originate) are prototyped in the appropriate include
...@@ -402,6 +408,7 @@ char * or void * instead. ...@@ -402,6 +408,7 @@ char * or void * instead.
3.2. Pd passes true single-precision floating-point arguments to methods; 3.2. Pd passes true single-precision floating-point arguments to methods;
Max uses double. Max uses double.
Typedefs are provided: Typedefs are provided:
t_floatarg, t_intarg for arguments passed by the message system t_floatarg, t_intarg for arguments passed by the message system
t_float, t_int for the "word" union (in atoms, for example.) t_float, t_int for the "word" union (in atoms, for example.)
...@@ -423,6 +430,7 @@ to. The exceptions are: ...@@ -423,6 +430,7 @@ to. The exceptions are:
post, error, bug (s_print.c) post, error, bug (s_print.c)
which are all frequently called and which don't fit into simple categories. which are all frequently called and which don't fit into simple categories.
Important packages are: Important packages are:
(pd-gui:) pdgui -- everything (pd-gui:) pdgui -- everything
(pd:) pd -- functions common to all "pd" objects (pd:) pd -- functions common to all "pd" objects
obj -- fuctions common to all "patchable" objects ala Max obj -- fuctions common to all "patchable" objects ala Max
...@@ -434,16 +442,25 @@ Important packages are: ...@@ -434,16 +442,25 @@ Important packages are:
#### 5. Source file prefixes #### 5. Source file prefixes
5.0. Source file prefixes. 5.0. Source file prefixes.
PD: PD:
s system interface
m message system s system interface
g graphics stuff m message system
d DSP objects g graphics stuff
x control objects d DSP objects
z other x control objects
z other
PD-GUI: PD-GUI:
t TK front end
gui GUI front end
#### 6. Javascript style
1. Brackets on the same line as declaration or expression: `if (a) {`
2. Single line comments only: `//`
3. Use double-quotes for strings
4. Use underscores to separate words of function names and variables
### GUI Messaging Specification ### GUI Messaging Specification
#### Public GUI interface #### Public GUI interface
...@@ -462,13 +479,13 @@ The public interface consists of the following: ...@@ -462,13 +479,13 @@ The public interface consists of the following:
gui_vmess(const char *msg, const char *format, ...); gui_vmess(const char *msg, const char *format, ...);
``` ```
where const char *format consists of zero or more of the following: where `const char *format` consists of zero or more of the following:
* f - floating point value (t_float) * f - floating point value (`t_float`)
* i - integer (int) * i - integer (`int`)
* s - c string (char*) * s - c string (`char* )
* x - hexadecimal integer value, with a precision of at least six digits. * x - hexadecimal integer value, with a precision of at least six digits.
(hex value is preceded by an 'x', like "x123456") (hex value is preceded by an 'x', like `x123456`)
For some of Pd's internals like array visualization, the message length may For some of Pd's internals like array visualization, the message length may
vary. For these _special_ cases, the following functions allow the developer vary. For these _special_ cases, the following functions allow the developer
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment