salve a tutti ...
plugin x decoder satellitare con sistema linu
da poco che mi sono avvicinato al c++
non me lo compila e non so quale sia il problema
Source File
codice:
#include <plugin.h>
#include <stdio.h>
#include <lib/gui/ewindow.h>
#include <lib/gui/ebutton.h>
#include <lib/gui/eskin.h>
#include <lib/gui/elabel.h>
#include <lib/gui/eprogress.h>
#include <lib/gdi/font.h>
#include <lib/gui/guiactions.h>
#include <lib/system/info.h>
#include <lib/gui/emessage.h>
#define NUM_SCRIPTS 10
class eScriptWindow: public eWindow
{
eButton *bt_scripts[10];
eLabel *label;
void runScript(int i);
void initButtons();
public:
eScriptWindow();
};
class eShowFile: public eWindow
{
eLabel *label;
eWidget *visible;
eProgress *scrollbar;
int pageHeight;
int total;
int eventHandler(const eWidgetEvent &event);
void updateScrollbar();
public:
eShowFile();
};
extern "C" int plugin_exec( PluginParam *par )
{
eScriptWindow dlg;
dlg.show();
int result=dlg.exec();
dlg.hide();
return result;
}
eScriptWindow::eScriptWindow(): eWindow(1)
{
cmove(ePoint(100, 100));
cresize(eSize(520, 376));
setText((_("Plugin")));
initButtons();
}
void eScriptWindow::initButtons()
{
bool empty=true;
int j = 1;
eString filename;
char text[80];
char ch;
FILE * tf;
int count;
for(int i=1; i<NUM_SCRIPTS; i++)
{
if (eSystemInfo::getInstance()->getHwType() == eSystemInfo::DM7020)
filename.sprintf("/usr/bin/script%.02d.sh", i);
else
filename.sprintf("/var/bin/script%.02d.sh", i);
if (access(filename.c_str(), 0) == 0)
{
bt_scripts[j-1]=new eButton(this);
bt_scripts[j-1]->move(ePoint(10, 10+((j-1)*32)));
bt_scripts[j-1]->resize(eSize(clientrect.width()-20, 30));
bt_scripts[j-1]->setShortcut(eString().sprintf("%d",i));
bt_scripts[j-1]->setShortcutPixmap(eString().sprintf("%d",j));
bt_scripts[j-1]->loadDeco();
tf=fopen(filename.c_str(),"r");
if (tf==NULL){
bt_scripts[j-1]->setText(eString().sprintf("Script #%d (%s)", j, filename.c_str()));
}
else{
count=0;
fscanf(tf,"%c",&ch);
text[0]=0;
while ((ch!=10)&&(ch!=13)&&(count<50)){
fscanf(tf,"%c",&ch);
if ((ch!=10)&&(ch!=13)) text[count++]=ch;
}
bt_scripts[j-1]->setText(eString().sprintf("%s", text));
fclose(tf);
}
CONNECT_1_0(bt_scripts[j-1]->selected, eScriptWindow::runScript, i);
if (empty)
empty = false;
++j;
}
}
if (empty)
{
label = new eLabel(this);
label->setFlags(RS_WRAP);
label->setText((_("No Found!\n\nYou can place script01.sh - script09.sh in /var/bin (/usr/bin Dreambox 7020)")));
label->move(ePoint(10, 10));
label->resize(eSize(clientrect.width()-20, 100));
label->loadDeco();
}
else
setFocus(bt_scripts[0]);
}
void eScriptWindow::runScript(int i)
{
if (eSystemInfo::getInstance()->getHwType() == eSystemInfo::DM7020)
system(eString().sprintf("/usr/bin/script%.02d.sh > /var/tmp/script.out 2>&1", i).c_str());
else
system(eString().sprintf("/var/bin/script%.02d.sh > /var/tmp/script.out 2>&1", i).c_str());
hide();
eShowFile execute;
execute.show();
execute.exec();
execute.hide();
show();
setFocus(bt_scripts[0]);
}
eShowFile::eShowFile():
eWindow(1)
{
cmove(ePoint(70, 85));
cresize(eSize(595, 450));
setText((_("Script Output")));
scrollbar = new eProgress(this);
scrollbar->setName("scrollbar");
scrollbar->setStart(0);
scrollbar->setPerc(100);
scrollbar->move(ePoint(width() - 30, 5));
scrollbar->resize(eSize(20, height() - 100));
scrollbar->setProperty("direction", "1");
visible = new eWidget(this);
visible->setName("visible");
visible->move(ePoint(10, 5));
visible->resize(eSize(width() - 40, height() - 100));
eString strview;
char buf[256];
FILE *f = fopen("/var/tmp/script.out", "rt");
if (f)
{
int len = 0;
while (fgets(buf, 256, f))
{
len += strlen(buf);
if (len <= 65536)
strview += eString().sprintf("%s", buf);
}
fclose(f);
}
::unlink("/var/tmp/script.out");
label = new eLabel(visible);
label->setFlags(RS_WRAP);
label->setFont(eSkin::getActive()->queryFont("eStatusBar"));
float lineheight = fontRenderClass::getInstance()->getLineHeight(label->getFont());
int lines = (int) (visible->getSize().height() / lineheight);
pageHeight = (int) (lines * lineheight);
visible->resize(eSize(visible->getSize().width(), pageHeight + (int) (lineheight / 6)));
label->resize(eSize(visible->getSize().width(), pageHeight * 16));
label->hide();
label->move(ePoint(0, 0));
label->setText(strview);
updateScrollbar();
label->show();
}
int eShowFile::eventHandler(const eWidgetEvent & event)
{
switch (event.type)
{
case eWidgetEvent::evtAction:
if (total && event.action == &i_cursorActions->up)
{
ePoint curPos = label->getPosition();
if (curPos.y() < 0)
{
label->move(ePoint(curPos.x(), curPos.y() + pageHeight));
updateScrollbar();
}
}
else if (total && event.action == &i_cursorActions->down)
{
ePoint curPos = label->getPosition();
if ((total - pageHeight) >= abs(curPos.y() - pageHeight))
{
label->move(ePoint(curPos.x(), curPos.y() - pageHeight));
updateScrollbar();
}
}
else if (event.action == &i_cursorActions->cancel)
close(0);
else
break;
return 1;
default:
break;
}
return eWindow::eventHandler(event);
}
void eShowFile::updateScrollbar()
{
total = pageHeight;
int pages = 1;
while (total < label->getExtend().height())
{
total += pageHeight;
pages++;
}
int start = -label->getPosition().y() * 100 / total;
int vis = pageHeight * 100 / total;
scrollbar->setParams(start, vis);
scrollbar->show();
if (pages == 1)
total = 0;
}
perchè in fase di compilazione mi da questi errori ?
codice:
/home/xxx/7000/root/cdk/lib/gcc/powerpc-tuxbox-linux-gnu/3.4.4/../../../../powerpc-tuxbox-linux-gnu/include/ft2build.h:55:38: freetype/config/ftheader.h: No such file or directory
In file included from Plugin.cpp:10:
/home/xxx/7000/apps/tuxbox/enigma/include/lib/gdi/font.h:5:10: #include expects "FILENAME" or <FILENAME>
/home/xxx/7000/apps/tuxbox/enigma/include/lib/gdi/font.h:6:10: #include expects "FILENAME" or <FILENAME>
/home/xxx/7000/apps/tuxbox/enigma/include/lib/gdi/font.h:7:10: #include expects "FILENAME" or <FILENAME>
/home/xxx/7000/apps/tuxbox/enigma/include/lib/gdi/font.h:8:10: #include expects "FILENAME" or <FILENAME>
In file included from Plugin.cpp:10:
/home/xxx/7000/apps/tuxbox/enigma/include/lib/gdi/font.h:37: error: `FT_Library' does not name a type
/home/xxx/7000/apps/tuxbox/enigma/include/lib/gdi/font.h:38: error: `FTC_Manager' does not name a type
/home/xxx/7000/apps/tuxbox/enigma/include/lib/gdi/font.h:39: error: `FTC_Image_Cache' does not name a type
/home/xxx/7000/apps/tuxbox/enigma/include/lib/gdi/font.h:40: error: `FTC_SBit_Cache' does not name a type
/home/xxx/7000/apps/tuxbox/enigma/include/lib/gdi/font.h:42: error: `FTC_FaceID' does not name a type
/home/xxx/7000/apps/tuxbox/enigma/include/lib/gdi/font.h:43: error: `FT_Error' does not name a type
/hom/xxx/7000/apps/tuxbox/enigma/include/lib/gdi/font.h:49: error: `FT_Error' does not name a type
/home/rockydevil/7000/apps/tuxbox/enigma/include/lib/gdi/font.h:69: error: `FT_ULong' does not name a type
/home/xxx/7000/apps/tuxbox/enigma/include/lib/gdi/font.h:82: error: `FT_Face' does not name a type
/home/xxx/7000/apps/tuxbox/enigma/include/lib/gdi/font.h:96: error: `FT_Face' has not been declared
/home/xxx/7000/apps/tuxbox/enigma/include/lib/gdi/font.h:96: error: `FT_UInt' has not been declared
/home/xxx/7000/apps/tuxbox/enigma/include/lib/gdi/font.h:96: error: ISO C++ forbids declaration of `current_face' with no type
/home/xxx/7000/apps/tuxbox/enigma/include/lib/gdi/font.h:96: error: ISO C++ forbids declaration of `glyphIndex' with no type
/home/xxx/7000/apps/tuxbox/enigma/include/lib/gdi/font.h: In constructor `eTextPara::eTextPara(eRect, ePoint)':
/home/xxx/7000/apps/tuxbox/enigma/include/lib/gdi/font.h:103: error: class `eTextPara' does not have any field named `current_face'
/home/xxx/7000/apps/tuxbox/enigma/include/lib/gdi/font.h:103: error: class `eTextPara' does not have any field named `replacement_face'
/home/xxx/7000/apps/tuxbox/enigma/include/lib/gdi/font.h: At global scope:
/home/xxx/7000/apps/tuxbox/enigma/include/lib/gdi/font.h:142: error: `FTC_Image_Desc' does not name a type
/home/xxx/7000/apps/tuxbox/enigma/include/lib/gdi/font.h:145: error: `FT_Error' does not name a type
/home/xxx/7000/apps/tuxbox/enigma/include/lib/gdi/font.h:146: error: `FT_Face' does not name a type
/home/xxx/7000/apps/tuxbox/enigma/include/lib/gdi/font.h:147: error: `FT_Size' does not name a type
/home/rxxx/7000/apps/tuxbox/enigma/include/lib/gdi/font.h:151: error: `FTC_FaceID' has not been declared
/home/xxx/7000/apps/tuxbox/enigma/include/lib/gdi/font.h:151: error: ISO C++ forbids declaration of `faceid' with no type
make: *** [Plugin] Error 1
grazie