void MdispGtkView::GraphicsAnnotations( bool on ) { if(m_MilDisplay) { m_isGraphicsAnnotationsEnabled = on; if(m_isGraphicsAnnotationsEnabled) { if(!m_MilGraphContext && !m_MilGraphList) { MIL_INT BufSizeX = 0, BufSizeY = 0; MIL_INT LogoCellSize = 12; MIL_INT LogoSize = 6 * LogoCellSize; MIL_INT Offset = 10; MgraAlloc(((MdispGtkApp*)dispGtkApp())->m_MilSystem, &m_MilGraphContext); MgraAllocList(((MdispGtkApp*)dispGtkApp())->m_MilSystem, M_DEFAULT, &m_MilGraphList); MdispControl(m_MilDisplay, M_DISPLAY_GRAPHIC_LIST, m_MilGraphList); MdispControl(m_MilDisplay, M_UPDATE_GRAPHIC_LIST, M_DISABLE); MbufInquire(m_MilImage, M_SIZE_X, &BufSizeX); MbufInquire(m_MilImage, M_SIZE_Y, &BufSizeY); MgraClear(m_MilGraphContext, m_MilGraphList); GraphicLogo(Offset , Offset , LogoCellSize); GraphicLogo(BufSizeX - (LogoSize/2), Offset , LogoCellSize); GraphicLogo(Offset , BufSizeY + Offset, LogoCellSize); MgraColor(m_MilGraphContext, M_COLOR_LIGHT_BLUE); MgraLine(m_MilGraphContext, m_MilGraphList, Offset + (LogoSize/2), Offset + LogoSize, Offset + LogoSize/2, BufSizeY + Offset); MgraLine(m_MilGraphContext, m_MilGraphList, Offset + LogoSize, Offset + (LogoSize/2), BufSizeX - (LogoSize/2), Offset + (LogoSize/2)); MgraColor(m_MilGraphContext, M_COLOR_GRAY); MgraText(m_MilGraphContext, m_MilGraphList, Offset, (2*Offset)+LogoSize, MT("Mil Graphic")); MgraText(m_MilGraphContext, m_MilGraphList, Offset, (4*Offset)+LogoSize, MT("Annotations")); MdispControl(m_MilDisplay, M_UPDATE_GRAPHIC_LIST, M_ENABLE); } } else { MdispControl(m_MilDisplay, M_DISPLAY_GRAPHIC_LIST, M_NULL); if(m_MilGraphList) { MgraFree(m_MilGraphList); m_MilGraphList = M_NULL; } if(m_MilGraphContext) { MgraFree(m_MilGraphContext); m_MilGraphContext = M_NULL; } } } }
// A similar version is used in VDR/tools.c: static int Utf8CharLen(const char *s) { if (SystemCharacterTableIsSingleByte) return 1; #define MT(s, m, v) ((*(s) & (m)) == (v)) // Mask Test if (MT(s, 0xE0, 0xC0) && MT(s + 1, 0xC0, 0x80)) return 2; if (MT(s, 0xF0, 0xE0) && MT(s + 1, 0xC0, 0x80) && MT(s + 2, 0xC0, 0x80)) return 3; if (MT(s, 0xF8, 0xF0) && MT(s + 1, 0xC0, 0x80) && MT(s + 2, 0xC0, 0x80) && MT(s + 3, 0xC0, 0x80)) return 4; return 1; }
int MMT(double* X, double* Y, double* K, int numProcs, int myID) { double* temBuf = new double[TOT]; MT(X, temBuf, K, numProcs, myID); M(temBuf, Y, K, numProcs, myID); delete [] temBuf; return 1; }
AnyTensor AnyTensor::vertcat(const std::vector<AnyScalar>& v) { switch (AnyScalar::type(v)) { case TENSOR_DOUBLE: return DT(AnyScalar::as_double(v), {static_cast<int>(v.size())}); case TENSOR_SX: return ST(SX::vertcat(AnyScalar::as_SX(v)), {static_cast<int>(v.size())}); case TENSOR_MX: return MT(MX::vertcat(AnyScalar::as_MX(v)), {static_cast<int>(v.size())}); default: tensor_assert(false); return DT(); } }
void Mouse::Update(void) { // Update Pos POINT MousePos = Manager::GetInput()->GetMousePos(); m_MouseEffect->SetPos(D3DXVECTOR3((float)MousePos.x, (float)MousePos.y, 0.0f)); // Random Color std::random_device Random; // 非決定的な乱数生成器を生成 std::mt19937 MT(Random()); // メルセンヌ・ツイスタの32ビット版、引数は初期シード値 std::uniform_int_distribution<> RandomColor(0, 100); // m_MouseEffect->SetCol(D3DXCOLOR(RandomColor(MT) * 0.01f, RandomColor(MT) * 0.01f, RandomColor(MT) * 0.01f, 1.0f)); }
int FermionForce(double* X1, double* X2, double* Phi1, double* Phi2, double* F, double* K, int numProcs, int myID) { int length = TOT/numProcs; int myLag = myID*length; double* myArray = new double[length]; double* Y1 = new double[TOT]; double* Y2 = new double[TOT]; double* temBuf = new double[TOT]; int flag; flag = CG(Phi1, X1, K, numProcs, myID); if(!flag) { return 0; } MT(X1, Y1, K, numProcs, myID); T(Y1, temBuf, K, numProcs, myID); MPI_Subtract(Y1, temBuf, Y1, numProcs, myID); flag = CG(Phi2, X2, K, numProcs, myID); if(!flag) { return 0; } MT(X2, Y2, K, numProcs, myID); T(Y2, temBuf, K, numProcs, myID); MPI_Subtract(Y2, temBuf, Y2, numProcs, myID); for(int i = 0; i<length; i++) { int index = myLag+i; myArray[i] = -K[index]+2*U_hat_sq*(X1[index]*Y1[index]+X2[index]*Y2[index]); } MPI_Barrier(MPI_COMM_WORLD); MPI_Allgather(myArray, length, MPI_DOUBLE, F, length, MPI_DOUBLE, MPI_COMM_WORLD); delete [] myArray; delete [] Y1; delete [] Y2; delete [] temBuf; return 1; }
int main(void) { OCI_Connection *cn; OCI_Statement *st; int res = 0; if (!OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT)) return EXIT_FAILURE; cn = OCI_ConnectionCreate("db", "usr", "pwd", OCI_SESSION_DEFAULT); st = OCI_StatementCreate(cn); /* pl/sql call */ OCI_Prepare(st, MT("begin :res := trunc(sysdate+1)-trunc(sysdate-1); end;")); OCI_BindInt(st, MT(":res"), &res); OCI_Execute(st); printf("result : %i\n", res); OCI_Cleanup(); return EXIT_SUCCESS; }
int power_eigensolution(const MT& Ap, MT& Q, MT& L, unsigned int max_sol) { L = MT(0); typedef typename MT::VectorType VT; MT A = Ap; unsigned int n = s_min(MT::get_v_dim(), max_sol); for(unsigned int i=0;i<n;++i) { // Seed the eigenvector estimate VT q(1); q.normalize(); double l=123,l_old; // As long as we haven't reached the max iterations and the // eigenvalue has not converged, do unsigned int k=0; do { const VT z = A * q; double z_len = length(z); if(z_len < EV_THRESH) return i; l_old = l; l = dot(q, z)>0 ? z_len : -z_len; q = z/z_len; if(++k==KMAX) return i; } while((fabs(l-l_old) > fabs(EV_THRESH * l)) || k<2); // Update the solution by adding the eigenvector to Q and // the eigenvalue to the diagonal of L. Q[i] = q; L[i][i] = l; // Update A by subtracting the subspace represented by the // eigensolution just found. This is called the method of // deflation. MT B; outer_product(q,q,B); A = A - l * B; } return n; }
AnyTensor::AnyTensor(const AnyScalar& s) : data_double(0), data_sx(0), data_mx(0) { t = s.type(); switch (t) { case TENSOR_DOUBLE: data_double = DT(s.as_double(), {1}); break; case TENSOR_SX: data_sx = ST(s.as_SX(), {1}); break; case TENSOR_MX: data_mx = MT(s.as_MX(), {1}); break; default: tensor_assert(false); } }
void denglu(void) { for(int i=0;i<3;i++) { sen.pro = 0; system("clear"); printf("---------MT登录---------\n\n"); printf("\n请输入您的账号:"); //或ID memset(sen.I_name,32,0); fgets(sen.I_name,32,stdin); sen.I_name[strlen(sen.I_name)-1] = '\0'; if(strlen(sen.I_name) > 16) { continue; } strcpy(USER.username,sen.I_name);//保存在信息里 printf("请输入您的密码:"); system("stty -echo"); memset(sen.Y_name,32,0); fgets(sen.Y_name,32,stdin); sen.Y_name[strlen(sen.Y_name)-1] = '\0'; system("stty echo"); if(strlen(sen.Y_name) > 16) { continue; } sen.pro = 2; send(fd,&sen,len_data,0); printf("\n登录中......\n"); sleep(1); if(strcmp(rec.message,"1") == 0) { memset(rec.message,0,256); MT(); i=-1; } } }
* ,-----------------------------------------------------------. * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| `|BSp| * |-----------------------------------------------------------| * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| * |-----------------------------------------------------------| * |Contro| A| S| D| F| G| H| J| K| L| ;| '|Enter | * |-----------------------------------------------------------| * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn0| * |-----------------------------------------------------------' * | |Gui|Alt | Space |Alt |Gui| | | * `-----------------------------------------------------------' */ [0] = KEYMAP( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSLS,KC_GRV, \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSPC, \ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(3, KC_SCLN), KC_QUOT,MT(KC_RCTL, KC_ENT), \ OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, LT(2, KC_SLSH), KC_RSFT,TG(1), \ KC_NO, KC_LGUI,KC_LALT, LT(4, KC_SPC), MO(4), KC_RGUI,KC_NO, KC_NO), /* Layer 1: HHKB mode (HHKB Fn) * ,-----------------------------------------------------------. * |Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| * |-----------------------------------------------------------| * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Backs| * |-----------------------------------------------------------| * | |VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter | * |-----------------------------------------------------------| * | | | | | | | +| -|End|PgD|Dow| | | * `-----------------------------------------------------------' * | |Gui|Alt | Space |Alt |Gui| | | * `-----------------------------------------------------------'
/* psz the population size n the generations number to run pc the cross over probability pm the mutation probability */ chro_ptr ga(mic_matrix M,int psz,int n,float pc,float pm) { srand((double)time(NULL)); population pop; pop.n=psz; pop.acu=(float*)malloc(sizeof(float)*pop.n); if(pop.acu==NULL) { puts("GA acu memory error!"); exit(1); } int i=0; for(i=0;i<pop.n;i++) { pop.acu[i]=0; } pop.pc=pc; pop.pm=pm; ini_pop(M,&pop); population *S=ini_tmpop(pop); int T=pop.n; int Gn=0; int N=n; do {//代数不够或者没达到最优解 //#define check_ga #ifdef check_ga printf("The %d generation's best %f.\n",Gn,pop.m[0].sig); #endif int n=0; cal_acu(&pop); do {//种群的成员数不够 chro_ptr father=sel_one(pop); chro_ptr mother=sel_one(pop); cpy_chro(father,&(S->m[n])); cpy_chro(mother,&(S->m[n+1])); if(CY(pop)) { cross_over(&(S->m[n]),&(S->m[n+1])); } if(MT(pop)) { mutation(&(S->m[n])); } if(MT(pop)) { mutation(&(S->m[n+1])); } n+=2; }while(n<T); update_pop(S,M); elitist_sel(&pop,S); }while(++Gn<N); chro_ptr bst=(chro_ptr)malloc(sizeof(chrosome)); bst->l=pop.m[0].l; bst->chro=(int *)malloc(sizeof(int)*(bst->l)); cpy_chro(&(pop.m[0]),bst); brk_pop(&pop); brk_pop(S); return bst; }
OCI_EXPORT boolean OCI_API OCI_DequeueSubscribe ( OCI_Dequeue *dequeue, unsigned int port, unsigned int timeout, POCI_NOTIFY_AQ callback ) { boolean res = TRUE; ub4 oci_namespace = OCI_SUBSCR_NAMESPACE_AQ; #if OCI_VERSION_COMPILE >= OCI_10_2 ub4 oci_port = (ub4) port; ub4 oci_timeout = (ub4) timeout; ub4 oci_protocol = OCI_SUBSCR_PROTO_OCI; ub4 oci_msgpres = OCI_SUBSCR_PRES_DEFAULT; #endif OCI_Connection *con = NULL; OCI_CHECK_INITIALIZED(FALSE); OCI_CHECK_DATABASE_NOTIFY_ENABLED(FALSE); OCI_CHECK_PTR(OCI_IPC_DEQUEUE, dequeue, FALSE); con = dequeue->typinf->con; /* clear any previous subscription */ OCI_DequeueUnsubscribe(dequeue); /* allocate subcription handle */ res = (OCI_SUCCESS == OCI_HandleAlloc(con->env, (dvoid **) (void *) &dequeue->subhp, OCI_HTYPE_SUBSCRIPTION, (size_t) 0, (dvoid **) NULL)); #if OCI_VERSION_COMPILE >= OCI_10_2 /* set port number */ if (oci_port > 0) { OCI_CALL3 ( res, con->err, OCIAttrSet((dvoid *) dequeue->subhp, (ub4) OCI_HTYPE_SUBSCRIPTION, (dvoid *) &oci_port, (ub4) sizeof (oci_port), (ub4) OCI_ATTR_SUBSCR_PORTNO, con->err) ) } /* set timeout */ if (oci_timeout > 0) { OCI_CALL3 ( res, con->err, OCIAttrSet((dvoid *) dequeue->subhp, (ub4) OCI_HTYPE_SUBSCRIPTION, (dvoid *) &oci_timeout, (ub4) sizeof (oci_timeout), (ub4) OCI_ATTR_SUBSCR_TIMEOUT, con->err) ) } /* set protocol */ OCI_CALL3 ( res, con->err, OCIAttrSet((dvoid *) dequeue->subhp, (ub4) OCI_HTYPE_SUBSCRIPTION, (dvoid *) &oci_protocol, (ub4) sizeof(oci_protocol), (ub4) OCI_ATTR_SUBSCR_RECPTPROTO, con->err) ) /* set presentation */ OCI_CALL3 ( res, con->err, OCIAttrSet((dvoid *) dequeue->subhp, (ub4) OCI_HTYPE_SUBSCRIPTION, (dvoid *) &oci_msgpres, (ub4) sizeof(oci_msgpres), (ub4) OCI_ATTR_SUBSCR_RECPTPRES, con->err) ) #else OCI_NOT_USED(port); OCI_NOT_USED(timeout); #endif /* set name */ if (dequeue->name != NULL) { /* for AQ subscription, the name should be "[shema.]queue[:consumer]" */ mtext buffer[(OCI_SIZE_OBJ_NAME*2) + 2] = MT(""); mtext *str = NULL; size_t size = sizeof(buffer)/sizeof(mtext); void *ostr = NULL; int osize = -1; mtsncat(buffer, dequeue->name, size); if (dequeue->consumer != NULL) { size -= mtslen(dequeue->name); mtsncat(buffer, MT(":"), size); size -= (size_t) 1; mtsncat(buffer, dequeue->consumer, size); } /* queue name must be uppercase */ for (str = buffer; *str != 0; str++) { *str = (mtext) mttoupper(*str); } ostr = OCI_GetInputMetaString(buffer, &osize); OCI_CALL3 ( res, con->err, OCIAttrSet((dvoid *) dequeue->subhp, (ub4) OCI_HTYPE_SUBSCRIPTION, (dvoid *) ostr, (ub4) osize, (ub4) OCI_ATTR_SUBSCR_NAME, con->err) ) OCI_ReleaseMetaString(ostr); } /* set namespace */ OCI_CALL3 ( res, con->err, OCIAttrSet((dvoid *) dequeue->subhp, (ub4) OCI_HTYPE_SUBSCRIPTION, (dvoid *) &oci_namespace, (ub4) sizeof(oci_namespace), (ub4) OCI_ATTR_SUBSCR_NAMESPACE, con->err) ) /* set context pointer to dequeue structure */ OCI_CALL3 ( res, con->err, OCIAttrSet((dvoid *) dequeue->subhp, (ub4) OCI_HTYPE_SUBSCRIPTION, (dvoid *) dequeue, (ub4) 0, (ub4) OCI_ATTR_SUBSCR_CTX, con->err) ) /* internal callback handler */ OCI_CALL3 ( res, con->err, OCIAttrSet((dvoid *) dequeue->subhp, (ub4) OCI_HTYPE_SUBSCRIPTION, (dvoid *) OCI_ProcNotifyMessages, (ub4) 0, (ub4) OCI_ATTR_SUBSCR_CALLBACK, con->err) ) /* all attributes set, let's register the subscription ! */ OCI_CALL3 ( res, con->err, OCISubscriptionRegister(con->cxt, &dequeue->subhp, (ub2) 1, con->err,(ub4) OCI_DEFAULT) ) /* set callback on success */ if (res) { dequeue->callback = callback; } else { /* clear subscription on failure */ OCI_DequeueUnsubscribe(dequeue); } OCI_RESULT(res); return res; }
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BL] = LAYOUT_625_space( LT(OSL(2), KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, GUI_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(3, KC_ENT), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, TD(TD_DOTCOM), OSL(2), OSM(MOD_RSFT), KC_ESC, KC_LALT, KC_LCTL, KC_SPC, KC_RGUI, RGB_TOG), [_WIN] = LAYOUT_625_space( LT(OSL(2), KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(3, KC_ENT), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, TD(TD_DOTCOM), OSL(2), OSM(MOD_RSFT), KC_ESC, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, RGB_TOG), [_FN1] = LAYOUT_625_space( KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, GUI_T(KC_ESC), KC_PGUP, KC_VOLU, KC_DEL, KC_TRNS, KC_BSLS, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_TRNS, KC_LSFT, KC_PGDN, KC_VOLD, BL_STEP, BL_TOGG, KC_SCLN, KC_QUOT, KC_SLSH, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), [_FN2] = LAYOUT_625_space( KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, RESET, MT(KC_LGUI, KC_ESC), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TG(1), KC_TRNS, KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), };
it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include "pearl.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = KEYMAP( KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_BSPC, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, MT(MOD_LSFT, KC_CAPS), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LCTL, KC_LALT, KC_LGUI, KC_LSFT, KC_SPC, KC_SPC, KC_APP, MO(1) ), [1] = KEYMAP( KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, KC_SLEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_QUOT, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, RGB_MOD, BL_TOGG, KC_LGUI, KC_LSFT, KC_SPC, KC_SPC, KC_APP, KC_TRNS ), };
// M60-A layout #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Vim layer (Default) [0] = LAYOUT_60_hhkb( KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_ESC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, MT(MOD_LCTL, KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LALT, KC_LGUI, LT(1, KC_SPC), DF(2), MO(1)), // Extra Function Layer [1] = LAYOUT_60_hhkb( XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MNXT, KC_MPLY, KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, XXXXXXX, XXXXXXX, XXXXXXX, KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LEFT, KC_RGHT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MO(3)), // Gamer Layer [2] = LAYOUT_60_hhkb( KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_ESC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LALT, KC_LGUI, KC_SPC, DF(0), MO(1)), // Board config Layer (zeal60 Configuration) [3] = LAYOUT_60_hhkb(
* | | |F4/CA | |F11/CA| | | * | ENTER| TAB |------| |------| BSPC | SPACE| * | | | F3 | |F12/RALT| | | * `--------------------' `----------------------' * CAG = CTRL-ALT-GUI * CA = CTRL-ALT * SA = SHIFT-ALT * */ [BASE] = KEYMAP( // left hand KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NONUS_BSLASH, LT(AUX, KC_F1), KC_DOT, KC_COMM,KC_SCLN,KC_P, KC_Y, TG(NAV), CTL_T(KC_ESC), KC_A, KC_O, KC_E, KC_U, KC_I, M(OBRACE), KC_SLSH,KC_Q, KC_J, KC_K, KC_X, MEH_T(KC_DEL), M(OBRACK), KC_HOME,KC_PGDN,MT(MOD_LALT | MOD_LSFT, KC_PGUP),MT(MOD_LGUI,KC_END), LCAG_T(KC_F5), LT(AUX, KC_F6), MT(MOD_LALT | MOD_LCTL, KC_F4), KC_ENT,KC_TAB,KC_F3, // right hand KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_FN1, KC_F, KC_G, KC_C, KC_H, KC_L, ALL_T(KC_RBRACKET), KC_D, KC_R, KC_T, KC_N, KC_S, CTL_T(KC_QUOTE), LALT(KC_TAB), KC_B, KC_M, KC_W, KC_V, KC_Z, M(CBRACE), MT(MOD_LGUI,KC_LEFT),MT(MOD_LALT | MOD_LSFT, KC_DOWN),KC_UP, KC_RGHT,M(CBRACK), LT(AUX, KC_F7), LCAG_T(KC_F8), MT(MOD_LALT | MOD_LCTL, KC_F11), M(MRALT),KC_BSPC, KC_SPC ), /* Keymap 1: Aux layer *
// left hand KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_H, CTL_T(KC_GRV),KC_NUBS,KC_NO, KC_NO, KC_LALT, KC_PSCREEN, KC_PSCREEN, TO(PROG), KC_SPC, MO(NAVI), KC_LGUI, // right hand KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, KC_G, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENTER, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENTER, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_RALT,KC_LBRC,KC_RBRC,KC_NO, CTL_T(KC_QUOT), MT(0x5, KC_NO), MT(0x5, KC_NO), TO(PROG), KC_RGUI, MO(PROG), KC_SPC ), /* Keymap 1: Symbol Layer * * ,--------------------------------------------------. ,--------------------------------------------------. * | | | | | | | | | | | | K/ | K* | K- | = | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | | ! | @ | ( | ) | | | | | | | K7 | K8 | K9 | K+ | # | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | # | $ | { | } | ` |------| |------| | K4 | K5 | K6 | K+ | ' | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | % | ^ | [ | ] | ~ | | | | | K1 | K2 | K3 | K= | | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
#include "dynamic_macro.h" #include "penti.h" #include "shift_paren.h" /************************************************ * keymaps ************************************************/ const uint16_t keymaps_default[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(KEYMAP_VORTEX_CORE) /* default layer */ [0] = LAYOUT_core( KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, F(8), F(9), KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MT(MOD_RCTL,KC_ENT), F(6), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, F(7), MO(2), KC_ESC, KC_LGUI, KC_LALT, KC_BSPC, LT(3,KC_SPC), LT(3,KC_SPC), MO(1), KC_RALT, KC_APP, KC_RCTL ), /* Fn layer */ [1] = LAYOUT_core( DEBUG, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_CAPS, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT,KC_INS, KC_ENT, KC_LSFT, _______, _______, _______, _______, _______, KC_END, _______, _______, _______, KC_RSFT, _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______, _______ ), /* Fn1 layer */ [2] = LAYOUT_core( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, _______, _______, _______, _______, KC_QUOT, KC_SLSH, KC_LBRC, KC_RBRC, KC_BSLS, F(10), _______,
/* -------------- */ int MosMain(void) { MIL_ID MilApplication; MIL_ID MilSystem ; MIL_ID MilDigitizer ; MIL_ID MilDisplay ; MIL_ID MilImageDisp ; MIL_ID GrabBufferList[GRAB_BUFFER_NUMBER]; MIL_ID ProcSystemList[PROCESSING_SYSTEM_NUMBER]; MIL_ID SrcProcBufferList[BUFFER_NUMBER]; MIL_ID DstProcBufferList[BUFFER_NUMBER]; MIL_INT SizeX, SizeY, SizeBand; MIL_TEXT_CHAR SystemDescriptor[SYSTEM_DESCRIPTOR_SIZE]; long NbSystem = 0, NbSystemToAllocate = PROCESSING_SYSTEM_NUMBER; MIL_INT GrabFrameCount, n; double SingleSystemProcessingRate, MultipleSystemProcessingRate; ProcessingDataStruct ProcessingData; /* Allocations and setup. */ /* ---------------------- */ /* MIL application allocation. */ MappAlloc(M_DEFAULT, &MilApplication); /* Allocations on the default grab system. */ MsysAlloc(M_SYSTEM_DEFAULT, M_DEFAULT, M_DEFAULT, &MilSystem); MdispAlloc(MilSystem, M_DEV0, MIL_TEXT("M_DEFAULT"), M_DEFAULT, &MilDisplay); MdigAlloc(MilSystem, M_DEV0, MIL_TEXT("M_DEFAULT"), M_DEFAULT, &MilDigitizer); /* Inquire the digitizer's size. */ SizeX = ProcessingData.SizeX = (MIL_INT)(MdigInquire(MilDigitizer, M_SIZE_X, M_NULL)*BUFFER_SCALE); SizeY = ProcessingData.SizeY = (MIL_INT)(MdigInquire(MilDigitizer, M_SIZE_Y, M_NULL)*BUFFER_SCALE); SizeBand = ProcessingData.SizeBand = (MIL_INT)(MdigInquire(MilDigitizer, M_SIZE_BAND, M_NULL)); /* Allocate a display buffer and clear it. */ MbufAllocColor(MilSystem, SizeBand, SizeX, SizeY, 8L+M_UNSIGNED, M_IMAGE+M_GRAB+M_DISP, &MilImageDisp); MbufClear(MilImageDisp, 0x0); /* Display the processing result if activated (might be the limiting factor for speed). */ if (DISPLAY_EACH_IMAGE_PROCESSED) MdispSelect(MilDisplay, MilImageDisp); /* Allocate the grab buffers. */ for (n=0; n< GRAB_BUFFER_NUMBER; n++) MbufAllocColor(MilSystem, SizeBand, SizeX, SizeY, 8L+M_UNSIGNED, M_IMAGE+M_GRAB, &GrabBufferList[n]); /* Allocate and order the required processing systems. */ if (USE_GRAB_SYSTEM_AS_ONE_PROCESSOR) NbSystemToAllocate--; for (n=0; n<NbSystemToAllocate; n++) { /* Create a system descriptor: (Protocol://Address/System (Ex: dmiltcp://127.0.0.1/M_SYSTEM_HOST)) */ MosSprintf(SystemDescriptor, SYSTEM_DESCRIPTOR_SIZE, MT("%s://%s/%s"), DISTRIBUTED_MIL_PROTOCOL, SYSTEM_ADDRESSES[n], PROCESSING_SYSTEM_TYPE); /* Allocate the system. */ MsysAlloc(SystemDescriptor, M_DEFAULT, M_DEFAULT, &ProcSystemList[n]); /* Count the sucessfully allocated processing systems. */ if (ProcSystemList[n]) NbSystem++; } /* If the grab system is used to process, we add it at the end of the processing system list . This permits to dispatch the job to the other remote systems before to use the grab system itself to process synchronously. */ if (USE_GRAB_SYSTEM_AS_ONE_PROCESSOR) { ProcSystemList[NbSystem] = MilSystem; NbSystem++; } /* Allocate and order the source and destination processing buffers alternating the target system. */ for (n=0; n<(NbSystem*BUFFER_PER_PROCESSOR); n++) { MbufAllocColor(ProcSystemList[n%NbSystem], SizeBand, SizeX, SizeY, 8L+M_UNSIGNED, M_IMAGE+M_PROC, &SrcProcBufferList[n]); MbufAllocColor(ProcSystemList[n%NbSystem], SizeBand, SizeX, SizeY, 8L+M_UNSIGNED, M_IMAGE+M_PROC, &DstProcBufferList[n]); } /* Set the specified grab scale. */ MdigControl(MilDigitizer, M_GRAB_SCALE, BUFFER_SCALE); /* Single system processing. */ /* ------------------------- */ /* Print a message. */ /* Print a message. */ MosPrintf(MIL_TEXT("\nDISTRIBUTED MIL PROCESSING:\n")); MosPrintf(MIL_TEXT("---------------------------\n\n")); MosPrintf(MIL_TEXT("1 System processing:\n")); /* Initialize processing variables. */ ProcessingData.NbSystem = 1; ProcessingData.ProcessEachImageOnAllSystems = M_NO; ProcessingData.NbProc = 0; ProcessingData.MilDigitizer = MilDigitizer; ProcessingData.DispBuffer = MilImageDisp; ProcessingData.SrcProcBufferListPtr = SrcProcBufferList; ProcessingData.DstProcBufferListPtr = DstProcBufferList; /* Start processing the buffers. */ MdigProcess(MilDigitizer, GrabBufferList, GRAB_BUFFER_NUMBER, M_START, M_DEFAULT, ProcessingFunction, &ProcessingData); /* Wait for a key and stop the processing. */ MosPrintf(MIL_TEXT("Press <Enter> to stop.\n\n")); MosGetch(); MdigProcess(MilDigitizer, GrabBufferList, GRAB_BUFFER_NUMBER, M_STOP+M_WAIT, M_DEFAULT, ProcessingFunction, &ProcessingData); /* Print statistics. */ if (ProcessingData.NbProc != 0) { SingleSystemProcessingRate = ProcessingData.NbProc/ProcessingData.Time; MdigInquire(MilDigitizer, M_PROCESS_FRAME_COUNT, &GrabFrameCount); MosPrintf(MIL_TEXT("%ld Frames grabbed, %ld Frames processed at %.1f frames/sec (%.1f ms/frame).\n"), GrabFrameCount, ProcessingData.NbProc, SingleSystemProcessingRate, 1000.0/SingleSystemProcessingRate); } else MosPrintf(MIL_TEXT("No frame has been grabbed.\n")); MosPrintf(MIL_TEXT("Press <Enter> to continue.\n\n")); MosGetch(); /* Multiple systems processing. */ /* ---------------------------- */ /* Print a message. */ MosPrintf(MIL_TEXT("%ld Systems processing:\n"), NbSystem); /* Halt continuous grab. */ MdigHalt(MilDigitizer); /* Initialize processing variables. */ ProcessingData.NbSystem = NbSystem; ProcessingData.ProcessEachImageOnAllSystems = PROCESS_EACH_IMAGE_ON_ALL_SYSTEMS; ProcessingData.NbProc = 0; ProcessingData.DispBuffer = MilImageDisp; ProcessingData.SrcProcBufferListPtr = SrcProcBufferList; ProcessingData.DstProcBufferListPtr = DstProcBufferList; /* Start processing the buffers. */ MdigProcess(MilDigitizer, GrabBufferList, GRAB_BUFFER_NUMBER, M_START, M_DEFAULT, ProcessingFunction, &ProcessingData); /* Wait for a key and stop the processing. */ MosPrintf(MIL_TEXT("Press <Enter> to stop.\n\n")); MosGetch(); MdigProcess(MilDigitizer, GrabBufferList, GRAB_BUFFER_NUMBER, M_STOP+M_WAIT, M_DEFAULT, ProcessingFunction, &ProcessingData); /* Print statistics. */ if (ProcessingData.NbProc != 0) { MultipleSystemProcessingRate = ProcessingData.NbProc/ProcessingData.Time; MdigInquire(MilDigitizer, M_PROCESS_FRAME_COUNT, &GrabFrameCount); MosPrintf(MIL_TEXT("%ld Frames grabbed, %ld Frames processed at %.1f frames/sec (%.1f ms/frame).\n\n"), GrabFrameCount, ProcessingData.NbProc, MultipleSystemProcessingRate, 1000.0/MultipleSystemProcessingRate); MosPrintf(MIL_TEXT("Speedup factor: %.1f.\n\n"),MultipleSystemProcessingRate/SingleSystemProcessingRate); if (DISPLAY_EACH_IMAGE_PROCESSED && ((long)((MultipleSystemProcessingRate/SingleSystemProcessingRate)+0.1) < NbSystem)) MosPrintf(MIL_TEXT("Warning: Display might limit the processing speed. Disable it and retry.\n\n")); } else MosPrintf(MIL_TEXT("No frame has been grabbed.\n")); MosPrintf(MIL_TEXT("Press <Enter> to end.\n\n")); MosGetch(); /* Free allocations. */ /* ----------------- */ for (n=0; n<GRAB_BUFFER_NUMBER; n++) MbufFree(GrabBufferList[n]); for (n=0; n<BUFFER_NUMBER; n++) { MbufFree(SrcProcBufferList[n]); MbufFree(DstProcBufferList[n]); } if (USE_GRAB_SYSTEM_AS_ONE_PROCESSOR) NbSystem--; for (n=0; n<NbSystem; n++) MsysFree(ProcSystemList[n]); MbufFree(MilImageDisp); MdispFree(MilDisplay); MdigFree(MilDigitizer); MsysFree(MilSystem); MappFree(MilApplication); return 0; }
/* Headers. */ #include <mil.h> /* Processing systems specification. */ #define PROCESSING_SYSTEM_TYPE M_SYSTEM_HOST /* Target system type for the processing. */ #define PROCESSING_SYSTEM_NUMBER 2 /* Number of processing system (Maximum 16, see SYSTEM_ADDRESSES). */ #define USE_GRAB_SYSTEM_AS_ONE_PROCESSOR M_YES /* Use the grabbing system as one of the processing system. */ #define PROCESS_EACH_IMAGE_ON_ALL_SYSTEMS M_YES /* Force each grabbed image to be processed by all the systems. */ #define DISPLAY_EACH_IMAGE_PROCESSED M_YES /* Force each processed image to be displayed (might affect frame rate). */ /* Protocol used by Distributed MIL for inter-systems communication. */ #define DISTRIBUTED_MIL_PROTOCOL M_DMILTCP_TRANSPORT_PROTOCOL /* IP addresses of the slave processing systems (Local DMIL systems = 127.0.0.1) */ const MIL_TEXT_CHAR* SYSTEM_ADDRESSES[] = { MT("127.0.0.1"), MT("127.0.0.1"), MT("127.0.0.1"), MT("127.0.0.1"), MT("127.0.0.1"), MT("127.0.0.1"), MT("127.0.0.1"), MT("127.0.0.1"), MT("127.0.0.1"), MT("127.0.0.1"), MT("127.0.0.1"), MT("127.0.0.1"), MT("127.0.0.1"), MT("127.0.0.1"), MT("127.0.0.1"), MT("127.0.0.1") }; #define SYSTEM_DESCRIPTOR_SIZE 512 /* Processing buffers specification. */ #define BUFFER_PER_PROCESSOR 2 #define BUFFER_NUMBER (PROCESSING_SYSTEM_NUMBER * BUFFER_PER_PROCESSOR) #define BUFFER_SCALE 1.0 #define BUFFER_MAX_STRING_LENGTH 80
AnyTensor::operator MT() const { if (t==TENSOR_DOUBLE) return MT(data_double); tensor_assert(t==TENSOR_MX); return data_mx; }
OCI_Pool * OCI_API OCI_PoolCreate ( const mtext *db, const mtext *user, const mtext *pwd, unsigned int type, unsigned int mode, unsigned int min_con, unsigned int max_con, unsigned int incr_con ) { OCI_Pool *pool = NULL; OCI_Item *item = NULL; boolean res = TRUE; OCI_CHECK_MIN(NULL, NULL, max_con, 1, NULL); /* let's be sure OCI_Initialize() has been called */ OCI_CHECK_INITIALIZED(NULL); /* make sure that we do not have a XA session flag */ mode &= ~OCI_SESSION_XA; /* create pool object */ item = OCI_ListAppend(OCILib.pools, sizeof(*pool)); if (item != NULL) { pool = (OCI_Pool *) item->data; /* create internal lists */ pool->cons = OCI_ListCreate(OCI_IPC_CONNECTION); if (OCI_LIB_THREADED) { /* create mutex for OCI_PoolGetConnection() */ pool->mutex = OCI_MutexCreateInternal(); res = (pool->mutex != NULL); } } else { res = FALSE; } /* set attributes */ if (res == TRUE) { pool->mode = mode; pool->min = min_con; pool->max = max_con; pool->incr = incr_con; pool->db = mtsdup(db != NULL ? db : MT("")); pool->user = mtsdup(user != NULL ? user : MT("")); pool->pwd = mtsdup(pwd != NULL ? pwd : MT("")); } #if OCI_VERSION_COMPILE < OCI_9_2 type = OCI_POOL_CONNECTION; #endif #if OCI_VERSION_COMPILE >= OCI_9_0 if (res == TRUE) { if (type == OCI_POOL_CONNECTION) { pool->htype = OCI_HTYPE_CPOOL; } #if OCI_VERSION_COMPILE >= OCI_9_2 else { pool->htype = OCI_HTYPE_SPOOL; } #endif } if (OCILib.version_runtime >= OCI_9_0) { int osize_name = -1; int osize_db = -1; void *ostr_name = NULL; void *ostr_db = NULL; /* allocate error handle */ if (res == TRUE) { res = (OCI_SUCCESS == OCI_HandleAlloc((dvoid *) OCILib.env, (dvoid **) (void *) &pool->err, (ub4) OCI_HTYPE_ERROR, (size_t) 0, (dvoid **) NULL)); } /* allocate pool handle */ if (res == TRUE) { res = (OCI_SUCCESS == OCI_HandleAlloc((dvoid *) OCILib.env, (dvoid **) (void *) &pool->handle, (ub4) pool->htype, (size_t) 0, (dvoid **) NULL)); } /* allocate authentification handle only if needed */ #if OCI_VERSION_COMPILE >= OCI_11_1 if (res == TRUE) { if ((pool->htype == OCI_HTYPE_SPOOL) && (OCILib.version_runtime >= OCI_11_1)) { int osize = -1; void *ostr = OCI_GetInputMetaString(OCILIB_DRIVER_NAME, &osize); /* allocate authentification handle */ res = (OCI_SUCCESS == OCI_HandleAlloc((dvoid *) OCILib.env, (dvoid **) (void *) &pool->authp, (ub4) OCI_HTYPE_AUTHINFO, (size_t) 0, (dvoid **) NULL)); /* set OCILIB's driver layer name attribute only for session pools here For standalone connections and connection pool this attribute is set in OCI_ConnectionLogon() */ OCI_CALL3 ( res, pool->err, OCIAttrSet((dvoid *) pool->authp, (ub4) OCI_HTYPE_AUTHINFO, (dvoid *) ostr, (ub4) osize, (ub4) OCI_ATTR_DRIVER_NAME, pool->err) ) OCI_ReleaseMetaString(ostr); /* set auth handle on the session pool */ OCI_CALL3 ( res, pool->err, OCIAttrSet((dvoid *) pool->handle, (ub4) OCI_HTYPE_SPOOL, (dvoid *) pool->authp, (ub4) sizeof(pool->authp), (ub4) OCI_ATTR_SPOOL_AUTH, pool->err) ) } }
OCI_TypeInfo * OCI_API OCI_TypeInfoGet2(OCI_Library *pOCILib, OCI_Connection *con, const mtext *name, unsigned int type, ExceptionSink* xsink) { OCI_TypeInfo *typinf = NULL; OCI_Item *item = NULL; OCIDescribe *dschp = NULL; OCIParam *parmh1 = NULL; OCIParam *parmh2 = NULL; mtext *str = NULL; //int etype = OCI_DESC_COLUMN; int ptype = 0; ub1 item_type = 0; ub4 attr_type = 0; ub4 num_type = 0; boolean res = TRUE; boolean found = FALSE; ub2 i; mtext obj_schema[OCI_SIZE_OBJ_NAME+1]; mtext obj_name[OCI_SIZE_OBJ_NAME+1]; OCI_CHECK_INITIALIZED2(pOCILib, NULL); OCI_CHECK_PTRQ(pOCILib, OCI_IPC_CONNECTION, con, NULL, xsink); OCI_CHECK_PTRQ(pOCILib, OCI_IPC_STRING, name, NULL, xsink); if (type == OCI_TIF_TABLE) item_type = OCI_PTYPE_TABLE; else if (type == OCI_TIF_VIEW) item_type = OCI_PTYPE_VIEW; else if (type == OCI_TIF_TYPE) item_type = OCI_PTYPE_TYPE; else return NULL; obj_schema[0] = 0; obj_name[0] = 0; /* is the schema provided in the object name ? */ for (str = (mtext *) name; *str != 0; str++) { if (*str == MT('.')) { mtsncat(obj_schema, name, str-name); mtsncat(obj_name, ++str, (size_t) OCI_SIZE_OBJ_NAME); break; } } /* if the schema is not provided, we just copy the object name */ if (obj_name[0] == 0) { mtsncat(obj_name, name, (size_t) OCI_SIZE_OBJ_NAME); } /* type name must be uppercase */ for (str = obj_name; *str != 0; str++) *str = (mtext) mttoupper(*str); /* schema name must be uppercase */ for (str = obj_schema; *str != 0; str++) *str = (mtext) mttoupper(*str); /* first try to find it in list */ item = con->tinfs->head; /* walk along the list to find the type */ while (item != NULL) { typinf = (OCI_TypeInfo *) item->data; if ((typinf != NULL) && (typinf->type == type)) { if ((mtscasecmp(typinf->name, obj_name ) == 0) && (mtscasecmp(typinf->schema, obj_schema) == 0)) { found = TRUE; break; } } item = item->next; } /* Not found, so create type object */ if (found == FALSE) { item = OCI_ListAppend(pOCILib, con->tinfs, sizeof(OCI_TypeInfo)); res = (item != NULL); if (res == TRUE) { typinf = (OCI_TypeInfo *) item->data; typinf->type = type; typinf->con = con; typinf->name = mtsdup(pOCILib, obj_name); typinf->schema = mtsdup(pOCILib, obj_schema); typinf->struct_size = 0; res = (OCI_SUCCESS == OCI_HandleAlloc2(pOCILib, pOCILib->env, (dvoid **) (void *) &dschp, OCI_HTYPE_DESCRIBE, (size_t) 0, (dvoid **) NULL)); } if (res == TRUE) { if (type == OCI_TIF_TYPE) { void *ostr1 = NULL; void *ostr2 = NULL; int osize1 = -1; int osize2 = -1; attr_type = OCI_ATTR_LIST_TYPE_ATTRS; num_type = OCI_ATTR_NUM_TYPE_ATTRS; ptype = OCI_DESC_TYPE; ostr1 = OCI_GetInputMetaString(pOCILib, typinf->schema, &osize1); ostr2 = OCI_GetInputMetaString(pOCILib, typinf->name, &osize2); OCI_CALL2Q ( pOCILib, res, con, OCITypeByName(pOCILib->env, con->err, con->cxt, (text *) ostr1, (ub4) osize1, (text *) ostr2, (ub4) osize2, (text *) NULL, (ub4) 0, OCI_DURATION_SESSION, OCI_TYPEGET_ALL, &typinf->tdo), xsink ) OCI_CALL2Q ( pOCILib, res, con, OCIDescribeAny(con->cxt, con->err, (void *) typinf->tdo, 0, OCI_OTYPE_PTR, OCI_DEFAULT, OCI_PTYPE_TYPE, dschp), xsink ) OCI_ReleaseMetaString(ostr1); OCI_ReleaseMetaString(ostr2); } else { mtext buffer[(OCI_SIZE_OBJ_NAME*2) + 2]; size_t size = sizeof(buffer)/sizeof(mtext); void *ostr1 = NULL; int osize1 = -1; attr_type = OCI_ATTR_LIST_COLUMNS; num_type = OCI_ATTR_NUM_COLS; ptype = OCI_DESC_TABLE; str = buffer; str[0] = 0; if ((typinf->schema != NULL) && (typinf->schema[0] != 0)) { str = mtsncat(buffer, typinf->schema, size); size -= mtslen(typinf->schema); str = mtsncat(str, MT("."), size); size -= (size_t) 1; } mtsncat(str, typinf->name, size); ostr1 = OCI_GetInputMetaString(pOCILib, str, &osize1); OCI_CALL2Q ( pOCILib, res, con, OCIDescribeAny(con->cxt, con->err, (dvoid *) ostr1, (ub4) osize1, OCI_OTYPE_NAME, OCI_DEFAULT, item_type, dschp), xsink ) OCI_ReleaseMetaString(ostr1); } OCI_CALL2Q ( pOCILib, res, con, OCIAttrGet(dschp, OCI_HTYPE_DESCRIBE, &parmh1, NULL, OCI_ATTR_PARAM, con->err), xsink ) /* do we need get more attributes for collections ? */ if (type == OCI_TIF_TYPE) { OCI_CALL2Q ( pOCILib, res, con, OCIAttrGet(parmh1, OCI_DTYPE_PARAM, &typinf->tcode, NULL, OCI_ATTR_TYPECODE, con->err), xsink ) } if (typinf->tcode == SQLT_NCO) { typinf->nb_cols = 1; ptype = OCI_DESC_COLLECTION; //etype = OCI_DESC_TYPE; parmh2 = parmh1; OCI_CALL2Q ( pOCILib, res, con, OCIAttrGet(parmh1, OCI_DTYPE_PARAM, &typinf->ccode, NULL, OCI_ATTR_COLLECTION_TYPECODE, con->err), xsink ) } else {
#include "tv44.h" extern keymap_config_t keymap_config; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_arrow_command( /* Qwerty */ KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, LT(2, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(2, KC_ENT), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, MT(MOD_RSFT, KC_SLSH), KC_LCTL, KC_LGUI, KC_LALT, MO(3), LT(1, KC_SPC), KC_SPC, MO(4), KC_LEFT, KC_DOWN, KC_RIGHT ), [1] = LAYOUT_arrow_command( /* LAYER 2 */ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_QUOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_PGUP, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END ), [2] = LAYOUT_arrow_command( /* LAYER 1 */ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_DQUO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_PGUP, KC_PIPE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END ), [3] = LAYOUT_arrow_command( /* LAYER 3 */ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), [4] = LAYOUT_arrow_command( /* Gaming Layer*/ KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WH_U, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS,
│ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ [ │ ] │ \ │ ` │ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │ TAB │ ' │ , │ . │ P │ Y │ F │ G │ C │ R │ L │ / │ = │BSPC │█████│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │CT/ES│ A │ O │ E │ U │ I │ D │ H │ T │ N │ S │ - │▒▒▒▒▒│CT/EN│█████│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │LSPO │▒▒▒▒▒│ ; │ Q │ J │ K │ X │ B │ M │ W │ V │ Z │▒▒▒▒▒│RSPC │▒▒▒▒▒│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │MO(2)│L_GUI│L_ALT│█████│█████│█████│SPFN1│█████│█████│█████│AG/AP│R_GUI│CT|S │CT|AL│█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ [BASE] = KEYMAP( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, \ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSPC, \ CTL_T(KC_ESC), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_NO, MT(MOD_RCTL, KC_ENT), \ KC_LSPO, KC_NO, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_NO, KC_RSPC, KC_NO, \ MO(2), KC_LGUI, KC_LALT, LT(1, KC_SPACE), ALGR_T(KC_APP), KC_RGUI, OSM(MOD_LCTL | MOD_LSFT), OSM(MOD_LCTL | MOD_LALT) ), /* 1: Arrow/FN Layer ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ │ │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │TO(3)│TO(5)│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │ │ │ │ │ │ │ │PGUP │ UP │ │ │ │ INS │ DEL │█████│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │CAPS │HOME │ │ END │ │ │ │LEFT │DOWN │RIGHT│ │ │▒▒▒▒▒│ │█████│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │ │▒▒▒▒▒│ │ │ │ │ │SPACE│PGDN │PSCR │SLCK │PAUSE│▒▒▒▒▒│ │▒▒▒▒▒│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
void clear() { _mstk.resize(1); _curMat = _mstk[0] = MT(MT::TagIdentity); }