non/non.H

95 lines
2.5 KiB
C++

/*******************************************************************************/
/* Copyright (C) 2007,2008 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
#pragma once
#include "common.h"
#include "pattern.H"
#include "phrase.H"
#include "sequence.H"
enum {
PLAY,
MUTE,
SOLO
};
class Canvas;
class Lash;
extern Canvas *pattern_c, *phrase_c;
extern sequence *playlist;
extern Lash lash;
void quit ( void );
void init_song ( void );
void handle_midi_input ( void );
bool load_song ( const char *name );
bool save_song ( const char *name );
#include "common.h"
#include "const.h"
enum play_mode_e {
PATTERN,
SEQUENCE,
TRIGGER
// PHRASE,
};
enum record_mode_e {
MERGE,
OVERWRITE,
LAYER,
NEW
};
/* program settings (from rc file) */
struct global_settings {
enum record_mode_e record_mode;
bool record_filtered; /* ignore non-note events while recording */
bool visual_metronome; /* show visual metronome */
bool follow_playhead;
};
extern global_settings config;
/* song settings (from song file) */
struct song_settings
{
enum play_mode_e play_mode;
char *filename;
bool dirty;
struct {
int feel;
float probability;
} random;
};
extern song_settings song;