Lines Matching defs:zone

527   preset->zone = NULL;
538 fluid_preset_zone_t* zone;
545 zone = preset->zone;
546 while (zone != NULL) {
547 preset->zone = zone->next;
548 if (delete_fluid_preset_zone(zone) != FLUID_OK) {
551 zone = preset->zone;
618 /* make sure this instrument zone has a valid sample */
630 /* this is a good zone. allocate a new synthesis process and
647 * A generator in a local instrument zone supersedes a
648 * global instrument zone generator. Both cases supersede
665 /* global instrument zone, modulators: Put them all into a
678 /* local instrument zone, modulators.
736 * local preset zone supersedes a global preset zone
753 /* Global preset zone, modulators: put them all into a
764 /* Process the modulators of the local preset zone. Kick
765 * out all identical modulators from the global preset zone
817 fluid_defpreset_set_global_zone(fluid_defpreset_t* preset, fluid_preset_zone_t* zone)
819 preset->global_zone = zone;
833 fluid_preset_zone_t* zone;
843 p = sfpreset->zone;
848 zone = new_fluid_preset_zone(zone_name);
849 if (zone == NULL) {
852 if (fluid_preset_zone_import_sfont(zone, sfzone, sfont) != FLUID_OK) {
855 if ((count == 0) && (fluid_preset_zone_get_inst(zone) == NULL)) {
856 fluid_defpreset_set_global_zone(preset, zone);
857 } else if (fluid_defpreset_add_zone(preset, zone) != FLUID_OK) {
870 fluid_defpreset_add_zone(fluid_defpreset_t* preset, fluid_preset_zone_t* zone)
872 if (preset->zone == NULL) {
873 zone->next = NULL;
874 preset->zone = zone;
876 zone->next = preset->zone;
877 preset->zone = zone;
888 return preset->zone;
916 fluid_preset_zone_t* zone = NULL;
917 zone = FLUID_NEW(fluid_preset_zone_t);
918 if (zone == NULL) {
922 zone->next = NULL;
924 zone->name = FLUID_MALLOC(size);
925 if (zone->name == NULL) {
927 FLUID_FREE(zone);
930 FLUID_STRCPY(zone->name, name);
931 zone->inst = NULL;
932 zone->keylo = 0;
933 zone->keyhi = 128;
934 zone->vello = 0;
935 zone->velhi = 128;
940 fluid_gen_set_default_values(&zone->gen[0]);
941 zone->mod = NULL; /* list of modulators */
942 return zone;
954 delete_fluid_preset_zone(fluid_preset_zone_t* zone)
958 mod = zone->mod;
966 if (zone->name) FLUID_FREE (zone->name);
967 if (zone->inst) delete_fluid_inst (zone->inst);
968 FLUID_FREE(zone);
976 fluid_preset_zone_import_sfont(fluid_preset_zone_t* zone, SFZone *sfzone, fluid_defsfont_t* sfont)
985 zone->keylo = (int) sfgen->amount.range.lo;
986 zone->keyhi = (int) sfgen->amount.range.hi;
989 zone->vello = (int) sfgen->amount.range.lo;
990 zone->velhi = (int) sfgen->amount.range.hi;
994 zone->gen[sfgen->id].val = (fluid_real_t) sfgen->amount.sword;
995 zone->gen[sfgen->id].flags = GEN_SET;
1001 zone->inst = (fluid_inst_t*) new_fluid_inst();
1002 if (zone->inst == NULL) {
1006 if (fluid_inst_import_sfont(zone->inst, (SFInst *) sfzone->instsamp->data, sfont) != FLUID_OK) {
1121 /* Store the new modulator in the zone The order of modulators
1126 zone->mod = mod_dest;
1128 fluid_mod_t * last_mod = zone->mod;
1148 fluid_preset_zone_get_inst(fluid_preset_zone_t* zone)
1150 return zone->inst;
1157 fluid_preset_zone_inside_range(fluid_preset_zone_t* zone, int key, int vel)
1159 return ((zone->keylo <= key) &&
1160 (zone->keyhi >= key) &&
1161 (zone->vello <= vel) &&
1162 (zone->velhi >= vel));
1183 inst->zone = NULL;
1193 fluid_inst_zone_t* zone;
1201 zone = inst->zone;
1202 while (zone != NULL) {
1203 inst->zone = zone->next;
1204 if (delete_fluid_inst_zone(zone) != FLUID_OK) {
1207 zone = inst->zone;
1217 fluid_inst_set_global_zone(fluid_inst_t* inst, fluid_inst_zone_t* zone)
1219 inst->global_zone = zone;
1231 fluid_inst_zone_t* zone;
1235 p = sfinst->zone;
1248 zone = new_fluid_inst_zone(zone_name);
1249 if (zone == NULL) {
1253 if (fluid_inst_zone_import_sfont(zone, sfzone, sfont) != FLUID_OK) {
1257 if ((count == 0) && (fluid_inst_zone_get_sample(zone) == NULL)) {
1258 fluid_inst_set_global_zone(inst, zone);
1260 } else if (fluid_inst_add_zone(inst, zone) != FLUID_OK) {
1274 fluid_inst_add_zone(fluid_inst_t* inst, fluid_inst_zone_t* zone)
1276 if (inst->zone == NULL) {
1277 zone->next = NULL;
1278 inst->zone = zone;
1280 zone->next = inst->zone;
1281 inst->zone = zone;
1292 return inst->zone;
1316 fluid_inst_zone_t* zone = NULL;
1317 zone = FLUID_NEW(fluid_inst_zone_t);
1318 if (zone == NULL) {
1322 zone->next = NULL;
1324 zone->name = FLUID_MALLOC(size);
1325 if (zone->name == NULL) {
1327 FLUID_FREE(zone);
1330 FLUID_STRCPY(zone->name, name);
1331 zone->sample = NULL;
1332 zone->keylo = 0;
1333 zone->keyhi = 128;
1334 zone->vello = 0;
1335 zone->velhi = 128;
1339 fluid_gen_set_default_values(&zone->gen[0]);
1340 zone->mod=NULL; /* list of modulators */
1341 return zone;
1348 delete_fluid_inst_zone(fluid_inst_zone_t* zone)
1352 mod = zone->mod;
1360 if (zone->name) FLUID_FREE (zone->name);
1361 FLUID_FREE(zone);
1369 fluid_inst_zone_next(fluid_inst_zone_t* zone)
1371 return zone->next;
1378 fluid_inst_zone_import_sfont(fluid_inst_zone_t* zone, SFZone *sfzone, fluid_defsfont_t* sfont)
1388 zone->keylo = (int) sfgen->amount.range.lo;
1389 zone->keyhi = (int) sfgen->amount.range.hi;
1392 zone->vello = (int) sfgen->amount.range.lo;
1393 zone->velhi = (int) sfgen->amount.range.hi;
1398 zone->gen[sfgen->id].val = (fluid_real_t) sfgen->amount.sword;
1399 zone->gen[sfgen->id].flags = GEN_SET;
1406 /* if (zone->gen[GEN_EXCLUSIVECLASS].flags == GEN_SET) { */
1407 /* FLUID_LOG(FLUID_DBG, "ExclusiveClass=%d\n", (int) zone->gen[GEN_EXCLUSIVECLASS].val); */
1411 zone->sample = fluid_defsfont_get_sample(sfont, ((SFSample *) sfzone->instsamp->data)->name);
1412 if (zone->sample == NULL) {
1529 /* Store the new modulator in the zone
1533 zone->mod=mod_dest;
1535 fluid_mod_t * last_mod=zone->mod;
1552 fluid_inst_zone_get_sample(fluid_inst_zone_t* zone)
1554 return zone->sample;
1561 fluid_inst_zone_inside_range(fluid_inst_zone_t* zone, int key, int vel)
1563 return ((zone->keylo <= key) &&
1564 (zone->keyhi >= key) &&
1565 (zone->vello <= vel) &&
1566 (zone->velhi >= vel));
2136 p->zone = NULL; /* In case of failure, sfont_close can cleanup */
2152 pr->zone = fluid_list_prepend (pr->zone, NULL);
2170 pr->zone = fluid_list_prepend (pr->zone, NULL);
2192 p2 = ((SFPreset *) (p->data))->zone;
2206 { /* if not first zone */
2220 pz = z; /* update previous zone ptr */
2221 pgenndx = genndx; /* update previous zone gen index */
2222 pmodndx = modndx; /* update previous zone mod index */
2268 p2 = ((SFPreset *) (p->data))->zone;
2273 { /* load zone's modulators */
2310 * Global zone must be 1st zone, discard additional ones (instrumentless zones)
2312 * generator (per zone) loading rules (in order of decreasing precedence):
2333 p2 = ((SFPreset *) (p->data))->zone;
2342 { /* load zone's generators */
2423 SLADVREM (z->gen, p3); /* zone has inst? */
2425 { /* congratulations its a global zone */
2430 /* if global zone is not 1st zone, relocate */
2435 _("Preset \"%s\": Global zone is not first zone"),
2443 { /* previous global zone exists, discard */
2445 _("Preset \"%s\": Discarding invalid global zone"),
2461 p2 = fluid_list_next (p2); /* next zone */
2505 p->zone = NULL; /* For proper cleanup if fail (sfont_close) */
2516 pr->zone = fluid_list_prepend (pr->zone, NULL);
2532 pr->zone = fluid_list_prepend (pr->zone, NULL);
2552 p2 = ((SFInst *) (p->data))->zone;
2566 { /* if not first zone */
2580 pz = z; /* update previous zone ptr */
2630 p2 = ((SFInst *) (p->data))->zone;
2635 { /* load zone's modulators */
2684 p2 = ((SFInst *) (p->data))->zone;
2693 { /* load zone's generators */
2773 SLADVREM (z->gen, p3); /* zone has sample? */
2775 { /* its a global zone */
2780 /* if global zone is not 1st zone, relocate */
2785 _("Instrument \"%s\": Global zone is not first zone"),
2793 { /* previous global zone exists, discard */
2795 _("Instrument \"%s\": Discarding invalid global zone"),
2811 p2 = fluid_list_next (p2); /* next zone */
2884 p2 = ((SFPreset *) (p->data))->zone;
2919 p2 = ((SFInst *) (p->data))->zone;
3040 p2 = ((SFPreset *) (p->data))->zone;
3045 } /* free preset's zone list */
3046 delete_fluid_list (((SFPreset *) (p->data))->zone);
3056 p2 = ((SFInst *) (p->data))->zone;
3061 } /* free inst's zone list */
3062 delete_fluid_list (((SFInst *) (p->data))->zone);
3081 /* free all elements of a zone (Preset or Instrument) */
3083 sfont_free_zone (SFZone * zone)
3087 if (!zone)
3090 p = zone->gen;
3092 { /* Free gen chunks for this zone */
3097 delete_fluid_list (zone->gen); /* free genlist */
3099 p = zone->mod;
3101 { /* Free mod chunks for this zone */
3106 delete_fluid_list (zone->mod); /* free modlist */
3108 FLUID_FREE (zone); /* free zone chunk */
3123 /* delete zone from zone list */
3125 sfont_zone_delete (SFData * sf, fluid_list_t ** zlist, SFZone * zone)
3127 *zlist = fluid_list_remove (*zlist, (void*) zone);
3128 sfont_free_zone (zone);