da07a34a41e94bcb129e64107ca0078f3ae9389c
[platform/upstream/gst-plugins-good.git] / gst / goom / config_param.c
1 /*---------------------------------------------------------------------------*/
2 /*
3 ** config_param.c
4 ** Goom Project
5 **
6 ** Created by Jean-Christophe Hoelt on Sat Jul 19 2003
7 ** Copyright (c) 2003 iOS. All rights reserved.
8 */
9 /*---------------------------------------------------------------------------*/
10
11 #include "goom_config_param.h"
12 #include <string.h>
13
14 /* TODO: Ajouter goom_ devant ces fonctions */
15
16 static void
17 empty_fct (PluginParam * dummy)
18 {
19 }
20
21 PluginParam
22 goom_secure_param ()
23 {
24   PluginParam p;
25
26   p.changed = empty_fct;
27   p.change_listener = empty_fct;
28   p.user_data = 0;
29   p.name = p.desc = 0;
30   p.rw = 1;
31   return p;
32 }
33
34 PluginParam
35 goom_secure_f_param (char *name)
36 {
37   PluginParam p = secure_param ();
38
39   p.name = name;
40   p.type = PARAM_FLOATVAL;
41   FVAL (p) = 0.5f;
42   FMIN (p) = 0.0f;
43   FMAX (p) = 1.0f;
44   FSTEP (p) = 0.01f;
45   return p;
46 }
47
48 PluginParam
49 goom_secure_f_feedback (char *name)
50 {
51   PluginParam p = secure_f_param (name);
52
53   p.rw = 0;
54   return p;
55 }
56
57 PluginParam
58 goom_secure_s_param (char *name)
59 {
60   PluginParam p = secure_param ();
61
62   p.name = name;
63   p.type = PARAM_STRVAL;
64   SVAL (p) = 0;
65   return p;
66 }
67
68 PluginParam
69 goom_secure_b_param (char *name, int value)
70 {
71   PluginParam p = secure_param ();
72
73   p.name = name;
74   p.type = PARAM_BOOLVAL;
75   BVAL (p) = value;
76   return p;
77 }
78
79 PluginParam
80 goom_secure_i_param (char *name)
81 {
82   PluginParam p = secure_param ();
83
84   p.name = name;
85   p.type = PARAM_INTVAL;
86   IVAL (p) = 50;
87   IMIN (p) = 0;
88   IMAX (p) = 100;
89   ISTEP (p) = 1;
90   return p;
91 }
92
93 PluginParam
94 goom_secure_i_feedback (char *name)
95 {
96   PluginParam p = secure_i_param (name);
97
98   p.rw = 0;
99   return p;
100 }
101
102 PluginParameters
103 goom_plugin_parameters (const char *name, int nb)
104 {
105   PluginParameters p;
106
107   p.name = (char *) name;
108   p.desc = "";
109   p.nbParams = nb;
110   p.params = (PluginParam **) malloc (nb * sizeof (PluginParam *));
111   return p;
112 }
113
114 void
115 goom_plugin_parameters_free (PluginParameters * p)
116 {
117   free (p->params);
118 }
119
120 /*---------------------------------------------------------------------------*/
121
122 void
123 goom_set_str_param_value (PluginParam * p, const char *str)
124 {
125   int len = strlen (str);
126
127   if (SVAL (*p))
128     SVAL (*p) = (char *) realloc (SVAL (*p), len + 1);
129   else
130     SVAL (*p) = (char *) malloc (len + 1);
131   memcpy (SVAL (*p), str, len + 1);
132 }
133
134 void
135 goom_set_list_param_value (PluginParam * p, const char *str)
136 {
137   int len = strlen (str);
138
139 #ifdef VERBOSE
140   printf ("%s: %d\n", str, len);
141 #endif
142   if (LVAL (*p))
143     LVAL (*p) = (char *) realloc (LVAL (*p), len + 1);
144   else
145     LVAL (*p) = (char *) malloc (len + 1);
146   memcpy (LVAL (*p), str, len + 1);
147 }