int player_set_vol(int l, int lf, int r, int rf) { int rc = OP_ERROR_SUCCESS; if (soft_vol) { l = calc_vol(l, soft_vol_l, 100, lf); r = calc_vol(r, soft_vol_r, 100, rf); player_set_soft_volume(l, r); } else { mixer_read_volume(); l = calc_vol(l, volume_l, volume_max, lf); r = calc_vol(r, volume_r, volume_max, rf); rc = mixer_set_volume(l, r); mixer_read_volume(); } return rc; }
static unsigned int calc_asset_vol(struct _asset *a) { struct _asset_file *f = a->a_owner; const struct asset_desc *d = f->f_desc + a->a_idx; unsigned int i, num_tris, ret = 0; idx_t tri[3]; idx_t *out = a->a_shadow_idx; for(i = 0; i < d->a_num_idx; i += 3) { tri[0] = a->a_indices[i + 0]; tri[1] = a->a_indices[i + 1]; tri[2] = a->a_indices[i + 2]; num_tris = calc_vol(f, tri, out); out += num_tris * 3; ret += num_tris * 3; } return ret; }
void FFTController:: calc_vcoulb(double* qvec, double* a1, double* a2, double* a3, double* b1, double* b2, double * b3, double shift[3], double alat, double vol, int nkpt, int iq){ double* vcoulb; vcoulb = new double [geps->ng]; double gx, gy, gz; double gq[3]; vol = calc_vol(a1, a2, a3); double fact = 4*PI/vol/nkpt; for (int i=0; i<geps->ng; i++) { if (iq==0){ gx = geps->ig[i] + shift[0]; gy = geps->jg[i] + shift[1]; gz = geps->kg[i] + shift[2]; } else{ gx = geps->ig[i] + qvec[0]; gy = geps->jg[i] + qvec[1]; gz = geps->kg[i] + qvec[2]; } vcoulb[i] = 0; for (int j=0; j<3; j++) { gq[j] = gx*b1[j] + gy*b2[j] + gz*b3[j]; gq[j] *= 2*PI/alat; vcoulb[i] += gq[j]*gq[j]; } vcoulb[i] = 1/vcoulb[i]; vcoulb[i] *= fact; } std::vector<double> vcoulb_v; vcoulb_v.resize(geps->ng); for(int i=0;i<geps->ng;i++) vcoulb_v[i] = vcoulb[i]; controller_proxy.got_vcoulb(vcoulb_v); }