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