1 /* 2 gnaural.h 3 Copyright (C) 2008 Bret Logan 4 5 This program is free software; you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation; either version 2 of the License, or 8 (at your option) any later version. 9 10 This program is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with this program; if not, write to the Free Software 17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18 */ 19 #ifndef _GNAURAL_MAIN_H_ 20 #define _GNAURAL_MAIN_H_ 21 #include "ScheduleGUI.h" 22 23 extern GtkWidget *main_window; 24 extern GtkWidget *main_drawing_area; 25 extern GtkToggleButton *main_togglebuttonViewFreq; 26 extern GtkToggleButton *main_togglebuttonViewBeat; 27 extern GtkToggleButton *main_togglebuttonViewVol; 28 extern GtkToggleButton *main_togglebuttonViewBal; 29 extern GThread *main_thread_WriteEngineWAV; 30 extern GtkVBox *main_vboxVoices; 31 32 extern char main_sTmp[]; 33 34 //general string that can be written to at any time by anything 35 //so long as "anything" isn't in a different thread 36 extern char gnaural_tmpstr[]; 37 extern char main_GnauralIcon[4648]; 38 extern char main_GnauralHelpShort[]; 39 extern char main_GnauralHelp[]; 40 extern gchar main_DefaultSchedule[]; 41 extern char *main_Info_Description; 42 extern char *main_Info_Author; 43 extern char *main_Info_Title; 44 45 extern int main_gnaural_guiflag; //will be set internall to TRUE if there is a GUI 46 extern gchar main_sCurrentGnauralFilenameAndPath[]; // ~/.gnaural/schedule.gnaural 47 48 //NOTE: in main.c also has static int mainPA_MyCallback (); 49 50 extern gboolean main_XY_scaleflag; 51 extern void main_on_checkbutton_MagneticPointer_toggled (GtkToggleButton * 52 togglebutton); 53 54 //START Globals taken from ScheduleGUI: 55 extern void main_LoadBinauralBeatSoundEngine (); // Takes SG data and connects it to BB data 56 extern int main_TestPathOrFileExistence (char *PathName); 57 extern void main_quit (); 58 extern void main_EventToKeypress (guint state, guint keyval); 59 extern void main_AboutDialogBox (void); 60 extern void main_activate_url (GtkAboutDialog * about, 61 const gchar * url, gpointer data); 62 extern void main_UpdateGUI_Progressbar (void); 63 extern gboolean main_UpdateGUI (gpointer data); 64 extern void main_SetGraphType (GtkToggleButton * togglebutton); 65 extern void main_SetGraphToggle (GtkWidget * widget); 66 extern void main_OnButton_VoicesVisible (GtkButton * button); 67 extern void main_OnButton_Play (GtkButton * button); 68 extern void main_OnButton_ForwardRewind (float amount); 69 extern void main_OnButton_Stop (GtkButton * button); 70 extern void main_UpdateGUI_Status (gchar * msg); 71 extern void main_UpdateGUI_ProjectedRuntime (); 72 extern void main_UpdateGUI_Labels (); 73 extern void main_UpdateGUI_Statusbar (const char *msg1, const char *msg2); 74 extern void main_UpdateGUI_entryLoops (); 75 extern void main_UpdateGUI_UserDataInfo (); 76 extern void main_on_hscaleVolume (float range); 77 extern void main_on_hscaleBalance (float range); 78 extern void main_on_export_mp3_activate (); 79 extern void main_on_export_audio_to_file_activate (); 80 extern void main_AudioWriteFile_start (); 81 extern void main_AudioWriteFile (void *ptr); 82 extern void main_on_edit_activate (); 83 extern int main_MessageDialogBox (char *msg, 84 GtkMessageType messagetype, 85 GtkButtonsType buttonformation); 86 extern void main_Cleanup (); 87 extern void main_on_entryLoops_activate (GtkEntry * entry, 88 gpointer user_data); 89 extern void main_SetLoops (unsigned int loops); 90 extern void main_SetIcon (); 91 extern void main_SetupPathsAndFiles (int bDefaultFlag); //TRUE sets up $HOME/gnaural.schedule, FALSE works with whatever is in main_sCurrentGnauralFilenameAndPath 92 extern void main_InterceptCtrl_C (int sig); 93 extern void main_ParseCmdLine (int argc, char *argv[]); 94 extern void main_RunCmdLineMode (); 95 extern void main_UpdateTerminalGUI (FILE * gstream); 96 extern void main_key_arrowkeyhandler (GtkWidget * widget, 97 int vertical, int horizontal); 98 extern gboolean main_key_press_event (GtkWidget * widget, 99 GdkEventKey * event); 100 extern gboolean main_key_release_event (GtkWidget * widget, 101 GdkEventKey * event); 102 extern gboolean main_realize (GtkWidget * widget, GdkEventConfigure * event); 103 extern gboolean main_expose_event (GtkWidget * widget, 104 GdkEventExpose * event); 105 extern gboolean main_delete_event (GtkWidget * window, 106 GdkEvent * e, gpointer data); 107 extern gboolean main_button_release_event (GtkWidget * widget, 108 GdkEventButton * event); 109 extern gboolean main_button_press_event (GtkWidget * widget, 110 GdkEventButton * event); 111 extern gboolean main_configure_event (GtkWidget * widget, 112 GdkEventConfigure * event); 113 extern gboolean main_motion_notify_event (GtkWidget * widget, 114 GdkEventMotion * event); 115 extern int main_GNAURAL1FILE_SchedFilenameToSchedule (char *filename); //handles original (obsolete) Gnaural file format 116 extern void main_GNAURAL1FILE_ParseCmd (FILE * stream); //handles original (obsolete) Gnaural file format 117 extern void main_GNAURAL1FILE_SchedBuffToSchedule (char *str); //handles original (obsolete) Gnaural file format 118 extern gchar *main_OpenFileDialog (gchar * strUserfilter, char *path); //returns NULL or valid string that must be freed with g_free() 119 //extern gchar *main_SaveFileDialog (const char *setname);//returns NULL or valid string that must be freed with g_free() 120 extern void main_WriteDefaultFile (); 121 extern void main_OnUserSaveAsFile (); //from Gnaural1 20070304. Saves file; checks for File existence before save 122 extern int main_AskForSaveAsFilename (char *userfilename); //from Gnaural1 20070304, replaced main_SaveFileDialog() 123 extern gboolean main_VoicePropertiesDialog (GtkWidget * widget, 124 SG_Voice * userVoice); 125 extern int main_InitGlade (); //returns 0 on success 126 extern void main_on_revert_activate (GtkMenuItem * menuitem, 127 gpointer user_data); 128 extern void main_NewGraph (int voices); 129 extern void main_UpdateGUI_FileInfo (char *filename); 130 extern void main_ClearDataPointsInVoices (); 131 extern void main_UpdateGUI_PlaceInGraph (); 132 extern double main_AskUserForNumberDialog (char *title, 133 char *question, 134 double *startingval); 135 extern gboolean main_SetScheduleInfo (gboolean FillEntriesFlag); 136 extern void main_DuplicateSelectedVoice (); 137 extern void main_ScaleDataPoints_Time (GtkWidget * widget); 138 extern void main_DeleteSelectedVoice (GtkWidget * widget); 139 extern void main_ScaleDatPoints_Y (GtkWidget * widget); 140 extern void main_AddRandomToDataPoints_Y (GtkWidget * widget); 141 extern void main_AddRandomToDataPoints_time (GtkWidget * widget); 142 extern void main_AddToDataPoints_Y (GtkWidget * widget); 143 extern void main_AddToDataPoints_time (GtkWidget * widget); 144 extern void main_SelectInterval (); 145 extern void main_SelectNeighbor (); 146 extern void main_OpenFile (gboolean OpenMerge, char *path); 147 extern void main_ReverseVoice (); 148 extern void main_SelectLastDPs (); 149 extern void main_SelectFirstDPs (); 150 extern void main_TruncateSchedule (); 151 extern void main_PasteAtEnd (); 152 extern void main_InvertY (); 153 extern void main_SelectDuration_All (); 154 extern void main_SelectDuration_SinglePoint (); 155 extern void main_Preferences (); 156 extern void main_SelectDuration (); 157 extern void main_SelectProximity_All (); 158 extern void main_SelectProximity_SinglePoint (); 159 extern void main_ResetScheduleInfo (); 160 extern void main_Sleep (int microseconds); //BB wants to call this as a function pointer 161 extern void main_DuplicateAllVoices (); 162 extern int main_LoadSoundFile (char *filename, 163 int **buffer, unsigned int *size); 164 extern void main_ProcessAudioFile (char *filename, 165 int **buffer, unsigned int *size); 166 extern void main_CleanupAudioFileData (); 167 extern void main_ProcessVolBal (); 168 extern void main_vscale_Y_button_event (GtkWidget * widget, gboolean pressed); 169 extern void main_vscale_Y_value_change (GtkRange * range); 170 extern void main_hscale_X_button_event (GtkWidget * widget, gboolean pressed); 171 extern void main_hscale_X_value_change (GtkRange * range); 172 extern void main_slider_XY_handler (float vertical, float horizontal); 173 extern void main_FormatProgressString (); 174 extern void main_DialogAddFileFilters (GtkWidget * dialog, 175 gchar * strFilterString); 176 extern void main_MakeAudioFormatsFileFilterString (gchar * strUserfilter, 177 int size); 178 extern void main_OnDragDataReceived (GtkWidget * wgt, 179 GdkDragContext * context, int x, int y, 180 GtkSelectionData * seldata, guint info, 181 guint time, gpointer userdata); 182 extern void main_RoundValues (); 183 extern void main_GnauralNet_StopStart (GtkMenuItem * menuitem); 184 extern void main_GnauralNet_JoinFriend (GtkMenuItem * menuitem); 185 extern void main_GnauralNet_PhaseInfo (GtkMenuItem * menuitem); 186 extern void main_GnauralNet_ShowInfo (GtkMenuItem * menuitem); 187 extern void main_AskUserForIP_Port (char *title, char *question, char *IP, 188 unsigned short Port, int type); 189 extern int main_CheckSndfileVersion (void); 190 extern int main_CheckSndfileFormat (int format); 191 extern void main_progressbar_button_press_event (GtkWidget * widget, 192 GdkEventButton * event); 193 extern int main_playAudio_SoundInit (); 194 extern void main_SelectFont (); 195 extern void main_DataPointSize (); 196 extern void main_OpenFromLibrary (); 197 extern void main_VoiceInfoFormatter_type (SG_Voice * curVoice, char *tmstr); 198 extern void main_VoiceInfoFormatter (SG_Voice * curVoice); 199 extern double Stopwatch (); //20101109 200 extern void main_PhaseInfoToggle (unsigned int ip, unsigned short port); 201 extern void main_DPPropertiesDialog (); 202 #endif 203