1/*
2 * Copyright 2012, Gerasim Troeglazov (3dEyes**), 3dEyes@gmail.com.
3 * All rights reserved.
4 * Distributed under the terms of the MIT License.
5 */
6
7#include <Entry.h>
8
9#include "EqualizerNode.h"
10#include "EqualizerAddOn.h"
11
12extern "C" _EXPORT BMediaAddOn* make_media_addon(image_id image)
13{
14	return new EqualizerAddOn(image);
15}
16
17EqualizerAddOn::~EqualizerAddOn()
18{
19}
20
21EqualizerAddOn::EqualizerAddOn(image_id image)
22	:
23	BMediaAddOn(image)
24{
25}
26
27status_t
28EqualizerAddOn::InitCheck(const char **text)
29{
30	return B_OK;
31}
32
33int32
34EqualizerAddOn::CountFlavors()
35{
36	return 1;
37}
38
39status_t EqualizerAddOn::GetFlavorAt(int32 idx, const flavor_info** info)
40{
41	if (idx < 0 || idx >= CountFlavors())
42		return B_ERROR;
43
44	flavor_info* f_info = new flavor_info;
45	f_info->internal_id = idx;
46	f_info->kinds = B_BUFFER_CONSUMER | B_BUFFER_PRODUCER | B_CONTROLLABLE;
47	f_info->possible_count = 0;
48	f_info->flavor_flags = 0;
49	f_info->info = "10 Band Equalizer.\nby 3dEyes**";
50	f_info->name = "Equalizer (10 Band)";
51
52	media_format* format = new media_format;
53	format->type = B_MEDIA_RAW_AUDIO;
54	format->u.raw_audio = media_raw_audio_format::wildcard;
55	format->u.raw_audio.format = media_raw_audio_format::B_AUDIO_FLOAT;
56
57	f_info->in_format_count = 1;
58	f_info->in_formats = format;
59
60	format = new media_format;
61	format->type = B_MEDIA_RAW_AUDIO;
62	format->u.raw_audio = media_raw_audio_format::wildcard;
63	format->u.raw_audio.format = media_raw_audio_format::B_AUDIO_FLOAT;
64
65	f_info->out_format_count = 1;
66	f_info->out_formats = format;
67
68	*info = f_info;
69
70	return B_OK;
71}
72
73BMediaNode*
74EqualizerAddOn::InstantiateNodeFor(const flavor_info* info, BMessage* config,
75	status_t* err)
76{
77	EqualizerNode* node = new EqualizerNode(this);
78	return node;
79}
80
81status_t
82EqualizerAddOn::GetConfigurationFor(BMediaNode* node, BMessage* message)
83{
84	return B_OK;
85}
86
87bool
88EqualizerAddOn::WantsAutoStart()
89{
90	return false;
91}
92
93status_t
94EqualizerAddOn::AutoStart(int count, BMediaNode** node,	int32* id, bool* more)
95{
96	return B_OK;
97}
98