aboutsummaryrefslogtreecommitdiffstats
path: root/notify.h
blob: 03f67751c4499ab3c4c23c473b909f32bc6f8cd4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#pragma once

#include <stdio.h>

enum NotificationType {
  NOTIFY_VOLUME,
  NOTIFY_BALANCE,
  NOTIFY_UNMUTE,
  NOTIFY_MUTE,
};

class Notifier {
 public:
  virtual ~Notifier() {}

  virtual void Notify(enum NotificationType type, long value, bool mute) = 0;

 protected:
  bool initialized_;
};

class CommandLineNotifier : public Notifier {
 public:
  virtual ~CommandLineNotifier() {}

  virtual void Notify(enum NotificationType type, long value, bool) {
    switch (type) {
    case NOTIFY_VOLUME:
    case NOTIFY_BALANCE:
    case NOTIFY_UNMUTE:
    case NOTIFY_MUTE:
      printf("%ld\n", value);
      break;
    }
  }
};

// vim: set et ts=2 sw=2: