2003-06-10 Magnus Hjorth <magnus.hjorth@home.se> * Released version 1.2.3. * src/um.c: Changed to use mainloop. * src/gtkfiles.c (get_filename): Changed to use mainloop. 2003-06-09 Magnus Hjorth <magnus.hjorth@home.se> * src/mainwindow.c (create_menu): Menu reorganisation. * src/main.c (main): Redone "scheduling" code so the program works better under CPU load (hopefully). * src/samplesizedialog.c (samplesize_apply): Make sure the texts are updated. * src/sampleratedialog.c (apply): Make sure the texts are updated. * src/chunkview.c (chunk_view_set_view): Make sure the view cache follows when scrolling * src/configdialog.c (config_dialog_ok): Make the time display mode configurable. * src/chunk.c (get_time): Show in different formats depending on the variable get_time_mode 2003-06-07 Magnus Hjorth <magnus.hjorth@home.se> * src/chunkview.c (draw_mark): Draw the lines even if they're near the edge of the image. * src/player.c (player_work): Removed while loop since it seems to have caused lockups for some people and it's not necessary anymore anyways. 2003-05-30 Magnus Hjorth <magnus.hjorth@home.se> * src/chunk.c (chunk_read_array_fp): Bug causing failed assertion was fixed. (chunk_read_array): Same bug here. 2003-05-27 Magnus Hjorth <magnus.hjorth@home.se> * src/gtkfiles.c: Renamed errdlg_fread_bswap to e_fread_bswap. 2003-05-26 Magnus Hjorth <magnus.hjorth@home.se> * Released version 1.2.2. * src/vu_meter.c (vu_meter_expose): Added peak values * Large code rewrite finished affecting a lot of files but mainly chunk.c. Parts of chunk.c has been moved to datasource.c and filetypes.c. These changes fixed a few bugs, and hopefully will make the code easier to debug in the future. 2003-05-11 Magnus Hjorth <magnus.hjorth@home.se> * Released version 1.2.1. * src/chunk.c (chunk_copy_channel): Optimize for mono->stereo conversion. * src/mainwindow.c (effects_splitchannel): Another one of those segfault-on-cancel bugs. 2003-05-10 Magnus Hjorth <magnus.hjorth@home.se> * src/chunkview.c (chunk_view_size_request): Request a nice size. * Follow mode implemented. (mainwindow.c, chunkview.c). 2003-05-07 Magnus Hjorth <magnus.hjorth@home.se> * "Line Mode" option was removed. "Line mode quality" replaced by "View quality". * src/chunkview.c: Changed to use ViewCache. * src/viewcache.c: New file. 2003-04-10 Magnus Hjorth <magnus.hjorth@home.se> * src/gtkfiles.c: Changed API. 2003-04-08 Magnus Hjorth <magnus.hjorth@home.se> * src/chunk.c (chunk_read_array): Fixed offset bug causing data loss. 2003-03-10 Magnus Hjorth <magnus.hjorth@home.se> * src/mainwindow.c (effects_mixchannels): Fixed segfault on Cancel. 2003-01-26 Magnus Hjorth <magnus.hjorth@home.se> * src/historybox.h: New file. * src/pipedialog.c: Implemented a 'Pipe through program' effect. 2003-01-25 Magnus Hjorth <magnus.hjorth@home.se> * src/pipedialog.h: New file. * src/effectdialog.h: Documented. 2003-01-17 Magnus Hjorth <magnus.hjorth@home.se> * Released version 1.2.0. * src/recorddialog.c (record_dialog_execute): Make sure we store all available data. * src/chunk.c (chunk_save_to_wav): If we're saving a whole tempfile (or virtual) and that tempfile is in wav format, link or copy the file. This should speed up things for example when saving to wav directly after recording. 2003-01-16 Magnus Hjorth <magnus.hjorth@home.se> * src/configdialog.c: "Show time scale by default" setting added. * src/chunk.c (chunk_create_temp_finished): Write tempfiles in wav format instead of raw format. * Updated copyright notices. * src/chunk.c (_chunk_read_array): Multi-chunk bug fixed. * src/chunkview.c: Time scale functions. 2003-01-15 Magnus Hjorth <magnus.hjorth@home.se> * src/effectdialog.c (effect_dialog_set_mainwindow): Make sure we close after all files have been closed. * src/gotodialog.c: New file. 2003-01-12 Magnus Hjorth <magnus.hjorth@home.se> * Decided to throw away the multi-threaded player because the single-threaded version was better. Rename playthread.c to player.c. 2003-01-06 Magnus Hjorth <magnus.hjorth@home.se> * src/mainwindow.c (help_about): Add some info about compilation settings. 2003-01-02 Magnus Hjorth <magnus.hjorth@home.se> * src/chunk.h: Redefined chunk_filter_proc to be able to use new chunk_creat_temp... * src/chunk.c (chunk_create_temp_init): Made these functions re-entrant and cleaned them up. * src/sound.h: Added new calls output_wait and output_flush_buffers. Also made output_stop output all remaining data. 2003-01-01 Magnus Hjorth <magnus.hjorth@home.se> * src/chunk.c (chunk_new_from_wav): Avoid choking on very large files. 2002-12-29 Magnus Hjorth <magnus.hjorth@home.se> * src/main.c (get_home_directory): Made it re-entrant. * configure.in: Add checks for posix threads but also support systems where glib is configured without thread support. 2002-12-27 Magnus Hjorth <magnus.hjorth@home.se> * src/chunk.c (get_temp_filename): Use mutex to make it thread-safe. 2002-12-26 Magnus Hjorth <magnus.hjorth@home.se> * src/chunk.h: API change to chunk_open/read/close to support threads. 2002-12-25 Magnus Hjorth <magnus.hjorth@home.se> * src/playthread.c: New file. * src/mainwindow.c: Rebuilt undo system to also restore selection, cursor, view and marks. * Removed src/menu.c and src/menu.h (no longer needed). 2002-12-24 Magnus Hjorth <magnus.hjorth@home.se> * src/mainwindow.c (create_menu): Use GtkItemFactory. Added keyboard shortcuts. 2002-12-10 Magnus Hjorth <magnus.hjorth@home.se> * Released version 1.1.6. * src/mainwindow.c (file_close): Don't ask twice if file should be saved. 2002-11-29 Magnus Hjorth <magnus.hjorth@home.se> * src/sound-oss.c (oss_input_store): It seems SNDCTL_DSP_GETISPACE ioctl always returns 0 on some systems. We must ignore it in that case. * src/recorddialog.c (record_dialog_getformat): Crash in record dialog fixed. 2002-11-27 Magnus Hjorth <magnus.hjorth@home.se> * src/chunk.c (chunk_new_from_file): Don't try to open directories and other strange files... * src/gtkfiles.c (file_is_normal): New function. 2002-11-26 Magnus Hjorth <magnus.hjorth@home.se> * Updated IFDEFs in the code to match the configure script. 2002-11-25 Magnus Hjorth <magnus.hjorth@home.se> * configure.in: Changed most of the checking code. Output a configuration summary at the end. Use pkg-config for libsndfile check and allow manually specifying libsndfile prefix. 2002-11-12 Magnus Hjorth <magnus.hjorth@home.se> * Released version 1.1.5. * src/chunkview.c (draw_mark): GTK 2 compatibility fixed. * src/chunk.c (chunk_new_from_sndfile): Fixed a problem with big-endian files. 2002-11-11 Magnus Hjorth <magnus.hjorth@home.se> * src/chunk.c (backup_savefile): New nice saving algorithm. (chunk_dump): Close file after dumping. 2002-11-10 Magnus Hjorth <magnus.hjorth@home.se> * src/chunk.c (chunk_save_to_file): Some major changes to the saving code. Now tries to move old file instead of copying. * src/mainwindow.c (mainwindow_goto_mark): Start playing at mark position 2002-11-09 Magnus Hjorth <magnus.hjorth@home.se> * src/chunkview.c: Make marks move properly when cutting/pasting etc. 2002-11-06 Magnus Hjorth <magnus.hjorth@home.se> * src/chunk.c (chunk_filter): Added convert argument. (chunk_filter): Changed definition of chunk_filter_proc. All such functions must be updated. 2002-11-04 Magnus Hjorth <magnus.hjorth@home.se> * src/combinechannelsdialog.c (combine_channels_dialog_apply_proc): Ugly bug fixed. 2002-09-20 Magnus Hjorth <magnus.hjorth@home.se> * src/chunkview.c (chunk_view_set_chunk): Handle setting to same chunk properly. 2002-09-19 Magnus Hjorth <magnus.hjorth@home.se> * src/chunk.c (chunk_sample_put_array): New function. The file type system has been redesigned with the new libsndfile format enumeration functions. 2002-09-17 Magnus Hjorth <magnus.hjorth@home.se> * Changed configure.in to detect libsndfile 1.x * Released version 1.1.4. 2002-08-29 Magnus Hjorth <magnus.hjorth@home.se> * src/chunk.c (chunk_filter): Handle if user presses Cancel properly. 2002-07-30 Magnus Hjorth <magnus.hjorth@home.se> * configure.in: Added --disable-gtk2 option. 2002-07-29 Magnus Hjorth <magnus.hjorth@home.se> * src/recorddialog.c: GTK2 * src/float_box.c: GTK 2. * src/mainwindow.c: GTK 2 compatible. * src/effectdialog.c: GTK 2 compatible * src/um.c: GTK 2 compatible. * src/processdialog.c: GTK 2 compatible. * src/chunkview.c: GTK2 compatible. * src/sound-oss.c: GTK2 compatible. * src/int_box.c: GTK2 compatible. * src/chunk.c: Changed shutdown handler into destroy handler (for GTK 2.0) and made chunk_destroy support multiple invocations without crashing. * src/chunk.h: Cleaned up and heavily documented. 2002-07-28 Magnus Hjorth <magnus.hjorth@home.se> * src/chunk.h: Added member samplebytes to Chunk struct. 2002-05-24 Magnus Hjorth <magnus.hjorth@home.se> * src/chunk.h: Made chunk_samples_to_bytes/chunk_bytes_to_samples into macros. * src/chunk.c (chunk_sample_get_array): New function (speed improvement). 2002-04-14 Magnus Hjorth <magnus.hjorth@home.se> * Released version 1.1.3. 2002-04-10 Magnus Hjorth <magnus.hjorth@home.se> * src/mainwindow.c (create_toolbar): Added "Launch mixer" button. * src/button_mixer.xpm: New file. * src/recorddialog.c (record_dialog_init): Added "Launch Mixer" button. * src/configdialog.c (config_dialog_init): Added "mixer utility" option. * src/mainwindow.c (play_callback): To support non-threaded sound drivers, output_play is called with a NULL pointer if all data has been sent. (The drivers have been updated to support this). * src/sound.c: Added OSS driver. 2002-04-09 Magnus Hjorth <magnus.hjorth@home.se> * src/sound-oss.c: New file. 2002-04-04 Magnus Hjorth <magnus.hjorth@home.se> * src/configdialog.c: Added button for sound driver preferences. * src/sound.c: Add support for sound driver specific preferences dialog. 2002-04-03 Magnus Hjorth <magnus.hjorth@home.se> * src/sound.c: Added #include "main.h". 2002-04-02 Magnus Hjorth <magnus.hjorth@home.se> * Released version 1.1.2 * src/chunk.c (chunk_save_to_file): Ask for file type if it isn't possible to tell by the extension. * src/mainwindow.c (mainwindow_save): Don't update the file name if saving failed. * src/chunkview.c (chunk_view_set_chunk): Set the cursor to 0 when setting the chunk to NULL. 2002-04-01 Magnus Hjorth <magnus.hjorth@home.se> * src/um.c (user_message): Use gtk_label_set_line_wrap instead of doing it ourselves. 2002-03-31 Magnus Hjorth <magnus.hjorth@home.se> * src/chunk.c: libsndfile support finally in place!! Now supports a lot of nice new file formats. 2002-03-14 Magnus Hjorth <magnus.hjorth@home.se> * src/chunk.h (chunk_new_from_file): New functions for loading files (supports multiple formats and raw files). * src/rawdialog.c: New file. 2002-02-24 Magnus Hjorth <magnus.hjorth@home.se> * src/chunk.h (CHUNK_SNDFILE): New chunk type. * configure.in: Check for libsndfile library. 2002-02-22 Magnus Hjorth <magnus.hjorth@home.se> * src/chunk.c (chunk_filter): Reimplemented using chunk_read_block/chunk_create_temp. (chunk_parse): Reimplemented using chunk_read_block (chunk_filter): Changed interface. (chunk_convert_samplerate_proc): Fixed speed change when converting multichannel chunks. 2002-02-20 Magnus Hjorth <magnus.hjorth@home.se> * src/chunk.c (chunk_read): Just use chunk_read_block instead of doing everything ourselves. (chunk_create_temp_*): Now has write-behind caching so it buffers the data in memory and starts writing it to disk when the amount of data exceeds MAX_REAL_SIZE. (chunk_dump): Reimplemented using chunk_read_block * src/configdialog.c: Placed the OK button to the left of the Cancel button and left-adjusted the 'Outbut buffer size' label. 2002-02-20 Jens Askengren <jensus@linux.nu> * src/configdialog.c: Added accelerator keys and placed the buttons inside a GtkBBox. 2002-02-19 Magnus Hjorth <magnus.hjorth@home.se> * Released version 1.1.1 * configure.in: New option --without-check-casts. * src/mainwindow.c (play_compensate_change): Position the cursor properly. * src/chunkview.c (chunk_view_update_image): The selection should always be at least one pixel wide. 2002-02-18 Magnus Hjorth <magnus.hjorth@home.se> * src/recorddialog.c: Save the selected format into the inifile when ok is clicked, use that as default format next time. 2002-02-17 Magnus Hjorth <magnus.hjorth@home.se> * src/mainwindow.c (create_menu): New menu item 'Edit/Insert silence'. (create_menu): New menu item 'Edit/Clear undo buffer'. (create_menu): New menu item 'Edit/Clear Clipboard'. * src/chunk.c: New chunk type CHUNK_SILENCE. 2002-02-12 Magnus Hjorth <magnus.hjorth@home.se> * src/mainwindow.c (file_close): If File/Close is selected on the last window, don't close it, just set the chunk to NULL. * src/mainwindow.c (update_desc): Handle w->view->chunk==NULL. (mainwindow_shutdown): Small memory leak fixed. (file_close): File/Close does not always close the window now. * src/chunkview.c (chunk_view_set_chunk): Segfault fixed when changing the chunk back to NULL. (chunk_view_set_selection): Handle cv->chunk==NULL properly. * src/mainwindow.c (mainwindow_delete_event): Only stop playback when it's the same window that is playing and that is closing. 2002-02-09 Magnus Hjorth <magnus.hjorth@home.se> * src/chunk.c (chunk_save_to_wav): Big-endian bugfix. (big-endian is untested). (chunk_save_to_wav): Now uses chunk_dump instead of chunk_parse (should give a _big_ speedup). 2002-02-07 Magnus Hjorth <magnus.hjorth@home.se> * Released version 1.1 * src/chunkview.c (calc_x): Simple bug in if-statement that caused the selection color to go to the right edge in small files. (chunk_view_expose): Small cursor fix. * src/mainwindow.c (play_callback): Repeat the output loop if we reach play_end. This makes it possible to hear short looped sounds (shorter than 100ms). Don't repeat more than 1000 times though... * src/combinechannelsdialog.c: When the chunk changes, open a new dialog and close the current if the number of channels have changed, otherwise do nothing. 2002-02-06 Magnus Hjorth <magnus.hjorth@home.se> * src/chunkview.c (chunk_view_set_chunk): Make sure the cursor position doesn't get out of range when changing to a smaller chunk (caused segfault).. (chunk_view_update_sample_cache): Don't read samples out of range. * src/mainwindow.c (view_zoomin,view_zoomout): Using chunk_view_zoom. New menu item Edit/Mix paste! * src/chunkview.c (chunk_view_zoom): New function with better zooming. 2002-02-05 Magnus Hjorth <magnus.hjorth@home.se> * src/mainwindow.c (help_about): Cosmetic changes to About dialog. * src/configdialog.c (config_dialog_init): Added "use line mode by default" and "line mode quality" settings. * src/chunkview.c (chunk_view_update_image): Line mode improvements. (chunk_view_update_sample_cache): Made line mode quality an inifile entry. 2002-02-04 Magnus Hjorth <magnus.hjorth@home.se> * src/chunkview.c: Line mode implemented! * src/mainwindow.c (create_menu): New menu item View/Line mode * src/chunk.c: Created new type sample_t and using that for reading/writing samples. * configure.in: New option --with-double-samples. 2002-02-03 Magnus Hjorth <magnus.hjorth@home.se> * src/mainwindow.c: Menu reorganisation. * src/effectdialog.c (effect_dialog_set_mainwindow): Now using gtk_signal_connect_object_while_alive instead of doing its own cleanup. 2002-02-02 Magnus Hjorth <magnus.hjorth@home.se> * src/chunk.c: Clicking cancel during 'Mix channels...' caused segfault. Fixed. * src/float_box.c (floatbox_init): Small fix. * src/mainwindow.c: New menu item Effects/Combine channels... * src/effectdialog.c: New signal mainwindow_set * src/combinechannelsdialog.c: New file. * src/combinechannelsdialog.h: New file. 2002-02-01 Magnus Hjorth <magnus.hjorth@home.se> * src/mainwindow.c (create_menu): New menu item 'Edit/Preferences...'. * src/configdialog.c: New file. * src/configdialog.h: New file. * src/chunk.c: Now uses configfile setting diskEditingThreshold instead of compiled-in constant 512K. * src/sound-sdl.c, src/sound_portaudio.c: Uses configfile setting soundBufferSize for output buffer size instead of constant 64K. 2002-01-30 Magnus Hjorth <magnus.hjorth@home.se> * src/sound.c: Supports startup-time (instead of compile-time) selection of output driver now. * src/chunkview.c (chunk_view_motion_notify): Stupid bug, clicking in chunk view before loading anything into it caused crash. * src/inifile.c: New file. * src/inifile.h: New file. * src/chunk.c (chunk_shutdown): Another zero-length/refcounting fix. 2002-01-27 Magnus Hjorth <magnus.hjorth@home.se> * src/mainwindow.c (do_play): Zero-length fix. * src/recorddialog.c: Vu-meters working. * src/ringbuf.c: Thread safe (hopefully) using mutexes. 2002-01-26 Magnus Hjorth <magnus.hjorth@home.se> * src/chunk.c (chunk_sample_to_double): Changed type from float to double. * Sound recording works now!! * src/mainwindow.c (edit_cut): Fixed crash when cutting (or deleting) the entire file. * src/chunk.c (chunk_realize): Zero-length fix. * src/chunkview.c (chunk_view_set_view): Zero-length chunks bug fix. (calc_sample): Another zero-length fix. 2002-01-25 Magnus Hjorth <magnus.hjorth@home.se> * src/mainwindow.c (mainwindow_set_chunk): Set changed flag when filename != NULL * src/recorddialog.c: New file. * src/vu_meter.c: New file. * src/vu_meter.h: New file. 2002-01-24 Magnus Hjorth <magnus.hjorth@home.se> * src/formatselector.c: New file. * src/formatselector.h: New file. * src/recorddialog.h: New file. * src/mainwindow.c (create_toolbar): Added record button. (create_menu): Added record menuitem. * src/button_record.xpm: New file. * sound-portaudio.c: New file (portaudio sound driver). * Renamed output-* to sound-* 2002-01-23 Magnus Hjorth <magnus.hjorth@home.se> * src/mainwindow.c (help_about): Show the name of the sound driver. * Autoconf/automake system (yes!). *.c and *.h moved to src subdirectory. * Reorganized sound module. * mainwindow.c (mainwindow_realize): Use icon.xpm. * icon.xpm: New file. * main.h: New file. 2002-01-22 Magnus Hjorth <magnus.hjorth@home.se> * chunk.c (chunk_save_to_wav): Realize the saved chunk if it's small enough. * chunkview.c (chunk_view_redraw_samples): Redraw bug fixed. * mainwindow.c (create_toolbar): Two new toolbar buttons for setting selection start/end at cursor position. * button_cursorend.xpm: New file. * button_cursorstart.xpm: New file. * mainwindow.c (play_compensate_change): New internal function. This fixes segfaults when file shrinks while playing. (edit_paste): Call play_compensate_change. (edit_cut): Call play_compensate_change. (edit_pasteover): Call play_compensate_change. (edit_delete): Call play_compensate_change. (mainwindow_effect): Call do_stop or play_compensate_change. (mainwindow_effect_manual): Call do_stop or play_compensate_change. (edit_undo): Stop playing. (create_menu): New menuitems: 'Edit/Selection start at cursor' and 'Edit/Selection end at cursor'. * chunkview.c (do_chunk_view_set_cursor): Range-check the cursor argument. 2002-01-21 Magnus Hjorth <magnus.hjorth@home.se> * mainwindow.c (mainwindow_chunk_change): If the format is being changed on the currently playing file, playback must stop. * chunk.c (chunk_create_multichunk): Refcounting bug fixed. (chunk_create_multichunk): Forgot g_list_free(chunks);. * output-sdl.c (output_supports_format): More than two channels not supported. * README: New file. * chunk.c (chunk_new_from_wav): Better wav file format detection 2002-01-20 Magnus Hjorth <magnus.hjorth@home.se> * chunkview.c (chunk_view_update_image): changed selection color (calc_x): over/underflow causing selection to sometimes not draw correctly. (do_chunk_view_set_cursor): code cleanup * mainwindow.c (mainwindow_save): windows with changed==FALSE and filename==NULL have not been saved, so don't display the "are you sure?" dialog. 2002-01-19 Magnus Hjorth <magnus.hjorth@home.se> * Released version 1.0