#ifndef DateiSystem_H #define DateiSystem_H #include #include "Array.h" #include "Punkt.h" namespace Framework { class Bild; //! Bild.h class Text; //! Text.h class FBalken; //! Fortschritt.h #ifdef WIN32 class Buchstabe; //! Schrift.h class Alphabet; //! Schrift.h class Schrift; //! Schrift.h #endif class LTDBPixel; //! from this file class LTDBKopf; //! from this file class LTDBBody; //! from this file class LTDBDatei; //! from this file class LTDSPixel; //! from this file #ifdef WIN32 class LTDSDateiKopf; //! from this file class LTDSSchriftKopf; //! from this file class LTDSBuchstabenKopf; //! from this file class LTDSBuchstabenKoerper; //! from this file class LTDSDatei; //! from this file #endif //! LTDB File format --- Used for storing multiple images in one file. //! Used for storing and loading a single pixel from an image in the //! LTDB file format class LTDBPixel : public virtual ReferenceCounter //! Pixel of an LTDB file { private: LTDBPixel* davor; //! Previous pixel char index; //! Bit length of the pixel char iR, iG, iB, iA; char miR, miG, miB, miA; char maxIndex; //! Length of the pixel bool change : 1; //! Whether something changes in the following 5 variables bool changeR : 1; //! Whether Red changes bool changeG : 1; //! Whether Green changes bool changeB : 1; //! Whether Blue changes bool changeA : 1; //! Whether Alpha changes unsigned char komp : 3; //! Compression of color values unsigned char R; //! Red unsigned char G; //! Green unsigned char B; //! Blue unsigned char A; //! Alpha bool addBitZuFarbe( unsigned char bit); //! Adds a bit to the color values bool getNextFarbeBit( char& byte, int i); //! Stores the next color bit in byte public: //! Constructor //! \param davor The pixel that was loaded before. 0 if this is the //! first pixel DLLEXPORT LTDBPixel(LTDBPixel* davor); //! Destructor DLLEXPORT ~LTDBPixel(); //! For loading. Adds some bits to the pixel //! \param byte The last byte read from the file //! \param begin The index of the first bit in byte where the pixel begins //! \return The index of the bit in byte where the pixel ended. -1 if //! the pixel is not finished at the end of the byte DLLEXPORT char addByte(char byte, char begin); //! For saving. Sets the color to be stored in the pixel //! \param f The color to store DLLEXPORT void setFarbe(int f); //! Compresses the pixel. Must be called before saving. DLLEXPORT void komprimieren(); //! Returns a part of the bits that represent the pixel //! \param byte A reference to the byte to be saved next //! \param begin The index of the first bit in the byte where the pixel //! should be stored \return The index of the bit where the pixel ends. //! -1 if the pixel must continue in the next byte DLLEXPORT char getNextByte(char& byte, int begin); //! Returns the color value of the pixel DLLEXPORT int zuFarbe() const; //! Returns whether the red component changed compared to the previous pixel DLLEXPORT bool getChangeR() const; //! Returns whether the green component changed compared to the previous pixel DLLEXPORT bool getChangeG() const; //! Returns whether the blue component changed compared to the previous pixel DLLEXPORT bool getChangeB() const; //! Returns whether the alpha component changed compared to the previous pixel DLLEXPORT bool getChangeA() const; //! Returns the compression of the pixel DLLEXPORT unsigned char getKomp() const; //! Returns the red component of the pixel's color DLLEXPORT unsigned char getR() const; //! Returns the green component of the pixel's color DLLEXPORT unsigned char getG() const; //! Returns the blue component of the pixel's color DLLEXPORT unsigned char getB() const; //! Returns the alpha component of the pixel's color DLLEXPORT unsigned char getA() const; }; //! The header of the LTDB file format. Stores information about all //! saved images class LTDBDateiKopf : public virtual ReferenceCounter { private: RCArray* bilder; Array<__int64>* pos; int bAnzahl; public: //! Constructor DLLEXPORT LTDBDateiKopf(); //! Destructor DLLEXPORT ~LTDBDateiKopf(); //! Removes an image from the file header //! \param i The index of the image to remove DLLEXPORT void removeBild(int i); //! Removes an image from the file header //! \param txt The name of the image to remove DLLEXPORT void removeBild(Text* txt); //! Adds an image to the file header //! \param txt The name of the image DLLEXPORT void addBild(Text* txt); //! Sets the byte index in the file where the image begins //! \param i The index of the image //! \param pos The position of the image in the file DLLEXPORT void setBildPos(int i, __int64 pos); //! Sets the byte index in the file where the image begins //! \param txt The name of the image //! \param pos The position of the image in the file DLLEXPORT void setBildPos(Text* txt, __int64 pos); //! Loads the file header of an LTDB file //! \param f A pointer to a progress bar to use for loading. Can be 0. //! \param inF The opened ifstream of the LTDB file with the read //! position already pointing to the first byte of the file header. DLLEXPORT void laden(FBalken* f, std::ifstream* inF); //! Saves the file header to an LTDB file //! \param outF The opened ofstream of the LTDB file with the write //! position already pointing to the first byte of the file header. DLLEXPORT void speichern(std::ofstream* outF) const; //! Returns the name of a specific image //! \param i The index of the image whose name should be returned //! \return The name of the image DLLEXPORT Text* getBild(int i) const; //! Returns the name of a specific image //! \param i The index of the image whose name should be returned //! \return The name of the image without increased reference counter DLLEXPORT Text* zBild(int i) const; //! Returns the index of the first byte of an image in the file //! \param txt The name of the image whose start should be found //! \return -1 if the image was not found. DLLEXPORT __int64 getBildPosition(Text* txt) const; //! Returns the index of the first byte of an image in the file. //! If the index does not exist, std::out_of_range is thrown. //! \param index The index of the image whose start should be found DLLEXPORT __int64 getBildPosition(int index) const; //! Returns the index of a specific image //! \param txt The name of the image //! \return -1 if the image was not found DLLEXPORT int getBildIndex(Text* txt) const; //! Returns the number of images in the file DLLEXPORT int getbAnzahl() const; //! Returns a list of images in the file without increased reference //! counter. The list should not be modified DLLEXPORT RCArray* zBildListe() const; }; //! Die im LTDB Dateikopf gespeicherten Informationen fuer ein einzelnes Bild class LTDBKopf : public virtual ReferenceCounter { private: __int64 a; //! Det LTDB Dateikopf ist maximal 104 Bits lang __int32 b; //! - bis zu 75 Bits fuer den Titel __int8 c; //! - 12 Bits fuer breite public: //! Konstruktor DLLEXPORT LTDBKopf(); //! Laehdt die Informationen ueber ein Bild //! \param f Der geoeffnette und an die richtiege Stelle zeigende //! ifstream der LTDB Datei DLLEXPORT void laden(std::ifstream* f); //! Setzt die Informationen die gespeichert werden sollen //! \param titel Der Titel des Bildes //! \param size Die Groesse des Bildes //! \return Die Anzahl der Buchstaben aus dem Titel, die im LTDB //! Dateiformat nicht gespeichert werden koennen. Erlaubt ist nur a-z und //! A-Z und ae ue oe ss und AE UE OE und . Alle grossbuchstaben im Titel werden //! in Kleinbuchstaben umgewandelt DLLEXPORT int Init(Text* titel, const Punkt& size); //! Laehd informationen aus geladenen Bits. Wird von der laden( //! std::ifstream ) Funktion verwendet. \param BeginBit Der Index des //! ersten Bits, welches ausgewertet werden soll \param EndBit Der Index //! des letzten Bits, welches nichtmehr ausgewertet werden soll \param //! bits Die Bits, von denen alle von BeginBit bis EndBit ausgewertet //! werden sollen Insgesamt muessen 104 Bits gesetzt werden. Hierauf //! bezihen sich BeginBit und EndBit DLLEXPORT void setBits(int BeginBit, int EndBit, __int16 bits); //! Speichert die Informationen in eine Datei //! \param f Der geoeffnete und an die richtiege Stelle zeigende ofstream //! der LTDB Datei DLLEXPORT void speichern(std::ofstream* f) const; //! Gibt die Laenge des Titels zurueck DLLEXPORT int getTitelLength() const; //! Gibt den Titel des Bildes zurueck DLLEXPORT Text* getTitel() const; //! Gibt die Groesse des Bildes zurueck DLLEXPORT Punkt getSize() const; //! Gibt die naechsten zu speichernden Bits zurueck //! \param begin Der Index des ersten Bits, in das gespeichert werden //! soll \param end Der Index des letzten Bits, in das gespeichert //! werden soll \return 16 Bits, in denen die Informationen zwischen //! begin und end stehen Insgesamt muessen 104 Bits gelesen werden. //! Hierauf bezihen sich BeginBit und EndBit DLLEXPORT __int16 getBits(int begin, int end) const; }; //! Verwaltet die Pixeldaten eines einzelnen Bildes einer LTDB Datei class LTDBBody : public virtual ReferenceCounter { private: Punkt gr; Bild* b; int dateiSize; public: //! Konstruktor DLLEXPORT LTDBBody(); //! Konstruktor //! \param k Der LTDB Kopf des Bildes, der Informationen ueber die Groesse //! des Bildes enthaelt DLLEXPORT LTDBBody(LTDBKopf* k); //! Destruktor DLLEXPORT ~LTDBBody(); //! Setzt die Informationen ueber die Groesse des Bildes. Wird zum Laden //! benoetigt. \param k Der LTDB Kopf des Bildes DLLEXPORT void init(LTDBKopf k); //! Setzt die Informationen ueber die Groesse des Bildes. Wird zum Laden //! benoetigt. \param k Der LTDB Kopf des Bildes DLLEXPORT void init(LTDBKopf* k); //! Laedt die Pixeldaten aus der Datei //! \param zF Ein Fortschrittsbalken, der 0 sein kann //! \param inF Der geoeffnete und an die richtiege Stelle zeigende //! ifstream der LTDB Datei DLLEXPORT void laden(FBalken* zF, std::ifstream* inF); //! Setzt das Bild, welches gespeichert werden soll //! \param b Das zu speichernde Bild DLLEXPORT void setBild(Bild* b); //! Speichert die Pixeldaten des Bildes in einer LTDB Datei //! \param zF Ein Fortschrittsbalken, der 0 sein kann //! \param outF Der geoeffnete und an die richtiege Stelle zeigende //! ofstream der LTDB Datei DLLEXPORT void speichern(FBalken* zF, std::ofstream* outF) const; //! Gibt das geladene Bild zurueck DLLEXPORT Bild* getBild() const; //! Gibt die Groesse des Bildes zurueck DLLEXPORT const Punkt& getSize() const; }; //! Verwaltet eine LTDB Datei class LTDBDatei : public virtual ReferenceCounter { private: Text* pfad; LTDBDateiKopf* datKpf; public: //! Konstruktor DLLEXPORT LTDBDatei(); //! Destruktor DLLEXPORT ~LTDBDatei(); //! Setzt den Pfad zu Datei //! \param pfad Der Pfad DLLEXPORT void setDatei(Text* pfad); //! Erstellt eine neue LTDB Datei DLLEXPORT void erstellen(); //! Liesst grundlegende Informationen aus der Datei. //! Wird benoetigt, bevor mit der Datei gearbeitet wird //! \param zF Ein Fortschrittsbalken, der 0 sein kann DLLEXPORT void leseDaten(FBalken* zF); //! Loescht die LTDB Datei DLLEXPORT void remove(); //! Loescht ein Bild aus der LTDB Datei //! \param zF Ein Fortschrittsbalken der 0 sein kann //! \param name Der Name des zu loeschenden Bildes DLLEXPORT void remove(FBalken* zF, Text* name); //! Laedt ein Bild aus der LTDB Datei //! \param zF Ein Fortschrittsbalken, der 0 sein kann //! \param name Der Name des Bildes, welches geladen werden soll //! \return Das geladene Bild. 0, falls das Bild nicht gefunden wurde DLLEXPORT Bild* laden(FBalken* zF, Text* name); //! Speichert ein neues Bild in der LTDB Datei //! \param zF Ein Fortscrittsbalken, der 0 sein kann //! \param bild Das Bild, welches geloescht werden soll //! \param name Der Name, unter dem das Bild gespeichert werden soll //! \return Anzahl der Warnungen, die beim Konvertieren des Namens in //! einen gueltigen Namen aufgetreten sind. -1, falls bereis ein Bild mit //! dem selben Namen existiert DLLEXPORT int speichern(FBalken* zF, Bild* bild, Text* name); //! Gibt eine Liste mit gespeicherten Bildern zurueck //! Die Liste sollte nicht veraendert werden DLLEXPORT RCArray* zBildListe(); //! Gibt den Pfad zur LTDB Datei zurueck DLLEXPORT Text* getPfad() const; //! Gibt die Anzahl der Bilder in der LTDB Datei zurueck DLLEXPORT int getBildAnzahl() const; //! Prueft, ob die LTDB Datei existiert DLLEXPORT bool istOffen() const; }; #ifdef WIN32 //! LTDS Dateivormat --- Dient zum speichern von Schriftarten //! Verwaltet einen einzelnen Pixel von einem Buchstaben class LTDSPixel : public virtual ReferenceCounter { private: char index; char iA; char miA; char maxIndex; //! Laenge des Pixels bool aender; bool aenderA; unsigned char komp : 3; //! Komprimierung der Farbwerte unsigned char alpha; LTDSPixel* davor; bool addBitZuFarbe( unsigned char bit); //! Fuegt den Farbwerten ein Bit hinzu bool getNextFarbeBit( char& byte, int i); //! Speichert das naechste Farbbit in byte public: //! Konstruktor //! \param davor Der Pixel, der vor diesem geladen wurde. 0, fals diess //! der erste Pixel ist DLLEXPORT LTDSPixel(LTDSPixel* davor); //! Destruktor DLLEXPORT ~LTDSPixel(); //! Fuegt dem Pixel einiege geladene Bits hinzu. Zum Laden gedacht. //! \param byte Das letzte aus der Datei geladene Byte. //! \param begin Der Index des ersten Bits im Byte, wo der Pixel beginnt //! \return Der Index des Letzten Bits in Byte, wo der Pixel aufhoehrt. //! -1, falls der Pixel im naechsten Byte weitergeht DLLEXPORT char addByte(char byte, char begin); //! Setzt den Alpha Wert des Pixels. Zum speichern gedacht. //! \param alpha Der Alpha Wert des Pixels. DLLEXPORT void setAlpha(unsigned char alpha); //! Komprimiert den Pixel. Muss vor dem Speichern aufgerufen werden. DLLEXPORT void Komp(); //! Gibt ein Teil der Bits zurueck, die den Pixel representieren //! \param byte Eine Referens auf das Byte, dass als naechstes //! gespeichert werden soll \param begin Der Index des ersten Bits im zu //! speichernden Byte, wo der Pixel gespeichert werden soll \return Der //! Index des Bits im zu speichernden Byte, wo der Pixel aufhoehrt. -1, //! falls der Pixel im naechsten Byte fortgesetzt werden muss DLLEXPORT char getNextByte(char& byte, int bbegin); //! Gibt die Komprimierung des Pixels zurueck DLLEXPORT unsigned char getKomp() const; //! Gibt zurueck, ob sich der Alpha Wert im Vergleich zu dem Pixel davor //! geaendert hat DLLEXPORT bool getAEnderA() const; //! Gibt den Alpha Wert des Pixels zurueck DLLEXPORT unsigned char getA() const; }; //! Verwaltet den Kopf einer LTDS Datei. Er enthaelt Informationen ueber die //! in der Datei gespeicherten Schriftgroessen class LTDSDateiKopf : public virtual ReferenceCounter { private: unsigned char sganzahl; unsigned char* gr; int* pos; public: //! Konstruktor DLLEXPORT LTDSDateiKopf(); //! Destruktor DLLEXPORT ~LTDSDateiKopf(); //! Laedt den Kopf aus der LTDS Datei //! \param inF Der geoeffnete und an die richtige Stelle zeigende //! ifstream der LTDS Datei DLLEXPORT void laden(std::ifstream* inF); //! Fuegt eine Schriftgroesse hinzu //! \param sg Die Schriftgroesse, die hinzugefuegt werden soll DLLEXPORT void addSG(char sg); //! Loescht eine Schriftgroesse //! \param sg Die Schriftgroesse, die geloescht werden soll DLLEXPORT void removeSG(char sg); //! Speichert den LTDS Kopf in der Datei //! \param outF Der geoeffnete und an die richtiege Stelle zeigende //! ofstream der LTDS Datei DLLEXPORT void speichern(std::ofstream* outF) const; //! Gibt einen Array von gespeicherten Schriftgroessen zurueck //! Der Array sollte nicht veraedert werden DLLEXPORT unsigned char* getSchriftGroesseList() const; //! Gibt einen Array mit positionen der ersten Bytes fuer jede //! Schriftgroesse aus der Datei zurueck DLLEXPORT int* getPositionList() const; //! Gibt die Anzahl der gespeicherten Schriftgroessen zurueck DLLEXPORT int getSchriftGroesseAnzahl() const; }; //! Der Kopf einer Schriftgroesse. Enthaelt Informationen ueber die //! gespeicherten Zeichen class LTDSSchriftKopf : public virtual ReferenceCounter { private: unsigned char schriftSize; unsigned char* zeichen; int* pos; unsigned char zeichenAnzahl; public: //! Konstruktor DLLEXPORT LTDSSchriftKopf(); //! Destruktor DLLEXPORT ~LTDSSchriftKopf(); //! Laedt den Kopf einer Schriftgroesse aus der Datei //! \param inF Der geoeffnete und an de richtiege Stelle zeigende //! ifstream der LTDS Datei DLLEXPORT void laden(std::ifstream* inF); //! Setzt die Schriftgroesse. Zum speichern gedacht //! \param gr Die Schriftgroesse DLLEXPORT void setSchriftgroesse(unsigned char gr); //! Setzt das Alphabet, welches in der Schriftgroesse gespeichert werden //! soll \param alphabet Das Alphabet, welches alle zu speichernden //! Zeichen in der Schriftgroesse enthaelt DLLEXPORT void setZeichenAlphabet(Alphabet* alphabet); //! Fuegt der Schriftgroesse ein Zeichen hinzu, welches gespeichert werden //! soll \param zeichen Der ASCII code des Zeichens, welches hinzugefuegt //! werden soll DLLEXPORT void addZeichen(unsigned char zeichen); //! Loescht ein Zeichen aus der Schriftgroesse //! \param zeich Der ASCII code des Zeichens, welches geloescht werden //! soll DLLEXPORT void removeZeichen(unsigned char zeich); //! Speichert den Kopf der Schriftgroesse in der LTDS Datei //! \param outF Der geoeffnete und an die richtiege Stelle zeigende //! ofstream der LTDS Datei DLLEXPORT void speichern(std::ofstream* outF) const; //! Gibt die Schriftgroesse zurueck, zu der dieser Kopf gehoehrt DLLEXPORT unsigned char getSchriftGroesse() const; //! Gibt die Anzahl der in der Schriftgroesse gespeicherten Zeichen zurueck DLLEXPORT unsigned char getZeichenAnzahl() const; //! Gibt einen Array mit den Positionen der ersten Bytes von den //! gespeicherten Zeichen aus der LTDS Datei zurueck DLLEXPORT int* getPositionen() const; //! Gibt einen Array mit den ASCII codes der Gespeicherten Zeichen //! zurueck DLLEXPORT unsigned char* getZeichen() const; }; //! Der Kopf eines einzelnen Zeichens aus der LTDS Datei. Enthaelt //! informationen ueber die Pixelgroesse des Zeichens class LTDSBuchstabenKopf : public virtual ReferenceCounter { private: unsigned char zeichen; Punkt size; public: //! Konstruktor DLLEXPORT LTDSBuchstabenKopf(); //! Laedt die Daten aus der LTDS Datei //! \param inF Der geoeffnete und an die richtiege Stelle zeigende //! ifstream der LTDS Datei DLLEXPORT void laden(std::ifstream* inF); //! Setzt die Daten, die gespeichert werden sollen. //! \param zeichen Der ASCII code des Zeichens //! \param groesse Die Groesse des Zeichens in Pixeln DLLEXPORT void init(unsigned char zeichen, const Punkt& groesse); //! Setzt die Daten, die gespeichert werden sollen. //! \param zeichen Der ASCII code des Zeichens //! \param br Die Breite des Zeichens in Pixeln //! \param hoe Die Hoehe des Zeichens in Pixeln DLLEXPORT void init(unsigned char zeichen, int br, int hoe ); //! Speichert die Daten in der LTDS Datei //! \param outF Der geoeffnete und auf die richtiege Stelle zeigende //! ofstream der LTDS Datei DLLEXPORT void speichern(std::ofstream* outF) const; //! Gibt den ASCII code des Zeichens zurueck DLLEXPORT unsigned char getZeichen() const; //! Gibt die Breite des Zeichens in Pixeln zurueck DLLEXPORT int getBreite() const; //! Gibt die Hoehe des Zeichens in Pixeln zurueck DLLEXPORT int getHoehe() const; //! Gib t die Groesse des Zeichens in Pixeln zurueck DLLEXPORT const Punkt& getGroesse() const; }; //! Verwaltet die Pixeldaten eines Zeichens class LTDSBuchstabenKoerper : public virtual ReferenceCounter { private: Punkt size; unsigned char zeichen; Buchstabe* buchstabe; public: //! Konstruktor //! \param kopf Der Kopf des Zeichens DLLEXPORT LTDSBuchstabenKoerper(LTDSBuchstabenKopf * kopf); //! Destruktor DLLEXPORT ~LTDSBuchstabenKoerper(); //! Setzt den Buchstaben, der gespeichert werden soll //! \param zeichen Der zu speichernde Buchstabe DLLEXPORT void setBuchstabe(Buchstabe * zeichen); //! Laedt die Pixel aus der LTDS Datei //! \param inF Der geoeffnete und auf die richtiege Stelle zeigende //! ifstream der LTDS Datei DLLEXPORT void laden(std::ifstream * inF); //! Speichert die Pixel in die LTDS Datei //! \param outF der geoeffnete und an die richtiege Stelle zeigende //! ofstream der LTDS Datei DLLEXPORT void speichern(std::ofstream * outF) const; //! Gibt den geladenen Buchstaben zurueck DLLEXPORT Buchstabe* getBuchstabe() const; //! Gibt den ASCII code des Buchstabens zurueck DLLEXPORT unsigned char getZeichen() const; }; //! Verwaltet eine LTDS Datei class LTDSDatei : public virtual ReferenceCounter { private: Text* pfad; LTDSDateiKopf* dateiKopf; public: //! Konstruktor DLLEXPORT LTDSDatei(); //! Destruktor DLLEXPORT ~LTDSDatei(); //! Setzt den Pfad zur Datei //! \param txt Der Pfad DLLEXPORT void setPfad(Text* txt); //! Laedt wichtiege Informationen aus der Datei. Muss vor dem Verwenden //! der Datei aufgerufen werden DLLEXPORT void leseDaten(); //! Fuegt der Datei eine Schriftgroesse hinzu, fals diese noch nicht //! existiert \param alphabet Das Alphabet, welches die Zeichen in der //! gewuenschten Schriftgroe0e enthaelt DLLEXPORT void addSchriftgroesse(Alphabet* alphabet); //! Fuegt einer Schriftgroesse einen Buchstaben hinzu //! \param gr Die Schriftgroesse des Buchstabens //! \param zeich Der Buchstabe, der gespeichert werden soll //! \param zeichen Der ASCII code des Buchstabens DLLEXPORT void addBuchstabe( int gr, Buchstabe* zeich, unsigned char zeichen); //! Loescht eine bestimmte Schriftgroesse aus der Datei //! \param gr Die Schriftgroesse, die entfernt werden soll DLLEXPORT void loescheSchrifrGroesse(int gr); //! Loescht einen Buchstaben aus einer Schriftgroesse //! \param gr Die Schriftgroesse, aus der der Buchstabe entfernt werden //! soll \param zeichen Der ASCII code des Zeichens, welches geloescht //! werden soll DLLEXPORT void loescheBuchstabe(int gr, unsigned char zeichen); //! Loescht die LTDS Datei DLLEXPORT void loescheDatei(); //! Erstellt die LTDS Datei DLLEXPORT void erstelleDatei(); //! Speichert eine gesammte Schrift in der Datei //! \param schrift Die schrift, die gespeichert werden soll DLLEXPORT void speicherSchrift(Schrift* schrift); //! Laedt die gesammte Schrift aus der Datei //! \return Die geladene Schrift. 0, falls ein Fehler beim Laden //! aufgetreten ist DLLEXPORT Schrift* ladeSchrift(); //! Laedt eine einzelne Schriftgroesse aus der Datei //! \param schriftgroesse Die zu ladende Schriftgroesse //! \return Ein Alphabet mit den Zeichen in der Schriftgroesse. 0, falls //! die Schriftgroesse nicht gefunden wurde DLLEXPORT Alphabet* ladeAlphabet(int schriftgroesse); //! Laedt ein bestimmtes Zeichen einer bestimmten Schriftgroesse //! \param schriftgroesse Die Schriftgroesse, zu dem das Zeichen gehoert //! \param zeichen Der ASCII code des zu ladenden Zeichens //! \return Der geladene Buchstabe. 0, falls das Zeichen nicht gefunden //! wurde. DLLEXPORT Buchstabe* ladeBuchstabe( int schriftgroesse, unsigned char zeichen); //! Gibt den Pfad zur LTDS Datei zurueck DLLEXPORT Text* getPfad() const; //! Gibt die Anzahl der gespeicherten Schriftgroessen zurueck DLLEXPORT int getAnzahlSchriftgroessen() const; //! Gibt einen Array mit den gespeicherten Schriftgroessen zurueck //! Der Array sollte nicht veraendert werden DLLEXPORT unsigned char* getSchriftGroessen() const; //! Gibt die Anzahl an gespeicherten Zeichen in einer Schriftgroesse //! zurueck \param sg Die Schriftgroesse, von der die Anzahl der ZEichen //! ermittelt werden soll \return Die Anzahl der Zeichen. DLLEXPORT unsigned char getAnzahlBuchstaben(int sg); //! Gibt einen Array mit Buchstaben einer bestimmten Schriftgroesse zurueck //! \param sg Die Schriftgroesse //! \return Der Array mit den ASCII codes der Zeichen. 0, falls die //! Schriftgroesse nicht gefunden wurde. DLLEXPORT unsigned char* getBuchstaben(int sg); }; #endif //! Bit Funktionen //! gibt 1-bits in gewinschter anzahl zurueck. //! \param a Die Anzahl der Bits, die 1 sein sollen //! \return 32 Bits, wobei die einser Bits von rechts beginnen DLLEXPORT int Bits(int a); //! Gibt zurueck, wie viele Bits benoetigt werden um eine Zahl darzustellen //! \param c Die Zahl, die dargestellt werden soll //! \return Die Anzahl der benoetigten Bits DLLEXPORT int getBits(char c); } // namespace Framework #endif