static ssize_t speaker_store(struct kobject *kobj, struct kobj_attribute *attr, const char *buf, size_t count) { int new_speaker; sscanf(buf, "%d", &new_speaker); switch(new_speaker) { case SPEAKER_DISABLED: speaker_level = SPEAKER_LEVEL_DEFAULT; set_speaker(); case SPEAKER_OVERRIDE: speaker = new_speaker; return count; default: return count; } }
static ssize_t speaker_level_store(struct kobject *kobj, struct kobj_attribute *attr, const char *buf, size_t count) { int new_speaker_level; sscanf(buf, "%d", &new_speaker_level); if (new_speaker_level >= SPEAKER_LEVEL_MIN && new_speaker_level <= SPEAKER_LEVEL_MAX && speaker == SPEAKER_OVERRIDE) { speaker_level = new_speaker_level; set_speaker(); } return count; }
void act() { set_speaker(block_value); }