/* * EPP timeout, according to the PC87332 manual * Semantics of clearing EPP timeout bit. * PC87332 - reading SPP_STR does it... * SMC - write 1 to EPP timeout bit XXX * Others - (?) write 0 to EPP timeout bit */ static void ppc_reset_epp_timeout(struct ppc_data *ppc) { register char r; r = r_str(ppc); w_str(ppc, r | 0x1); w_str(ppc, r & 0xfe); return; }
int Preprocessor::crop(){ string src = para.crop_src; string dst = para.crop_dst; unsigned int crop_x = para.crop_x; unsigned int crop_y = para.crop_y; unsigned int crop_w = para.crop_w; unsigned int crop_h = para.crop_h; unsigned int serial_beg = para.serial_beg; unsigned int serial_end = para.serial_end; unsigned int thread_num = para.thread_num; string in_pre = para.crop_in_pre; string in_post = para.crop_in_post; string out_pre = para.crop_out_pre; string out_post = para.crop_out_post; unsigned int image_depth = para.image_depth; unsigned int serial_bits = para.serial_bits; string sys_del = para.sys_del; string x_str(""), y_str(""), w_str(""), h_str(""); stringstream str_buffer; str_buffer<<crop_x; str_buffer>>x_str; str_buffer.clear(); str_buffer<<crop_y; str_buffer>>y_str; str_buffer.clear(); str_buffer<<crop_w; str_buffer>>w_str; str_buffer.clear(); str_buffer<<crop_h; str_buffer>>h_str; str_buffer.clear(); cv::Rect roi(crop_x, crop_y, crop_w, crop_h); #pragma omp parallel for num_threads(thread_num) for(int serial_num = int(serial_beg); serial_num <= int(serial_end); ++ serial_num){ cv::Mat out_image, in_image; stringstream tmp_strBuffer; string serial_str, out_name, image_path; tmp_strBuffer<<setw(serial_bits)<<setfill('0')<<serial_num; tmp_strBuffer>>serial_str; tmp_strBuffer.clear(); cout<<serial_str<<" "<<omp_get_thread_num()<<endl; image_path = src + sys_del + in_pre + serial_str + in_post; in_image = cv::imread(image_path, CV_LOAD_IMAGE_UNCHANGED); if(!in_image.data){ cout<<image_path<<" Loaded Error!"<<endl; continue; } if(crop_x < 0 || crop_x + crop_w > in_image.size().width || crop_y < 0 || crop_y + crop_h > in_image.size().height){ cout<<"Out of Range Error!"<<endl; continue; } out_image = cv::Mat(in_image, roi); out_name = dst + sys_del + out_pre + serial_str + "_x" + x_str + "_y" + y_str + "_w" + w_str + "_h" +h_str + out_post; cout<<out_name<<endl; cv::imwrite(out_name, out_image); } return 0; }
std::wstring hyperloop::getWString(JSStringRef sValue) { size_t sLength = JSStringGetMaximumUTF8CStringSize(sValue); char* cValue = new char[sLength]; JSStringGetUTF8CString(sValue, cValue, sLength); std::string s_str = cValue; std::wstring w_str(s_str.begin(), s_str.end()); return w_str; }
Platform::String^ Utils::getPlatformString(JSStringRef sValue) { size_t sLength = JSStringGetMaximumUTF8CStringSize(sValue); char* cValue = new char[sLength]; JSStringGetUTF8CString(sValue, cValue, sLength); std::string s_str = cValue; std::wstring w_str(s_str.begin(), s_str.end()); return ref new Platform::String(w_str.c_str()); }
const TCHAR* String::t_str() const { #if !defined(_UNICODE) return c_str(); #else return w_str(); #endif }
/** * putString */ JSValueRef putStringForJSBuffer (JSContextRef ctx, JSObjectRef function, JSObjectRef object, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception) { BUFFER(buffer); ARGCOUNTMIN(1); auto string = HyperloopToString(ctx,arguments[0]); if (string!=nullptr) { std::wstring w_str(string->Begin()); std::string s_str(w_str.begin(), w_str.end()); const char *copy = s_str.c_str(); size_t length = strlen(copy); CHECK_SIZE_AND_GROW(length,0); memcpy(buffer->buffer,copy,length); } return JSValueMakeUndefined(ctx); }
u_char ppc_io(device_t ppcdev, int iop, u_char *addr, int cnt, u_char byte) { struct ppc_data *ppc = DEVTOSOFTC(ppcdev); switch (iop) { case PPB_OUTSB_EPP: bus_space_write_multi_1(ppc->bst, ppc->bsh, PPC_EPP_DATA, addr, cnt); break; case PPB_OUTSW_EPP: bus_space_write_multi_2(ppc->bst, ppc->bsh, PPC_EPP_DATA, (u_int16_t *)addr, cnt); break; case PPB_OUTSL_EPP: bus_space_write_multi_4(ppc->bst, ppc->bsh, PPC_EPP_DATA, (u_int32_t *)addr, cnt); break; case PPB_INSB_EPP: bus_space_read_multi_1(ppc->bst, ppc->bsh, PPC_EPP_DATA, addr, cnt); break; case PPB_INSW_EPP: bus_space_read_multi_2(ppc->bst, ppc->bsh, PPC_EPP_DATA, (u_int16_t *)addr, cnt); break; case PPB_INSL_EPP: bus_space_read_multi_4(ppc->bst, ppc->bsh, PPC_EPP_DATA, (u_int32_t *)addr, cnt); break; case PPB_RDTR: return (r_dtr(ppc)); case PPB_RSTR: return (r_str(ppc)); case PPB_RCTR: return (r_ctr(ppc)); case PPB_REPP_A: return (r_epp_A(ppc)); case PPB_REPP_D: return (r_epp_D(ppc)); case PPB_RECR: return (r_ecr(ppc)); case PPB_RFIFO: return (r_fifo(ppc)); case PPB_WDTR: w_dtr(ppc, byte); break; case PPB_WSTR: w_str(ppc, byte); break; case PPB_WCTR: w_ctr(ppc, byte); break; case PPB_WEPP_A: w_epp_A(ppc, byte); break; case PPB_WEPP_D: w_epp_D(ppc, byte); break; case PPB_WECR: w_ecr(ppc, byte); break; case PPB_WFIFO: w_fifo(ppc, byte); break; default: panic("%s: unknown I/O operation", __func__); break; } return (0); /* not significative */ }
std::wstring ToWString(const std::string &str) { std::wstring w_str(str.length(), L' '); std::copy(str.begin(), str.end(), w_str.begin()); return w_str; }