AbelSoft Pocket Notes formátum

A fájlok fejléce

Minden apn fájl azonos módon kezdődik:

  • 1-3 byte: "APN"
  • 4. byte: verziószám
  • A file további része: verzió függő

Jelenleg három verziója létezik a fájloknak, melyek részletei itt megtalálhatók. A 0.3-as változata a programnak az 1-es és 2-es, a 0.4-es változat pedig az 1-es, 2-es és 3-as formátumokat is kezeli. Minden változat az általa ismert legfrissebb formátumban menti a jegyzeteket.

1-es formátum

A legelső változat készítésekor arra törekedtem hogy valamilyen formában el tudjam menteni a jegyzeteket, ezért hoztam létre ezt az egyszerű és könnyen feldolgozható fájlformátumot. Leginkább csak a teljesség kedvéért került ide.

  • 1-3 byte: "APN"
  • 4. byte: verziószám, most 1
  • 5-8. byte: Tollvonások száma
  • A file további része: tollvonások listája

A tollvonások közvetlenül követik egymást. Minden tollvonás a következő módon van tárolva:

  • 4 db byte: Toll vastagsága
  • 1 db byte: Toll színének vörös komponense
  • 1 db byte: Toll színének zöld komponense
  • 1 db byte: Toll színének kék komponense
  • 1 db byte: nem használt, 0-át kell ide írni.
  • 4 db byte: Csúcspontok száma
  • Csúcspontok listája

A csúcspontok közvetlenül követik egymást. Minden csúcspontot két 4 bytesos egész szám ír le: x és y koordinátája.

2-es és 3-as formátum

A 2-es verziójú fájlok felépítése megegyezik a 3-assal, annyi a különbség, hogy kevesebb parancsot lehet bennük használni (tehát nyugodtan tekinthetjük őket 3-as verziójú fájloknak a feldolgozás során).

  • 1-3 byte: "APN"
  • 4. byte: verziószám, 2 vagy 3
  • A file további része: parancsok listája

A parancsok formája: Minden parancs egy egy bájtos azonosítóval kezdődik, melyet közvetlenül követnek a parancs paraméterei. Ezek mérete változó, a parancstól függ.

A fájlok beolvasása során használni kell változókat is, melyek meghatározzák az éppen beolvasott elemek tulajdonságait. A változók értékének megváltoztatására vannak parancsok. Az első ilyen parancs előtt a változók kapnak alapértelmezett értéket.

A fájlok rendelkezhetnek tetszőleges számú Property-vel. Egy Property egy név-érték páros, ahol mind a név, mind az érték tetszőleges hosszúságú byte sorozat lehet. Vannak kiemelt Property-k.

A változók és alapértelmezett értékeik:
Változó neve Típusa Mit határoz meg Alapértelmezett értéke
Pen color RGB (int, int, int) A vonalak színe (0, 0, 0)
Pen width int A vonalak vastagsága 4
Pen marker bool Kijelölő módúak-e a vonalak false
Offset 2D pont (int, int) A vonalak koordinátáinak eltolása (0, 0)
View offset 2D pont (int, int) A szerkesztőben az ábra eltolása a mentés pillanatában (0, 0)
Zoom float A szerkesztőben a nagyítás a mentés pillanatában 1.0
Paper color RGB (int, int, int) A papírlap színe (255, 255, 255)
Pattern color RGB (int, int, int) A papír mintázatának színe (0, 128, 255)
Pattern size int A papír mintázatának köze 40
Pattern width int Papír mintázat vonalvastagsága 1
Paper type int A papír mintázatának típusa (a mintázat típusok a 21-es parancsnál vannak) 0
Year Évszám (int) Melyik évben rajzolták az alakzatot 1960
Month Hónap (int) Melyik hónapban rajzolták az alakzatot 1 (január)
Day Nap (int) A hónap hányadik napján rajzolták az alakzatot 1
Hour Óra (int) A nap hányadik órájában rajzolták az alakzatot (0-tól számol) 0
Minute Perc (int) A nap hányadik percében rajzolták az alakzatot (0-tól számol) 0

A használható parancsok listája:
Parancs azonosítója Hatása Paraméterei Hányas verziótól kezdve lehet használni
0 File feldolgozásának a vége Nincsenek 2
1 Pen color megváltoztatása 3 byte: R, G, B. Előjel nélküli egészek 2
2 Pen color (0, 0, 0)-ra állítása Nincsenek 2
3 Pen color (128, 0, 0)-ra állítása Nincsenek 2
4 Pen color (0, 128, 0)-ra állítása Nincsenek 2
5 Pen color (0, 0, 128)-ra állítása Nincsenek 2
6 Pen color (128, 128, 128)-ra állítása Nincsenek 2
7 Pen width módosítása 1 byte: az új érték - 1. (Vagyis a 0 paraméter 1-re állítja a pen-width-et) 2
8 Pen width 1-re állítása Nincsenek 2
9 Pen width 2-re állítása Nincsenek 2
10 Pen width 3-ra állítása Nincsenek 2
11 Pen width 4-re állítása Nincsenek 2
12 Offset értékének állítása 2 byte: x és y eltolások 1-1 byteon, előjel nélkül 2
13 Offset értékének állítása 4 byte: x és y eltolások 2-2 byteon, előjel nélkül 2
14 Offset értékének állítása 8 byte: x és y eltolások 4-4 byteon, előjel nélkül 2
15 Szabadkézi vonalak rajzolása Minden vonal:
  • 2 byte: csúcspontok száma
  • A csúcspontok, egyenként 2 byteon: x és y koordináták 1-1 byteon.
A vonalak közvetlenül követik egymást. A lista végét egy 0 csúcspontból álló vonal jelzi.
2
16 Szabadkézi vonalak rajzolása Minden vonal:
  • 2 byte: csúcspontok száma
  • A csúcspontok, egyenként 4 byteon: x és y koordináták 2-2 byteon.
A vonalak közvetlenül követik egymást. A lista végét egy 0 csúcspontból álló vonal jelzi.
2
17 Szabadkézi vonalak rajzolása Minden vonal:
  • 2 byte: csúcspontok száma
  • A csúcspontok, egyenként 8 byteon: x és y koordináták 4-4 byteon.
A vonalak közvetlenül követik egymást. A lista végét egy 0 csúcspontból álló vonal jelzi.
2
18 Editor Offset értékének állítása 8 byte: x és y eltolások 4-4 byteon, előjel nélkül 2
19 Editor zoom értékének állítása 4 byteos előjel nélküli egész: a zoom érték 65536-szorosa 2
20 Egy Property meghatározása
  • 4 byte: Property nevének hossza byteban
  • Property neve
  • 4 byte: Property értékének hossza byteban
  • Property értéke
2
21 Paper type értékének állítása 1 byte, melynek értéke lehet:
  • 0: Üres papír
  • 1: Vízszintesen vonalas papír
  • 2: Általános iskolás írni tanuló minta
  • 3: Négyzetrácsos papír
  • 4: Francia kockás papír
2
22 Paper color értékének állítása 3 byte: R, G és B értéke 2
23 Pattern color értékének állítása 3 byte: R, G és B értéke 2
24 Pattern size értékének állítása 1 byte: méret 2
25 Pattern width értékének állítása 1 byte: méret 2
26 Pen marker igazra állítása Nincsenek 2
27 Pen marker hamisra állítása Nincsenek 2
28 Year értékének állítása 2 byte: előjel nélküli egész: az évszám. 3
29 Month értékének állítása 1 byte: a hónap (1 - január) 3
30 Day értékének állítása 1 byte: a nap 3
31..55 Hour értékének állítása Nincs, a parancs kódja tartalmazza a paramétert is. Az új érték: parancs kód - 31 lesz. 3
56..116 Minute értékének állítása Nincs, a parancs kódja tartalmazza a paramétert is. Az új érték: parancs kód - 56 lesz. 3

A papír mintázatokról

Egy rövid és lényegretörő ismertető a beépített papírmintázatokról.

  • Vízszintesen vonalas papír: Vízszintes vonalak Pattern size * 3 távolságra egymástól.
  • Általános iskolás írni tanuló minta: Vízszintes vonalak Pattern size távolságra egymástól. Minden harmadiknak a vastagsága Pattern width * 3.
  • Négyzetrácsos papír: Vízszintes és függőleges vonalak, egymástól Pattern width távolságra
  • Francia kockás papír: Vízszintes és függőleges vonalak, vízszintesen egymástól Pattern width, függőlegesen Pattern width * 2 távolságra.


Visszatérés a témakörök listájához

Valid XHTML 1.0 Transitional
Valid CSS!
Az oldalt Sinkovics Ábel készítette. up-to-down Magyar Honlap Linkek

Made in Hungary