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(¶ms, 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; }
BOOL CppSQLite3Query::getBoolField(const CString& szField, BOOL bNullValue/*=FALSE*/) { int nField = fieldIndex(szField); return getBoolField(nField, bNullValue); }