37b67d44bb6f36b1e0fd3533c2bf9f91902c1164
[blender.git] / source / blender / src / cre / license_key.c
1 /**
2  * $Id$
3  *
4  * ***** BEGIN GPL LICENSE BLOCK *****
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2
9  * of the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
19  *
20  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
21  * All rights reserved.
22  *
23  * The Original Code is: all of this file.
24  *
25  * Contributor(s): none yet.
26  *
27  * ***** END GPL LICENSE BLOCK *****
28  */
29
30 #include "license_key.h"
31 #include "keyed_functions.h"
32 #include "BKE_utildefines.h"
33 #include "BIF_screen.h"  // splash
34 #include "BIF_toolbox.h"
35 #include <stdio.h>
36 #include <string.h>
37 #include "BLO_readfile.h"
38 //#include "BLO_keyStore.h"
39
40 #ifdef HAVE_CONFIG_H
41 #include <config.h>
42 #endif
43
44 int LICENSE_KEY_VALID = TRUE;
45 int I_AM_PUBLISHER = TRUE;
46
47 // Python stuff
48
49 #include "Python.h"
50 #include "marshal.h" 
51 #include "compile.h" /* to give us PyCodeObject */
52 #include "eval.h"               /* prototype for PyEval_EvalCode */
53
54 #include "BPY_extern.h"
55 #include "IMB_imbuf.h"
56
57 Fptr g_functab[PYKEY_TABLEN];
58 Fptr g_ptrtab[PYKEY_TABLEN];
59
60 static int g_seed[3] = PYKEY_SEED;
61 static PyObject *g_module_self;
62 static PyObject *g_main;
63
64
65 // end Python stuff
66
67 // **************** PYTHON STUFF **************************
68 /* ----------------------------------------------------- */
69 /* this is the dummy functions to demonstrate */
70
71 int sticky_shoes(void *vp)
72 {
73 #ifndef NDEBUG
74         printf("feature not enabled: Buy our Key NOW!\n");
75 #endif
76         return 0;
77 }
78
79 /*
80 int key_func1(void *vp) {
81         printf("function 1 called\n");
82 }
83
84 */
85 int key_return_true(void *vp) {
86 #ifndef NDEBUG
87         printf("function 2 called (return true)\n");
88 #endif
89         return 1;
90 }
91
92 /* ----------------------------------------------------- */
93
94 /* Declarations for objects of type Fplist */
95
96
97 #ifndef NDEBUG
98 void feature1(void)
99 {
100         Fptr f;
101
102         printf("feature 2 called\n");
103         f = g_ptrtab[KEY_FUNC2];
104         if (f) f(0);
105 }
106
107 void feature2(void)
108 {
109         Fptr f;
110
111         printf("feature 3 called\n");
112         f = g_ptrtab[KEY_FUNC3];
113         if (f) f(0);
114 }
115
116 #endif
117
118
119 /* Initialization function for the module (*must* be called initprot) */
120
121 static void init_ftable(void)  // initializes functiontable
122 {
123         int i;
124
125         g_functab[0] = &key_func1;
126
127         for (i = 1; i < PYKEY_TABLEN; i++)
128         {
129                 g_functab[i] = &sticky_shoes;
130         }
131
132         // for debugging perposes
133         /*
134         for (i = 0; i < PYKEY_TABLEN; i++)
135         {
136                 g_functab[i] = (Fptr *) (i + 100);
137         }
138         */
139 }
140
141
142 static void init_ptable(void)  // initializes functiontable
143 {
144         int i;
145
146         for (i = 0; i < PYKEY_TABLEN; i++)
147         {
148                 g_ptrtab[i] = &sticky_shoes;
149         }
150 }
151
152
153 #ifdef NDEBUG
154 static void print_ptable(void)
155 {       
156         int i;
157
158         for (i = 0; i < PYKEY_TABLEN; i++)
159         {
160                 printf ("index[%02d] = %08x\n", i, g_ptrtab[i]);
161         }
162 }
163 #endif
164
165 static void insertname(PyObject *m,PyObject *p, char *name)
166 {
167 }
168
169 /* initialisation */
170 static void initprot()
171 {
172         init_ftable(); // malloc
173         init_ptable(); // malloc
174 }
175
176 // ******************************* KEY STUFF *********************
177
178 void create_key_name(char * keyname)
179 {
180 }
181
182 void checkhome()
183 {
184         initprot();                   // initialize module and function tables
185         
186 }
187
188 void SHOW_LICENSE_KEY(void)
189 {
190 }
191
192 void loadKeyboard(char * name)
193 {
194 }