Example #1
0
void Java_com_googlecode_eyesfree_textdetect_HydrogenTextDetector_nativeSetParameters(
    JNIEnv *env,
    jclass clazz,
    jlong nativePtr,
    jobject params) {
  if (DEBUG_MODE) LOGV(__FUNCTION__);

  HydrogenTextDetector *ptr = (HydrogenTextDetector *) nativePtr;
  HydrogenTextDetector::TextDetectorParameters *myParams = ptr->GetMutableParameters();

  jclass paramClass = env->GetObjectClass(params);

  getStringField(env, paramClass, params, "out_dir", myParams->out_dir);

  myParams->debug = getBoolField(env, paramClass, params, "debug");
  myParams->edge_tile_x = getIntField(env, paramClass, params, "edge_tile_x");
  myParams->edge_tile_y = getIntField(env, paramClass, params, "edge_tile_y");
  myParams->edge_thresh = getIntField(env, paramClass, params, "edge_thresh");
  myParams->edge_avg_thresh = getIntField(env, paramClass, params, "edge_avg_thresh");

  myParams->skew_enabled = getBoolField(env, paramClass, params, "skew_enabled");
  myParams->skew_min_angle = getFloatField(env, paramClass, params, "skew_min_angle");
  myParams->skew_sweep_range = getFloatField(env, paramClass, params, "skew_sweep_range");
  myParams->skew_sweep_delta = getFloatField(env, paramClass, params, "skew_sweep_delta");
  myParams->skew_sweep_reduction = getIntField(env, paramClass, params, "skew_sweep_reduction");
  myParams->skew_search_reduction = getIntField(env, paramClass, params, "skew_search_reduction");
  myParams->skew_search_min_delta = getFloatField(env, paramClass, params, "skew_search_min_delta");

  myParams->single_min_aspect = getFloatField(env, paramClass, params, "single_min_aspect");
  myParams->single_max_aspect = getFloatField(env, paramClass, params, "single_max_aspect");
  myParams->single_min_area = getIntField(env, paramClass, params, "single_min_area");
  myParams->single_min_density = getFloatField(env, paramClass, params, "single_min_density");

  myParams->pair_h_ratio = getFloatField(env, paramClass, params, "pair_h_ratio");
  myParams->pair_d_ratio = getFloatField(env, paramClass, params, "pair_d_ratio");
  myParams->pair_h_dist_ratio = getFloatField(env, paramClass, params, "pair_h_dist_ratio");
  myParams->pair_v_dist_ratio = getFloatField(env, paramClass, params, "pair_v_dist_ratio");
  myParams->pair_h_shared = getFloatField(env, paramClass, params, "pair_h_shared");

  myParams->cluster_width_spacing = getIntField(env, paramClass, params, "cluster_width_spacing");
  myParams->cluster_shared_edge = getFloatField(env, paramClass, params, "cluster_shared_edge");
  myParams->cluster_h_ratio = getFloatField(env, paramClass, params, "cluster_h_ratio");

  myParams->cluster_min_blobs = getIntField(env, paramClass, params, "cluster_min_blobs");
  myParams->cluster_min_aspect = getFloatField(env, paramClass, params, "cluster_min_aspect");
  myParams->cluster_min_fdr = getFloatField(env, paramClass, params, "cluster_min_fdr");
  myParams->cluster_min_edge = getIntField(env, paramClass, params, "cluster_min_edge");
  myParams->cluster_min_edge_avg = getIntField(env, paramClass, params, "cluster_min_edge_avg");
}
static jboolean android_net_wifi_startScan(
        JNIEnv *env, jclass cls, jint iface, jint id, jobject settings) {

    wifi_interface_handle handle = getIfaceHandle(env, cls, iface);
    ALOGD("starting scan on interface[%d] = %p", iface, handle);

    wifi_scan_cmd_params params;
    memset(&params, 0, sizeof(params));

    params.base_period = getIntField(env, settings, "base_period_ms");
    params.max_ap_per_scan = getIntField(env, settings, "max_ap_per_scan");
    params.report_threshold = getIntField(env, settings, "report_threshold");

    ALOGD("Initialized common fields %d, %d, %d", params.base_period,
            params.max_ap_per_scan, params.report_threshold);

    const char *bucket_array_type = "[Lcom/android/server/wifi/WifiNative$BucketSettings;";
    const char *channel_array_type = "[Lcom/android/server/wifi/WifiNative$ChannelSettings;";

    jobjectArray buckets = (jobjectArray)getObjectField(env, settings, "buckets", bucket_array_type);
    params.num_buckets = getIntField(env, settings, "num_buckets");

    ALOGD("Initialized num_buckets to %d", params.num_buckets);

    for (int i = 0; i < params.num_buckets; i++) {
        jobject bucket = getObjectArrayField(env, settings, "buckets", bucket_array_type, i);

        params.buckets[i].bucket = getIntField(env, bucket, "bucket");
        params.buckets[i].band = (wifi_band) getIntField(env, bucket, "band");
        params.buckets[i].period = getIntField(env, bucket, "period_ms");

        ALOGD("Initialized common bucket fields %d:%d:%d", params.buckets[i].bucket,
                params.buckets[i].band, params.buckets[i].period);

        int report_events = getIntField(env, bucket, "report_events");
        params.buckets[i].report_events = report_events;

        ALOGD("Initialized report events to %d", params.buckets[i].report_events);

        jobjectArray channels = (jobjectArray)getObjectField(
                env, bucket, "channels", channel_array_type);

        params.buckets[i].num_channels = getIntField(env, bucket, "num_channels");
        ALOGD("Initialized num_channels to %d", params.buckets[i].num_channels);

        for (int j = 0; j < params.buckets[i].num_channels; j++) {
            jobject channel = getObjectArrayField(env, bucket, "channels", channel_array_type, j);

            params.buckets[i].channels[j].channel = getIntField(env, channel, "frequency");
            params.buckets[i].channels[j].dwellTimeMs = getIntField(env, channel, "dwell_time_ms");

            bool passive = getBoolField(env, channel, "passive");
            params.buckets[i].channels[j].passive = (passive ? 1 : 0);

            ALOGD("Initialized channel %d", params.buckets[i].channels[j].channel);
        }
    }

    ALOGD("Initialized all fields");

    wifi_scan_result_handler handler;
    memset(&handler, 0, sizeof(handler));
    handler.on_scan_results_available = &onScanResultsAvailable;
    handler.on_full_scan_result = &onFullScanResult;
    handler.on_scan_event = &onScanEvent;

    return wifi_start_gscan(id, handle, params, handler) == WIFI_SUCCESS;
}
Example #3
0
BOOL CppSQLite3Query::getBoolField(const CString& szField, BOOL bNullValue/*=FALSE*/)
{
	int nField = fieldIndex(szField);
    return getBoolField(nField, bNullValue);
}