Update native interface

This commit is contained in:
vshcherb 2013-08-17 23:33:19 +02:00
parent dc9d7d2501
commit 61433f961a
4 changed files with 37 additions and 32 deletions

View file

@ -28,6 +28,12 @@ import net.osmand.router.RoutingConfiguration;
public class NativeLibrary {
protected final boolean newLibrary;
public NativeLibrary(boolean newLibrary) {
this.newLibrary = newLibrary;
}
public static class RenderingGenerationResult {
public RenderingGenerationResult(ByteBuffer bitmap) {
bitmapBuffer = bitmap;
@ -84,7 +90,7 @@ public class NativeLibrary {
}
/**
* @param searchResultHandle
* @param
* - must be null if there is no need to append to previous results returns native handle to results
*/
public NativeSearchResult searchObjectsForRendering(int sleft, int sright, int stop, int sbottom, int zoom,
@ -106,7 +112,12 @@ public class NativeLibrary {
}
public boolean initMapFile(String filePath) {
if(newLibrary) {
// TODO
return initBinaryMapFile(filePath);
} else {
return initBinaryMapFile(filePath);
}
}
public boolean initCacheMapFile(String filePath) {
@ -221,13 +232,10 @@ public class NativeLibrary {
*/
private static final Log log = PlatformUtil.getLog(NativeLibrary.class);
public static boolean loadAllLibs(String path) {
boolean b = true;
b &= load("Qt5Core", path);
b &= load("OsmAndCore", path);
b &= load("OsmAndCoreUtils", path);
b &= load("OsmAndJNI", path);
return b;
public static boolean loadNewLib(String path) {
return load("OsmAndJNI", path);
}
public static boolean loadOldLib(String path) {
@ -289,4 +297,5 @@ public class NativeLibrary {
} // fall through
return false;
}
}

View file

@ -2,9 +2,6 @@ package net.osmand.binary;
import java.io.IOException;
import java.util.Collections;
import net.osmand.NativeLibrary;
public class BinaryInspectorNative {
@ -18,10 +15,6 @@ public class BinaryInspectorNative {
}
args = new String[]{"-vmap", "-bbox=11.3,47.1,11.6,47", "/home/victor/projects/OsmAnd/data/osm-gen/Austria_2.obf"};
// test cases show info
NativeLibrary.loadAllLibs(null);
// StringVector vector = new StringVector();
// Collections.addAll(vector, args);
// ObfInspector.inspector(vector);
}
public static void printUsage(String warning) {

View file

@ -44,7 +44,6 @@ public class SettingsGeneralActivity extends SettingsBaseActivity {
private Preference applicationDir;
private ListPreference applicationModePreference;
private ListPreference drivingRegionPreference;
private ListPreference metricsAndConstantsPreference;
@Override
@ -211,7 +210,6 @@ public class SettingsGeneralActivity extends SettingsBaseActivity {
applicationModePreference = (ListPreference) screen.findPreference(settings.APPLICATION_MODE.getId());
applicationModePreference.setOnPreferenceChangeListener(this);
drivingRegionPreference = (ListPreference) screen.findPreference(settings.DRIVING_REGION.getId());
metricsAndConstantsPreference = (ListPreference) screen.findPreference(settings.METRIC_SYSTEM.getId());
}

View file

@ -18,12 +18,17 @@ public class NativeOsmandLibrary extends NativeLibrary {
private static NativeOsmandLibrary library;
private static Boolean isNativeSupported = null;
public NativeOsmandLibrary(boolean newLibrary) {
super(newLibrary);
}
public static NativeOsmandLibrary getLoadedLibrary(){
synchronized (NativeOsmandLibrary.class) {
return library;
}
}
public static NativeOsmandLibrary getLibrary(RenderingRulesStorage storage, ClientContext ctx) {
if (!isLoaded()) {
synchronized (NativeOsmandLibrary.class) {
@ -43,7 +48,7 @@ public class NativeOsmandLibrary extends NativeLibrary {
try {
loadNewCore(libCpuSuffix);
log.debug("Creating NativeOsmandLibrary instance..."); //$NON-NLS-1$
library = new NativeOsmandLibrary();
library = new NativeOsmandLibrary(true);
isNativeSupported = true;
} catch(Throwable e) {
log.error("Failed to load new native library", e); //$NON-NLS-1$
@ -51,7 +56,7 @@ public class NativeOsmandLibrary extends NativeLibrary {
if(!isNativeSupported) {
loadOldCore(libCpuSuffix);
log.debug("Creating NativeOsmandLibrary instance..."); //$NON-NLS-1$
library = new NativeOsmandLibrary();
library = new NativeOsmandLibrary(false);
log.debug("Initializing rendering rules storage..."); //$NON-NLS-1$
NativeOsmandLibrary.initRenderingRulesStorage(storage);
isNativeSupported = true;
@ -70,13 +75,13 @@ public class NativeOsmandLibrary extends NativeLibrary {
}
private static void loadNewCore(final String libCpuSuffix) {
System.loadLibrary("Qt5Core" + libCpuSuffix);
System.loadLibrary("Qt5Network" + libCpuSuffix);
System.loadLibrary("Qt5Concurrent" + libCpuSuffix);
System.loadLibrary("Qt5Sql" + libCpuSuffix);
System.loadLibrary("Qt5Xml" + libCpuSuffix);
System.loadLibrary("OsmAndCore" + libCpuSuffix);
System.loadLibrary("OsmAndCoreUtils" + libCpuSuffix);
// System.loadLibrary("Qt5Core" + libCpuSuffix);
// System.loadLibrary("Qt5Network" + libCpuSuffix);
// System.loadLibrary("Qt5Concurrent" + libCpuSuffix);
// System.loadLibrary("Qt5Sql" + libCpuSuffix);
// System.loadLibrary("Qt5Xml" + libCpuSuffix);
// System.loadLibrary("OsmAndCore" + libCpuSuffix);
// System.loadLibrary("OsmAndCoreUtils" + libCpuSuffix);
System.loadLibrary("OsmAndJNI" + libCpuSuffix);
}