App
Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
mhr.appcore.AppCore Class Reference

Jádro aplikace, platformě nezávislé, pouze standartní C a Java. More...

Public Member Functions

 AppCore (PDDisplayer disp)
 Vytvoří instanci aplikace.
 
void dispose ()
 provede úklid po instanci
 
void setWorkingThreadEH (Thread.UncaughtExceptionHandler handler)
 Nasteví handler neodchycených výjimek pracovního vlákna.
 
void setRenderingThreadEH (Thread.UncaughtExceptionHandler handler)
 Nastaví handler neodchycených výjimek renderovacícho vlákna.
 
PDDisplayer getDisp ()
 Vrací displayer.
 
Image getImg ()
 Vrací obraz.
 
NBitmap getWrOutput ()
 
PDBitmap getOutput ()
 wrací wrapper okolo výstupního obrazu
 
void setTool (Tool t)
 Nastaví daný nástroj jako aktivní
 
Tool getTool ()
 Vrací vybraný nástroj.
 
RenderingTask getRenderer ()
 vrací renderovací vlákno
 
void unsetExceptionFlag ()
 odstraňuje flag pro výjimku (AppNonFatalException)
 
void setImagePresentation (PDImageDataPresentation pres)
 Nastaví prezentaci obrazu.
 
void setExceptionFeedback (PDExceptionFeedback feedback)
 Nastaví kam se má posílat zpětná vazba o nefatálních výjimkách.
 
PDExceptionFeedback getExceptionFeedback ()
 Vrátí objekt, který dostává zpětnou vazbu o nefatálních výjimkách.
 
void addCommand (AppCommand command)
 přídá příkaz do fronty pracovního vlákna
 
void cropImage (Rect r)
 Provede ořez obrazu na daný obdélník.
 
void resizeImage (ResizeImageCommand cmd)
 provede převzorkování obrazu dle daného příkazu
 
void openImage (PDBitmap bitmap)
 Vytvoří obraz z dat dané bitmapy.
 
void openImage (ImageFile f)
 Otevře obraz popsaný souborem.
 
void suspend ()
 
void wake ()
 
void start ()
 spustí jádro aplikace - pracovní a renderovací vlákno
 
void stop ()
 Zastaví jádro aplikace.
 
void saveToFile (ImageFile f)
 Uloží do daného souboru aktuální obraz.
 
String getDump ()
 debug metoda
 

Protected Member Functions

void finalize () throws Throwable
 

Protected Attributes

PDDisplayer disp = null
 Této třídě se předává výstupní obraz, stará se o výstup na obrazovku.
 
PDExceptionFeedback feedback = null
 Pro zajišťování asynchronní zpětné vazby od pracovních vláken přímo do klientské aplikace.
 
Image img = null
 Obraz.
 
WorkingTask worker = null
 Task, na kterém probýhají asynchronně úpravy obrazu.
 
RenderingTask renderer = null
 Task, který se stará o asynchronní renderování změněných oblastí obrazu.
 
NBitmap wrOutput = null
 NBitmapa obalená okolo vstupu pro disp.
 
PDBitmap output = null
 PDBitmapa obalená okolo vstupu pro disp. Používá se pro export obrazu.
 
Tool selectedTool
 Vybraný nástroj, příkazy pro kreslení si jej berou odtud, aby nemusely sami držet odkaz.
 
ResizeAction resizeAction = null
 
PDBitmap origOut = null
 
NBitmap wrOrigOut = null
 

Private Attributes

boolean disposed = false
 

Detailed Description

Jádro aplikace, platformě nezávislé, pouze standartní C a Java.

Jádro aplikace, platformě nezávislé, pouze standartní C a Java. Funkcionalita specifická pro Android je zapouzdřena v balíčku mhr.appandroid, Kompatibilita s platformou je zajištěna třídami implementujícími rozhraní z mhr.appcore.interfaces

Definition at line 28 of file AppCore.java.

Constructor & Destructor Documentation

mhr.appcore.AppCore.AppCore ( PDDisplayer  disp)
inline

Vytvoří instanci aplikace.

   Vytvoří instanci aplikace. Ta ovšem zatím nic neprovádí obraz je nutno vytvořit samostatně.
Parameters
disp

Definition at line 70 of file AppCore.java.

{
if (disp == null) {
throw new NullPointerException("disp should not be null");
}
this.disp = disp;
}

Member Function Documentation

void mhr.appcore.AppCore.addCommand ( AppCommand  command)
inline

přídá příkaz do fronty pracovního vlákna

Parameters
command

Definition at line 220 of file AppCore.java.

{
worker.addCommand(command);
}
void mhr.appcore.AppCore.cropImage ( Rect  r)
inline

Provede ořez obrazu na daný obdélník.

Parameters
r

Definition at line 228 of file AppCore.java.

{
img.cropTo(r);
BitmapInfo oldi = output.getInfo();
PDBitmap oldOut = output;
output = oldOut.createBitmap(new BitmapInfo(img.getWidth(), img.getHeight(), oldi.channelCount, oldi.depth, oldi.colorMode, oldi.premultiplied));
oldOut.dispose();
wrOutput = new NBitmap(output);
}
void mhr.appcore.AppCore.dispose ( )
inline

provede úklid po instanci

Definition at line 80 of file AppCore.java.

{
if(worker != null) {
worker = null;
}
if (renderer != null) {
renderer = null;
}
if (img != null) {
img = null;
}
if (selectedTool != null) {
selectedTool = null;
}
if (wrOutput != null) {
wrOutput = null;
}
}
void mhr.appcore.AppCore.finalize ( ) throws Throwable
inlineprotected

Definition at line 58 of file AppCore.java.

{
super.finalize();
}
PDDisplayer mhr.appcore.AppCore.getDisp ( )
inline

Vrací displayer.

Returns

Definition at line 131 of file AppCore.java.

{
return disp;
}
String mhr.appcore.AppCore.getDump ( )
inline

debug metoda

Returns

Definition at line 389 of file AppCore.java.

{
// String retVal = dump.toString();
// dump.setLength(0);
// return retVal;
return "DUMP NOT SUPPORTED";
}
PDExceptionFeedback mhr.appcore.AppCore.getExceptionFeedback ( )
inline

Vrátí objekt, který dostává zpětnou vazbu o nefatálních výjimkách.

Returns

Definition at line 212 of file AppCore.java.

{
return feedback;
}
Image mhr.appcore.AppCore.getImg ( )
inline

Vrací obraz.

Returns

Definition at line 139 of file AppCore.java.

{
return img;
}
PDBitmap mhr.appcore.AppCore.getOutput ( )
inline

wrací wrapper okolo výstupního obrazu

Returns

Definition at line 151 of file AppCore.java.

{
return output;
}
RenderingTask mhr.appcore.AppCore.getRenderer ( )
inline

vrací renderovací vlákno

Returns

Definition at line 181 of file AppCore.java.

{
return renderer;
}
Tool mhr.appcore.AppCore.getTool ( )
inline

Vrací vybraný nástroj.

Returns

Definition at line 173 of file AppCore.java.

{
return selectedTool;
}
NBitmap mhr.appcore.AppCore.getWrOutput ( )
inline

Definition at line 143 of file AppCore.java.

{
return wrOutput;
}
void mhr.appcore.AppCore.openImage ( PDBitmap  bitmap)
inline

Vytvoří obraz z dat dané bitmapy.

Parameters
bitmap

Definition at line 308 of file AppCore.java.

{
dispose(); // Zastaví a uklidí veškeré zbytky...
img = new Image(bitmap);
output = bitmap;
wrOutput = new NBitmap(output);
start();
}
void mhr.appcore.AppCore.openImage ( ImageFile  f)
inline

Otevře obraz popsaný souborem.

Parameters
f

Definition at line 321 of file AppCore.java.

{
dispose(); // Zastaví a uklidí veškeré zbytky...
img = new Image(f);
output = f.loadOutput();
wrOutput = new NBitmap(output);
start();
}
void mhr.appcore.AppCore.resizeImage ( ResizeImageCommand  cmd)
inline

provede převzorkování obrazu dle daného příkazu

Parameters
cmd

Definition at line 247 of file AppCore.java.

{
switch (cmd.action) {
case INIT:
if (resizeAction != null) {
throw new IllegalStateException("Bad resize state");
}
resizeAction = ResizeAction.INIT;
break;
case PREVIEW:
if (resizeAction != ResizeAction.INIT) {
throw new IllegalStateException("Bad resize state");
}
BitmapInfo oldi = origOut.getInfo();
output = origOut.createBitmap(new BitmapInfo(cmd.newWidth, cmd.newHeight,oldi.channelCount, oldi.depth, oldi.colorMode, oldi.premultiplied));
wrOutput = new NBitmap(output);
Interpolator.resampleTo(wrOrigOut, wrOutput, cmd.iType, cmd.force);
wrOutput = null;
break;
case COMMIT:
if (resizeAction != ResizeAction.INIT) {
throw new IllegalStateException("Bad resize state");
}
img.resizeTo(cmd.newWidth, cmd.newHeight, cmd.iType, cmd.force);
BitmapInfo oi = origOut.getInfo();
output = origOut.createBitmap(new BitmapInfo(cmd.newWidth, cmd.newHeight,oi.channelCount, oi.depth, oi.colorMode, oi.premultiplied));
wrOutput = new NBitmap(output);
wrOrigOut = null;
resizeAction = null;
break;
case CANCEL:
if (resizeAction == null) {
return;
}
resizeAction = null;
break;
}
}
void mhr.appcore.AppCore.saveToFile ( ImageFile  f)
inline

Uloží do daného souboru aktuální obraz.

Parameters
f

Definition at line 369 of file AppCore.java.

{
try {
} catch (ImageLoadingException e) {
f.deleteFile();
wake();
return;
}
f.saveOutput(output);
wake();
}
void mhr.appcore.AppCore.setExceptionFeedback ( PDExceptionFeedback  feedback)
inline

Nastaví kam se má posílat zpětná vazba o nefatálních výjimkách.

Parameters
feedback

Definition at line 204 of file AppCore.java.

{
}
void mhr.appcore.AppCore.setImagePresentation ( PDImageDataPresentation  pres)
inline

Nastaví prezentaci obrazu.

Parameters
pres

Definition at line 196 of file AppCore.java.

{
}
void mhr.appcore.AppCore.setRenderingThreadEH ( Thread.UncaughtExceptionHandler  handler)
inline

Nastaví handler neodchycených výjimek renderovacícho vlákna.

Parameters
handler

Definition at line 123 of file AppCore.java.

{
}
void mhr.appcore.AppCore.setTool ( Tool  t)
inline

Nastaví daný nástroj jako aktivní

Parameters
t

Definition at line 159 of file AppCore.java.

{
if (selectedTool != null) {
img.submitCanvas(selectedTool, false); // Pro případ, že by nástroj ještě byl asociován s obrazem.
}
}
}
void mhr.appcore.AppCore.setWorkingThreadEH ( Thread.UncaughtExceptionHandler  handler)
inline

Nasteví handler neodchycených výjimek pracovního vlákna.

Parameters
handler

Definition at line 115 of file AppCore.java.

{
worker.setThreadEH(handler);
}
void mhr.appcore.AppCore.start ( )
inline

spustí jádro aplikace - pracovní a renderovací vlákno

Definition at line 339 of file AppCore.java.

{
if (worker != null) {
}
if (renderer != null) {
}
worker = new WorkingTask(this);
renderer = new RenderingTask(this);
}
void mhr.appcore.AppCore.stop ( )
inline

Zastaví jádro aplikace.

Definition at line 356 of file AppCore.java.

{
if (worker != null) {
}
if (renderer != null) {
}
}
void mhr.appcore.AppCore.suspend ( )
inline

Definition at line 330 of file AppCore.java.

{
}
void mhr.appcore.AppCore.unsetExceptionFlag ( )
inline

odstraňuje flag pro výjimku (AppNonFatalException)

Definition at line 188 of file AppCore.java.

void mhr.appcore.AppCore.wake ( )
inline

Definition at line 333 of file AppCore.java.

{
}

Member Data Documentation

PDDisplayer mhr.appcore.AppCore.disp = null
protected

Této třídě se předává výstupní obraz, stará se o výstup na obrazovku.

Definition at line 36 of file AppCore.java.

boolean mhr.appcore.AppCore.disposed = false
private

Definition at line 45 of file AppCore.java.

PDExceptionFeedback mhr.appcore.AppCore.feedback = null
protected

Pro zajišťování asynchronní zpětné vazby od pracovních vláken přímo do klientské aplikace.

Definition at line 37 of file AppCore.java.

Image mhr.appcore.AppCore.img = null
protected

Obraz.

Definition at line 38 of file AppCore.java.

PDBitmap mhr.appcore.AppCore.origOut = null
protected

Definition at line 50 of file AppCore.java.

PDBitmap mhr.appcore.AppCore.output = null
protected

PDBitmapa obalená okolo vstupu pro disp. Používá se pro export obrazu.

Definition at line 43 of file AppCore.java.

RenderingTask mhr.appcore.AppCore.renderer = null
protected

Task, který se stará o asynchronní renderování změněných oblastí obrazu.

Definition at line 41 of file AppCore.java.

ResizeAction mhr.appcore.AppCore.resizeAction = null
protected

Definition at line 49 of file AppCore.java.

Tool mhr.appcore.AppCore.selectedTool
protected

Vybraný nástroj, příkazy pro kreslení si jej berou odtud, aby nemusely sami držet odkaz.

Definition at line 47 of file AppCore.java.

WorkingTask mhr.appcore.AppCore.worker = null
protected

Task, na kterém probýhají asynchronně úpravy obrazu.

Definition at line 40 of file AppCore.java.

NBitmap mhr.appcore.AppCore.wrOrigOut = null
protected

Definition at line 51 of file AppCore.java.

NBitmap mhr.appcore.AppCore.wrOutput = null
protected

NBitmapa obalená okolo vstupu pro disp.

Definition at line 42 of file AppCore.java.


The documentation for this class was generated from the following file: