OSSIA
Open Scenario System for Interactive Application
ossia-max/src/explorer.hpp
1 #pragma once
2 #include <ossia-max/src/object_base.hpp>
3 #include <ossia-max/src/search_filter.hpp>
4 
5 #include <set>
6 
7 namespace ossia
8 {
9 namespace max_binding
10 {
11 
12 #define MAX_NUM_ITEMS 256
13 
14 #pragma mark -
15 #pragma mark t_explorer structure declaration
16 
17 struct explorer
18  : object_base
19  , search_filter
20 {
21  using is_explorer = std::true_type;
22 
23  // argument variables
24  long m_highlight{};
25  long m_depth{0}; // 0 means no depth filtering
26 
27  t_symbol* m_sort{};
28  t_symbol* m_format{};
29  t_symbol* m_method{};
30 
31  std::set<ossia::net::device_base*> m_devices;
32 
33  // ctor / dtor
34  explorer(long argc, t_atom* argv);
35  ~explorer();
36 
37  bool register_node(std::vector<std::shared_ptr<matcher>>& node);
38  bool unregister();
39 
40  static void
41  explore_mess_cb(ossia::max_binding::explorer* x, t_symbol* s, long argc, t_atom* argv);
42  static void free(ossia::max_binding::explorer* x);
43  static t_max_err
44  notify(explorer* x, t_symbol* s, t_symbol* msg, void* sender, void* data);
45  static void assist(explorer* x, void* b, long m, long a, char* s);
46 
47  static t_symbol* s_explore;
48  static t_symbol* s_size;
49  static t_symbol* s_namespace;
50 };
51 } // max namespace
52 } // ossia namespace
53 
54 #pragma mark -
55 #pragma mark ossia_explorer class declaration
56 
57 extern "C" {
58 void* ossia_explorer_new(t_symbol* s, long argc, t_atom* argv);
59 }
Definition: git_info.h:7