<commit_before>#ifndef OUTPUT_SLOT_H
#define OUTPUT_SLOT_H

#include "uinput.h"
#include "eventlists/eventlist.h"
#include <iostream>
#include <string>
#include <map>
#include <memory>

class input_source;

enum slot_state { SLOT_ACTIVE, SLOT_INACTIVE, SLOT_CLOSED, SLOT_DISABLED};

class output_slot {
public:
  std::string name;
  std::string descr;
  output_slot(std::string name) : name(name) { effects[0].id = -1;};
  output_slot(std::string name, std::string descr) : name(name), descr(descr) {effects[0].id = -1;};
  virtual ~output_slot();
  virtual void take_event(struct input_event in) {
  }

  virtual bool accept_device(std::shared_ptr<input_source> dev);
  virtual bool add_device(std::shared_ptr<input_source> dev);
  virtual bool remove_device(input_source* dev);

  int upload_ff(const ff_effect& effect);
  int erase_ff(int id);
  int play_ff(int id, int reptitions);

  virtual void clear_outputs();
  virtual void close_virt_device();
  void for_all_devices(std::function<void (std::shared_ptr<input_source>&)> func);

  int pad_count = 0;
  std::map<std::string, std::string> options;<commit_msg>Quick hot-fix for compile error<commit_after>#ifndef OUTPUT_SLOT_H
#define OUTPUT_SLOT_H

#include "uinput.h"
#include "eventlists/eventlist.h"
#include <iostream>
#include <string>
#include <map>
#include <memory>
#include <functional>

class input_source;

enum slot_state { SLOT_ACTIVE, SLOT_INACTIVE, SLOT_CLOSED, SLOT_DISABLED};

class output_slot {
public:
  std::string name;
  std::string descr;
  output_slot(std::string name) : name(name) { effects[0].id = -1;};
  output_slot(std::string name, std::string descr) : name(name), descr(descr) {effects[0].id = -1;};
  virtual ~output_slot();
  virtual void take_event(struct input_event in) {
  }

  virtual bool accept_device(std::shared_ptr<input_source> dev);
  virtual bool add_device(std::shared_ptr<input_source> dev);
  virtual bool remove_device(input_source* dev);

  int upload_ff(const ff_effect& effect);
  int erase_ff(int id);
  int play_ff(int id, int reptitions);

  virtual void clear_outputs();
  virtual void close_virt_device();
  void for_all_devices(std::function<void (std::shared_ptr<input_source>&)> func);

  int pad_count = 0;
  std::map<std::string, std::string> options;
{'fraction_non_alphanumeric': 0.13192612137203166, 'fraction_numerical': 0.0043975373790677225, 'mean_word_length': 6.338709677419355, 'pattern_counts': {'":': 0, '<': 22, '<?xml version=': 0, '>': 22, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7026494', 'n_tokens_mistral': 814, 'n_tokens_neox': 801, 'n_words': 187}