int ModuleController::as(const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data) { ModuleController *mc = (ModuleController *)user_data; char p[64] = "/ModuleManager/GN/AudioSource/Tile"; strcat(p, &argv[1]->s); if (argv[0]->i) {//argv[0] = 1:モジュール生成 0:モジュール解放 for (std::list<AudioSource*>::iterator iter = mc->asList.begin(); iter != mc->asList.end(); iter++) { AudioSource* as = (*iter); if (strcmp(p,as->OSCAddr)==0) { if (as->tID == atoi(&argv[1]->s)) { printf("err: Creating AudioSource\n"); return 0; } } } AudioSource *as = new AudioSource(mc->st, p); as->setTID(atoi(&argv[1]->s)); as->mColor = 5; as->sendSetMdtkn(); mc->asList.push_back(as); printf("create AudioSource\n"); }else { for (std::list<AudioSource*>::iterator iter = mc->asList.begin(); iter != mc->asList.end(); iter++) { AudioSource* as = (*iter); if (strcmp(p,as->OSCAddr)==0) { delete as; mc->asList.remove(as); printf("delete AudioSource\n"); } } } return 0; }