annotate Plugins/Input/console/Gb_Oscs.h @ 334:0daaddb10914 trunk

[svn] Implement GYM playback.
author chainsaw
date Sun, 25 Dec 2005 13:31:46 -0800
parents 252843aac42f
children 7c5e886205ef
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 // Private oscillators used by Gb_Apu
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 // Gb_Snd_Emu 0.1.3. Copyright (C) 2003-2005 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 GB_OSCS_H
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
7 #define GB_OSCS_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 "Blip_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 struct Gb_Osc {
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
12 Blip_Buffer* outputs [4]; // NULL, right, left, center
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
13 Blip_Buffer* output;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
14 int output_select;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
15
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
16 int delay;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
17 int last_amp;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
18 int period;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
19 int volume;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
20 int frequency;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
21 int length;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
22 bool enabled;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
23 bool length_enabled;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
24
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
25 Gb_Osc();
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
26
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
27 void clock_length();
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
28 void reset();
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
29 virtual void run( gb_time_t begin, gb_time_t end ) = 0;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
30 virtual void write_register( int reg, int value );
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
31 };
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
32
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
33 struct Gb_Env : Gb_Osc {
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
34 int env_period;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
35 int env_dir;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
36 int env_delay;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
37 int new_env_period;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
38 int new_env_dir;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
39 int new_volume;
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 Gb_Env();
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
42 void reset();
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
43 void clock_envelope();
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
44 void write_register( int, int );
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
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
47 struct Gb_Square : Gb_Env {
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
48 int phase;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
49 int duty;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
50
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
51 int sweep_period;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
52 int sweep_delay;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
53 int sweep_shift;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
54 int sweep_dir;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
55 int sweep_freq;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
56 bool has_sweep;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
57
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
58 typedef Blip_Synth<blip_good_quality,15 * 2> Synth;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
59 const Synth* synth;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
60
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
61 Gb_Square();
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
62 void reset();
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
63 void run( gb_time_t, gb_time_t );
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
64 void write_register( int, int );
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
65 void clock_sweep();
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
66 };
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
67
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
68 struct Gb_Wave : Gb_Osc {
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
69 int volume_shift;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
70 unsigned wave_pos;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
71 enum { wave_size = 32 };
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
72 BOOST::uint8_t wave [wave_size];
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
73
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
74 typedef Blip_Synth<blip_med_quality,15 * 2> Synth;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
75 Synth synth;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
76
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
77 Gb_Wave();
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
78 void reset();
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
79 void run( gb_time_t, gb_time_t );
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
80 void write_register( int, int );
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
81 };
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
82
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
83 struct Gb_Noise : Gb_Env {
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
84 unsigned bits;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
85 int tap;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
86
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
87 typedef Blip_Synth<blip_med_quality,15 * 2> Synth;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
88 Synth synth;
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
89
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
90 Gb_Noise();
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
91 void reset();
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
92 void run( gb_time_t, gb_time_t );
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
93 void write_register( int, int );
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
94 };
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
95
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
96 #endif
252843aac42f [svn] Import the initial sources for console music support.
nenolod
parents:
diff changeset
97