-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathslangthread.cpp
More file actions
69 lines (54 loc) · 1.69 KB
/
Copy pathslangthread.cpp
File metadata and controls
69 lines (54 loc) · 1.69 KB
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
///////////////////////////////////////////////////////////////////////
//HardwareExpert. Thread container for S-Lang engine.
//Copyright (C) 2011 Stanislav (f0ma) Ivanov
//
//This program is free software: you can redistribute it and/or modify
//it under the terms of the GNU General Public License as published by
//the Free Software Foundation, either version 3 of the License, or
//(at your option) any later version.
//
//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
//GNU General Public License for more details.
//
//You should have received a copy of the GNU General Public License
//along with this program. If not, see <http://www.gnu.org/licenses/>.
///////////////////////////////////////////////////////////////////////
#include "slangthread.h"
#include <cstdlib>
SLangThread::SLangThread ( QObject * parent ) : QThread(parent)
{
code = NULL;
foo = NULL;
}
void SLangThread::setScript(QString s)
{
if(code!=NULL)delete code;
if(foo!=NULL)delete foo;
code=new char[s.toUtf8().size()+1];
QByteArray a = s.toUtf8();
for(int i=0;i<s.toUtf8().size();i++)code[i]=a[i];
code[s.toUtf8().size()]='\0';
foo=NULL;
}
void SLangThread::setFunction(QString s)
{
if(code!=NULL)delete code;
if(foo!=NULL)delete foo;
foo=new char[s.toUtf8().size()+1];
for(int i=0;i<s.toUtf8().size();i++)foo[i]=s.toUtf8()[i];
foo[s.toUtf8().size()]='\0';
code=NULL;
}
void SLangThread::run()
{
if(foo!=NULL)
{
SLang_execute_function(foo);
}
if(code!=NULL)
{
SLang_load_string(code);
}
}