add: struct TagItem* tstate = msg->ops_AttrList; struct TagItem* tag; ULONG result = 0;  AHIClassData->sample_type = AHIST_NOTYPE;  while ((tag = NextTagItem(&tstate))) { switch (tag->ti_Tag) { case AHIA_Buffer_SampleType: AHIClassData->sample_type = tag->ti_Data; break;  case AHIA_Buffer_SampleFreqInt: AHIClassData->sample_freq_int = tag->ti_Data; break;  case AHIA_Buffer_SampleFreqFract: AHIClassData->sample_freq_fract = tag->ti_Data; break;  case AHIA_Buffer_Capacity: AHIClassData->capacity = tag->ti_Data; break;  default: break; } }
context: MethodNew(Class* class, Object* object, struct opSet* msg) {  struct AHIClassBase* AHIClassBase = (struct AHIClassBase*) class->cl_UserData;  struct AHIClassData* AHIClassData = (struct AHIClassData*) INST_DATA(class, object);    MethodUpdate(class, object, (struct opUpdate*) msg);  if (AHIClassData->capacity > 0) {    AHIClassData->data = AllocVec(AHIClassData->capacity,				  MEMF_PUBLIC | MEMF_CLEAR);  }  if (AHIClassData->data == NULL) {    return ERROR_NO_FREE_STORE;  }    return 0;}