annotate Plugins/Input/console/Panning_Buffer.h @ 250:b9e6cdce7219 trunk

[svn] Reduce code duplication and add a return statement.
author chainsaw
date Sat, 03 Dec 2005 09:27:11 -0800
parents 252843aac42f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
90
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
1
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
2 // Multi-channel buffer with pan control for each buffer
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
3
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
4 // Game_Music_Emu 0.2.4. Copyright (C) 2004 Shay Green. GNU LGPL license.
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
5
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
6 #ifndef PANNING_BUFFER_H
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
7 #define PANNING_BUFFER_H
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
8
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
9 #include "Multi_Buffer.h"
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
10
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
11 // Panning_Buffer uses several buffers and outputs stereo sample pairs.
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
12 class Panning_Buffer : public Multi_Buffer {
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
13 public:
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
14 Panning_Buffer();
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
15 ~Panning_Buffer();
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
16
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
17 // Set pan of a channel, using left and right gain values (1.0 = normal).
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
18 // Use left_chan and right_chan for the common left and right buffers used
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
19 // by all channels.
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
20 enum { left_chan = -2 };
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
21 enum { right_chan = -1 };
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
22 void set_pan( int channel, double left, double right );
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
23
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
24 // See Multi_Buffer.h
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
25 blargg_err_t sample_rate( long rate, int msec );
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
26 void clock_rate( long );
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
27 void bass_freq( int );
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
28 void clear();
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
29 blargg_err_t set_channel_count( int );
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
30 channel_t channel( int );
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
31 void end_frame( blip_time_t, bool unused = true );
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
32 long read_samples( blip_sample_t*, long );
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
33
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
34 private:
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
35 typedef long fixed_t;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
36
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
37 struct buf_t : Blip_Buffer {
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
38 fixed_t left_gain;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
39 fixed_t right_gain;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
40 };
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
41 buf_t* bufs;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
42 int buf_count;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
43 long clock_rate_;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
44 int bass_freq_;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
45
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
46 void add_panned( buf_t&, blip_sample_t*, long );
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
47 };
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
48
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
49 #endif
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
50