From 7950cf338a4ed2bf65ea363609f58ee5e210e27d Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Wed, 9 May 2018 16:40:22 +0200 Subject: [PATCH] ChucK: update and package - Update and package ChucK, remove input support - Update and package Ogg, Vorbis, FLAC, and Libsndfile ports - Remove ChucK runtime scenarios - Add ChucK runtime package Fix #104 --- lib/mk/libFLAC.mk | 2 +- lib/symbols/libFLAC | 421 +++++++++++++++++++++++ lib/symbols/libogg | 71 ++++ lib/symbols/libsndfile | 316 +++++++++++++++++ lib/symbols/libvorbis | 131 +++++++ ports/chuck.hash | 2 +- ports/chuck.port | 30 +- ports/flac.hash | 2 +- ports/flac.port | 8 +- ports/liblo.hash | 2 +- ports/liblo.port | 2 +- ports/libogg.hash | 2 +- ports/libogg.port | 6 +- ports/libsndfile.hash | 2 +- ports/libsndfile.port | 4 +- ports/libvorbis.hash | 2 +- ports/libvorbis.port | 6 +- ports/rtaudio.hash | 2 +- ports/rtaudio.port | 2 +- recipes/api/libflac/content.mk | 12 + recipes/api/libflac/hash | 1 + recipes/api/liblo/content.mk | 26 ++ recipes/api/liblo/hash | 1 + recipes/api/libogg/content.mk | 14 + recipes/api/libogg/hash | 1 + recipes/api/libsndfile/content.mk | 13 + recipes/api/libsndfile/hash | 1 + recipes/api/libvorbis/content.mk | 12 + recipes/api/libvorbis/hash | 1 + recipes/api/rtaudio/content.mk | 16 + recipes/api/rtaudio/hash | 1 + recipes/pkg/chuck/README | 8 + recipes/pkg/chuck/archives | 9 + recipes/pkg/chuck/hash | 1 + recipes/pkg/chuck/runtime | 28 ++ recipes/src/chuck/content.mk | 13 + recipes/src/chuck/hash | 1 + recipes/src/chuck/used_apis | 15 + recipes/src/libflac/api | 1 + recipes/src/libflac/content.mk | 16 + recipes/src/libflac/hash | 1 + recipes/src/libflac/used_apis | 3 + recipes/src/libogg/api | 1 + recipes/src/libogg/content.mk | 16 + recipes/src/libogg/hash | 1 + recipes/src/libogg/used_apis | 2 + recipes/src/libsndfile/api | 1 + recipes/src/libsndfile/content.mk | 22 ++ recipes/src/libsndfile/hash | 1 + recipes/src/libsndfile/used_apis | 5 + recipes/src/libvorbis/api | 1 + recipes/src/libvorbis/content.mk | 16 + recipes/src/libvorbis/hash | 1 + recipes/src/libvorbis/used_apis | 3 + run/chuck.run | 100 ------ run/chuck_keyboard.run | 136 -------- run/chuck_mouse.run | 136 -------- src/app/chuck/PATH_MAX.patch | 16 + src/app/chuck/chuck_component.cc | 353 +++++++++++++++++++ src/app/chuck/component.cc | 412 ---------------------- src/app/chuck/disable_midi.patch | 14 + src/app/chuck/hid.patch | 61 ++++ src/app/chuck/patch | 551 ------------------------------ src/app/chuck/rterror.patch | 85 +++++ src/app/chuck/shell.patch | 13 + src/app/chuck/target.mk | 37 +- src/app/chuck/thread.patch | 35 ++ 67 files changed, 1837 insertions(+), 1390 deletions(-) create mode 100644 lib/symbols/libFLAC create mode 100644 lib/symbols/libogg create mode 100644 lib/symbols/libsndfile create mode 100644 lib/symbols/libvorbis create mode 100644 recipes/api/libflac/content.mk create mode 100644 recipes/api/libflac/hash create mode 100644 recipes/api/liblo/content.mk create mode 100644 recipes/api/liblo/hash create mode 100644 recipes/api/libogg/content.mk create mode 100644 recipes/api/libogg/hash create mode 100644 recipes/api/libsndfile/content.mk create mode 100644 recipes/api/libsndfile/hash create mode 100644 recipes/api/libvorbis/content.mk create mode 100644 recipes/api/libvorbis/hash create mode 100644 recipes/api/rtaudio/content.mk create mode 100644 recipes/api/rtaudio/hash create mode 100644 recipes/pkg/chuck/README create mode 100644 recipes/pkg/chuck/archives create mode 100644 recipes/pkg/chuck/hash create mode 100644 recipes/pkg/chuck/runtime create mode 100644 recipes/src/chuck/content.mk create mode 100644 recipes/src/chuck/hash create mode 100644 recipes/src/chuck/used_apis create mode 100644 recipes/src/libflac/api create mode 100644 recipes/src/libflac/content.mk create mode 100644 recipes/src/libflac/hash create mode 100644 recipes/src/libflac/used_apis create mode 100644 recipes/src/libogg/api create mode 100644 recipes/src/libogg/content.mk create mode 100644 recipes/src/libogg/hash create mode 100644 recipes/src/libogg/used_apis create mode 100644 recipes/src/libsndfile/api create mode 100644 recipes/src/libsndfile/content.mk create mode 100644 recipes/src/libsndfile/hash create mode 100644 recipes/src/libsndfile/used_apis create mode 100644 recipes/src/libvorbis/api create mode 100644 recipes/src/libvorbis/content.mk create mode 100644 recipes/src/libvorbis/hash create mode 100644 recipes/src/libvorbis/used_apis delete mode 100644 run/chuck.run delete mode 100644 run/chuck_keyboard.run delete mode 100644 run/chuck_mouse.run create mode 100644 src/app/chuck/PATH_MAX.patch create mode 100644 src/app/chuck/chuck_component.cc delete mode 100644 src/app/chuck/component.cc create mode 100644 src/app/chuck/disable_midi.patch create mode 100644 src/app/chuck/hid.patch delete mode 100644 src/app/chuck/patch create mode 100644 src/app/chuck/rterror.patch create mode 100644 src/app/chuck/shell.patch create mode 100644 src/app/chuck/thread.patch diff --git a/lib/mk/libFLAC.mk b/lib/mk/libFLAC.mk index 234113c..fbdd322 100644 --- a/lib/mk/libFLAC.mk +++ b/lib/mk/libFLAC.mk @@ -6,7 +6,7 @@ LIBS += libc libogg SHARED_LIB = yes -CC_OPT += -DHAVE_CONFIG_H +CC_DEF += -DHAVE_CONFIG_H INC_DIR += \ $(LIBFLAC_SRC_DIR)/include \ diff --git a/lib/symbols/libFLAC b/lib/symbols/libFLAC new file mode 100644 index 0000000..20a5a27 --- /dev/null +++ b/lib/symbols/libFLAC @@ -0,0 +1,421 @@ +FLAC_API_SUPPORTS_OGG_FLAC D 4 +FLAC__ChannelAssignmentString D 32 +FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE2_ESCAPE_PARAMETER R 4 +FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE2_PARAMETER_LEN R 4 +FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE_ESCAPE_PARAMETER R 4 +FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE_ORDER_LEN R 4 +FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE_PARAMETER_LEN R 4 +FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE_RAW_LEN R 4 +FLAC__ENTROPY_CODING_METHOD_TYPE_LEN R 4 +FLAC__EntropyCodingMethodTypeString D 16 +FLAC__FRAME_FOOTER_CRC_LEN R 4 +FLAC__FRAME_HEADER_BITS_PER_SAMPLE_LEN R 4 +FLAC__FRAME_HEADER_BLOCKING_STRATEGY_LEN R 4 +FLAC__FRAME_HEADER_BLOCK_SIZE_LEN R 4 +FLAC__FRAME_HEADER_CHANNEL_ASSIGNMENT_LEN R 4 +FLAC__FRAME_HEADER_CRC_LEN R 4 +FLAC__FRAME_HEADER_RESERVED_LEN R 4 +FLAC__FRAME_HEADER_SAMPLE_RATE_LEN R 4 +FLAC__FRAME_HEADER_SYNC R 4 +FLAC__FRAME_HEADER_SYNC_LEN R 4 +FLAC__FRAME_HEADER_ZERO_PAD_LEN R 4 +FLAC__FrameNumberTypeString D 16 +FLAC__MD5Accumulate T +FLAC__MD5Final T +FLAC__MD5Init T +FLAC__MetadataTypeString D 56 +FLAC__Metadata_ChainStatusString D 128 +FLAC__Metadata_SimpleIteratorStatusString D 104 +FLAC__OGG_MAPPING_FIRST_HEADER_PACKET_TYPE R 1 +FLAC__OGG_MAPPING_MAGIC D 8 +FLAC__OGG_MAPPING_NUM_HEADERS_LEN R 4 +FLAC__OGG_MAPPING_PACKET_TYPE_LEN R 4 +FLAC__OGG_MAPPING_VERSION_MAJOR_LEN R 4 +FLAC__OGG_MAPPING_VERSION_MINOR_LEN R 4 +FLAC__STREAM_METADATA_APPLICATION_ID_LEN R 4 +FLAC__STREAM_METADATA_CUESHEET_INDEX_NUMBER_LEN R 4 +FLAC__STREAM_METADATA_CUESHEET_INDEX_OFFSET_LEN R 4 +FLAC__STREAM_METADATA_CUESHEET_INDEX_RESERVED_LEN R 4 +FLAC__STREAM_METADATA_CUESHEET_IS_CD_LEN R 4 +FLAC__STREAM_METADATA_CUESHEET_LEAD_IN_LEN R 4 +FLAC__STREAM_METADATA_CUESHEET_MEDIA_CATALOG_NUMBER_LEN R 4 +FLAC__STREAM_METADATA_CUESHEET_NUM_TRACKS_LEN R 4 +FLAC__STREAM_METADATA_CUESHEET_RESERVED_LEN R 4 +FLAC__STREAM_METADATA_CUESHEET_TRACK_ISRC_LEN R 4 +FLAC__STREAM_METADATA_CUESHEET_TRACK_NUMBER_LEN R 4 +FLAC__STREAM_METADATA_CUESHEET_TRACK_NUM_INDICES_LEN R 4 +FLAC__STREAM_METADATA_CUESHEET_TRACK_OFFSET_LEN R 4 +FLAC__STREAM_METADATA_CUESHEET_TRACK_PRE_EMPHASIS_LEN R 4 +FLAC__STREAM_METADATA_CUESHEET_TRACK_RESERVED_LEN R 4 +FLAC__STREAM_METADATA_CUESHEET_TRACK_TYPE_LEN R 4 +FLAC__STREAM_METADATA_IS_LAST_LEN R 4 +FLAC__STREAM_METADATA_LENGTH_LEN R 4 +FLAC__STREAM_METADATA_PICTURE_COLORS_LEN R 4 +FLAC__STREAM_METADATA_PICTURE_DATA_LENGTH_LEN R 4 +FLAC__STREAM_METADATA_PICTURE_DEPTH_LEN R 4 +FLAC__STREAM_METADATA_PICTURE_DESCRIPTION_LENGTH_LEN R 4 +FLAC__STREAM_METADATA_PICTURE_HEIGHT_LEN R 4 +FLAC__STREAM_METADATA_PICTURE_MIME_TYPE_LENGTH_LEN R 4 +FLAC__STREAM_METADATA_PICTURE_TYPE_LEN R 4 +FLAC__STREAM_METADATA_PICTURE_WIDTH_LEN R 4 +FLAC__STREAM_METADATA_SEEKPOINT_FRAME_SAMPLES_LEN R 4 +FLAC__STREAM_METADATA_SEEKPOINT_PLACEHOLDER R 8 +FLAC__STREAM_METADATA_SEEKPOINT_SAMPLE_NUMBER_LEN R 4 +FLAC__STREAM_METADATA_SEEKPOINT_STREAM_OFFSET_LEN R 4 +FLAC__STREAM_METADATA_STREAMINFO_BITS_PER_SAMPLE_LEN R 4 +FLAC__STREAM_METADATA_STREAMINFO_CHANNELS_LEN R 4 +FLAC__STREAM_METADATA_STREAMINFO_MAX_BLOCK_SIZE_LEN R 4 +FLAC__STREAM_METADATA_STREAMINFO_MAX_FRAME_SIZE_LEN R 4 +FLAC__STREAM_METADATA_STREAMINFO_MD5SUM_LEN R 4 +FLAC__STREAM_METADATA_STREAMINFO_MIN_BLOCK_SIZE_LEN R 4 +FLAC__STREAM_METADATA_STREAMINFO_MIN_FRAME_SIZE_LEN R 4 +FLAC__STREAM_METADATA_STREAMINFO_SAMPLE_RATE_LEN R 4 +FLAC__STREAM_METADATA_STREAMINFO_TOTAL_SAMPLES_LEN R 4 +FLAC__STREAM_METADATA_TYPE_LEN R 4 +FLAC__STREAM_METADATA_VORBIS_COMMENT_ENTRY_LENGTH_LEN R 4 +FLAC__STREAM_METADATA_VORBIS_COMMENT_NUM_COMMENTS_LEN R 4 +FLAC__STREAM_SYNC R 4 +FLAC__STREAM_SYNC_LEN R 4 +FLAC__STREAM_SYNC_STRING R 4 +FLAC__SUBFRAME_LPC_QLP_COEFF_PRECISION_LEN R 4 +FLAC__SUBFRAME_LPC_QLP_SHIFT_LEN R 4 +FLAC__SUBFRAME_TYPE_CONSTANT_BYTE_ALIGNED_MASK R 4 +FLAC__SUBFRAME_TYPE_FIXED_BYTE_ALIGNED_MASK R 4 +FLAC__SUBFRAME_TYPE_LEN R 4 +FLAC__SUBFRAME_TYPE_LPC_BYTE_ALIGNED_MASK R 4 +FLAC__SUBFRAME_TYPE_VERBATIM_BYTE_ALIGNED_MASK R 4 +FLAC__SUBFRAME_WASTED_BITS_FLAG_LEN R 4 +FLAC__SUBFRAME_ZERO_PAD_LEN R 4 +FLAC__StreamDecoderErrorStatusString D 32 +FLAC__StreamDecoderInitStatusString D 48 +FLAC__StreamDecoderLengthStatusString D 24 +FLAC__StreamDecoderReadStatusString D 24 +FLAC__StreamDecoderSeekStatusString D 24 +FLAC__StreamDecoderStateString D 80 +FLAC__StreamDecoderTellStatusString D 24 +FLAC__StreamDecoderWriteStatusString D 16 +FLAC__StreamEncoderInitStatusString D 112 +FLAC__StreamEncoderReadStatusString D 32 +FLAC__StreamEncoderSeekStatusString D 24 +FLAC__StreamEncoderStateString D 72 +FLAC__StreamEncoderTellStatusString D 24 +FLAC__StreamEncoderWriteStatusString D 16 +FLAC__StreamMetadata_Picture_TypeString D 168 +FLAC__SubframeTypeString D 32 +FLAC__VENDOR_STRING D 8 +FLAC__VERSION_STRING D 8 +FLAC__add_metadata_block T +FLAC__bitmath_silog2 T +FLAC__bitreader_bits_left_for_byte_alignment T +FLAC__bitreader_clear T +FLAC__bitreader_delete T +FLAC__bitreader_dump T +FLAC__bitreader_free T +FLAC__bitreader_get_input_bits_unconsumed T +FLAC__bitreader_get_read_crc16 T +FLAC__bitreader_init T +FLAC__bitreader_is_consumed_byte_aligned T +FLAC__bitreader_new T +FLAC__bitreader_read_byte_block_aligned_no_crc T +FLAC__bitreader_read_raw_int32 T +FLAC__bitreader_read_raw_uint32 T +FLAC__bitreader_read_raw_uint64 T +FLAC__bitreader_read_rice_signed T +FLAC__bitreader_read_rice_signed_block T +FLAC__bitreader_read_uint32_little_endian T +FLAC__bitreader_read_unary_unsigned T +FLAC__bitreader_read_utf8_uint32 T +FLAC__bitreader_read_utf8_uint64 T +FLAC__bitreader_reset_read_crc16 T +FLAC__bitreader_skip_bits_no_crc T +FLAC__bitreader_skip_byte_block_aligned_no_crc T +FLAC__bitwriter_clear T +FLAC__bitwriter_delete T +FLAC__bitwriter_dump T +FLAC__bitwriter_free T +FLAC__bitwriter_get_buffer T +FLAC__bitwriter_get_input_bits_unconsumed T +FLAC__bitwriter_get_write_crc16 T +FLAC__bitwriter_get_write_crc8 T +FLAC__bitwriter_init T +FLAC__bitwriter_is_byte_aligned T +FLAC__bitwriter_new T +FLAC__bitwriter_release_buffer T +FLAC__bitwriter_rice_bits T +FLAC__bitwriter_write_byte_block T +FLAC__bitwriter_write_raw_int32 T +FLAC__bitwriter_write_raw_uint32 T +FLAC__bitwriter_write_raw_uint32_little_endian T +FLAC__bitwriter_write_raw_uint64 T +FLAC__bitwriter_write_rice_signed T +FLAC__bitwriter_write_rice_signed_block T +FLAC__bitwriter_write_unary_unsigned T +FLAC__bitwriter_write_utf8_uint32 T +FLAC__bitwriter_write_utf8_uint64 T +FLAC__bitwriter_write_zeroes T +FLAC__bitwriter_zero_pad_to_byte_boundary T +FLAC__cpu_info T +FLAC__crc16 T +FLAC__crc16_table R 1024 +FLAC__crc8 T +FLAC__crc8_table R 256 +FLAC__crc8_update T +FLAC__crc8_update_block T +FLAC__fixed_compute_best_predictor T +FLAC__fixed_compute_best_predictor_wide T +FLAC__fixed_compute_residual T +FLAC__fixed_restore_signal T +FLAC__format_blocksize_is_subset T +FLAC__format_cuesheet_is_legal T +FLAC__format_entropy_coding_method_partitioned_rice_contents_clear T +FLAC__format_entropy_coding_method_partitioned_rice_contents_ensure_size T +FLAC__format_entropy_coding_method_partitioned_rice_contents_init T +FLAC__format_get_max_rice_partition_order T +FLAC__format_get_max_rice_partition_order_from_blocksize T +FLAC__format_get_max_rice_partition_order_from_blocksize_limited_max_and_predictor_order T +FLAC__format_picture_is_legal T +FLAC__format_sample_rate_is_subset T +FLAC__format_sample_rate_is_valid T +FLAC__format_seektable_is_legal T +FLAC__format_seektable_sort T +FLAC__format_vorbiscomment_entry_is_legal T +FLAC__format_vorbiscomment_entry_name_is_legal T +FLAC__format_vorbiscomment_entry_value_is_legal T +FLAC__frame_add_header T +FLAC__lpc_compute_autocorrelation T +FLAC__lpc_compute_best_order T +FLAC__lpc_compute_expected_bits_per_residual_sample T +FLAC__lpc_compute_expected_bits_per_residual_sample_with_error_scale T +FLAC__lpc_compute_lp_coefficients T +FLAC__lpc_compute_residual_from_qlp_coefficients T +FLAC__lpc_compute_residual_from_qlp_coefficients_wide T +FLAC__lpc_quantize_coefficients T +FLAC__lpc_restore_signal T +FLAC__lpc_restore_signal_wide T +FLAC__lpc_window_data T +FLAC__memory_alloc_aligned T +FLAC__memory_alloc_aligned_int32_array T +FLAC__memory_alloc_aligned_real_array T +FLAC__memory_alloc_aligned_uint32_array T +FLAC__memory_alloc_aligned_uint64_array T +FLAC__memory_alloc_aligned_unsigned_array T +FLAC__metadata_chain_check_if_tempfile_needed T +FLAC__metadata_chain_delete T +FLAC__metadata_chain_merge_padding T +FLAC__metadata_chain_new T +FLAC__metadata_chain_read T +FLAC__metadata_chain_read_ogg T +FLAC__metadata_chain_read_ogg_with_callbacks T +FLAC__metadata_chain_read_with_callbacks T +FLAC__metadata_chain_sort_padding T +FLAC__metadata_chain_status T +FLAC__metadata_chain_write T +FLAC__metadata_chain_write_with_callbacks T +FLAC__metadata_chain_write_with_callbacks_and_tempfile T +FLAC__metadata_get_cuesheet T +FLAC__metadata_get_picture T +FLAC__metadata_get_streaminfo T +FLAC__metadata_get_tags T +FLAC__metadata_iterator_delete T +FLAC__metadata_iterator_delete_block T +FLAC__metadata_iterator_get_block T +FLAC__metadata_iterator_get_block_type T +FLAC__metadata_iterator_init T +FLAC__metadata_iterator_insert_block_after T +FLAC__metadata_iterator_insert_block_before T +FLAC__metadata_iterator_new T +FLAC__metadata_iterator_next T +FLAC__metadata_iterator_prev T +FLAC__metadata_iterator_set_block T +FLAC__metadata_object_application_set_data T +FLAC__metadata_object_clone T +FLAC__metadata_object_cuesheet_calculate_cddb_id T +FLAC__metadata_object_cuesheet_delete_track T +FLAC__metadata_object_cuesheet_insert_blank_track T +FLAC__metadata_object_cuesheet_insert_track T +FLAC__metadata_object_cuesheet_is_legal T +FLAC__metadata_object_cuesheet_resize_tracks T +FLAC__metadata_object_cuesheet_set_track T +FLAC__metadata_object_cuesheet_track_clone T +FLAC__metadata_object_cuesheet_track_delete T +FLAC__metadata_object_cuesheet_track_delete_data T +FLAC__metadata_object_cuesheet_track_delete_index T +FLAC__metadata_object_cuesheet_track_insert_blank_index T +FLAC__metadata_object_cuesheet_track_insert_index T +FLAC__metadata_object_cuesheet_track_new T +FLAC__metadata_object_cuesheet_track_resize_indices T +FLAC__metadata_object_delete T +FLAC__metadata_object_delete_data T +FLAC__metadata_object_is_equal T +FLAC__metadata_object_new T +FLAC__metadata_object_picture_is_legal T +FLAC__metadata_object_picture_set_data T +FLAC__metadata_object_picture_set_description T +FLAC__metadata_object_picture_set_mime_type T +FLAC__metadata_object_seektable_delete_point T +FLAC__metadata_object_seektable_insert_point T +FLAC__metadata_object_seektable_is_legal T +FLAC__metadata_object_seektable_resize_points T +FLAC__metadata_object_seektable_set_point T +FLAC__metadata_object_seektable_template_append_placeholders T +FLAC__metadata_object_seektable_template_append_point T +FLAC__metadata_object_seektable_template_append_points T +FLAC__metadata_object_seektable_template_append_spaced_points T +FLAC__metadata_object_seektable_template_append_spaced_points_by_samples T +FLAC__metadata_object_seektable_template_sort T +FLAC__metadata_object_vorbiscomment_append_comment T +FLAC__metadata_object_vorbiscomment_delete_comment T +FLAC__metadata_object_vorbiscomment_entry_from_name_value_pair T +FLAC__metadata_object_vorbiscomment_entry_matches T +FLAC__metadata_object_vorbiscomment_entry_to_name_value_pair T +FLAC__metadata_object_vorbiscomment_find_entry_from T +FLAC__metadata_object_vorbiscomment_insert_comment T +FLAC__metadata_object_vorbiscomment_remove_entries_matching T +FLAC__metadata_object_vorbiscomment_remove_entry_matching T +FLAC__metadata_object_vorbiscomment_replace_comment T +FLAC__metadata_object_vorbiscomment_resize_comments T +FLAC__metadata_object_vorbiscomment_set_comment T +FLAC__metadata_object_vorbiscomment_set_vendor_string T +FLAC__metadata_simple_iterator_delete T +FLAC__metadata_simple_iterator_delete_block T +FLAC__metadata_simple_iterator_get_application_id T +FLAC__metadata_simple_iterator_get_block T +FLAC__metadata_simple_iterator_get_block_length T +FLAC__metadata_simple_iterator_get_block_offset T +FLAC__metadata_simple_iterator_get_block_type T +FLAC__metadata_simple_iterator_init T +FLAC__metadata_simple_iterator_insert_block_after T +FLAC__metadata_simple_iterator_is_last T +FLAC__metadata_simple_iterator_is_writable T +FLAC__metadata_simple_iterator_new T +FLAC__metadata_simple_iterator_next T +FLAC__metadata_simple_iterator_prev T +FLAC__metadata_simple_iterator_set_block T +FLAC__metadata_simple_iterator_status T +FLAC__ogg_decoder_aspect_finish T +FLAC__ogg_decoder_aspect_flush T +FLAC__ogg_decoder_aspect_init T +FLAC__ogg_decoder_aspect_read_callback_wrapper T +FLAC__ogg_decoder_aspect_reset T +FLAC__ogg_decoder_aspect_set_defaults T +FLAC__ogg_decoder_aspect_set_serial_number T +FLAC__ogg_encoder_aspect_finish T +FLAC__ogg_encoder_aspect_init T +FLAC__ogg_encoder_aspect_set_defaults T +FLAC__ogg_encoder_aspect_set_num_metadata T +FLAC__ogg_encoder_aspect_set_serial_number T +FLAC__ogg_encoder_aspect_write_callback_wrapper T +FLAC__stream_decoder_delete T +FLAC__stream_decoder_finish T +FLAC__stream_decoder_flush T +FLAC__stream_decoder_get_bits_per_sample T +FLAC__stream_decoder_get_blocksize T +FLAC__stream_decoder_get_channel_assignment T +FLAC__stream_decoder_get_channels T +FLAC__stream_decoder_get_decode_position T +FLAC__stream_decoder_get_input_bytes_unconsumed T +FLAC__stream_decoder_get_md5_checking T +FLAC__stream_decoder_get_resolved_state_string T +FLAC__stream_decoder_get_sample_rate T +FLAC__stream_decoder_get_state T +FLAC__stream_decoder_get_total_samples T +FLAC__stream_decoder_init_FILE T +FLAC__stream_decoder_init_file T +FLAC__stream_decoder_init_ogg_FILE T +FLAC__stream_decoder_init_ogg_file T +FLAC__stream_decoder_init_ogg_stream T +FLAC__stream_decoder_init_stream T +FLAC__stream_decoder_new T +FLAC__stream_decoder_process_single T +FLAC__stream_decoder_process_until_end_of_metadata T +FLAC__stream_decoder_process_until_end_of_stream T +FLAC__stream_decoder_reset T +FLAC__stream_decoder_seek_absolute T +FLAC__stream_decoder_set_md5_checking T +FLAC__stream_decoder_set_metadata_ignore T +FLAC__stream_decoder_set_metadata_ignore_all T +FLAC__stream_decoder_set_metadata_ignore_application T +FLAC__stream_decoder_set_metadata_respond T +FLAC__stream_decoder_set_metadata_respond_all T +FLAC__stream_decoder_set_metadata_respond_application T +FLAC__stream_decoder_set_ogg_serial_number T +FLAC__stream_decoder_skip_single_frame T +FLAC__stream_encoder_delete T +FLAC__stream_encoder_disable_constant_subframes T +FLAC__stream_encoder_disable_fixed_subframes T +FLAC__stream_encoder_disable_verbatim_subframes T +FLAC__stream_encoder_finish T +FLAC__stream_encoder_get_bits_per_sample T +FLAC__stream_encoder_get_blocksize T +FLAC__stream_encoder_get_channels T +FLAC__stream_encoder_get_do_escape_coding T +FLAC__stream_encoder_get_do_exhaustive_model_search T +FLAC__stream_encoder_get_do_md5 T +FLAC__stream_encoder_get_do_mid_side_stereo T +FLAC__stream_encoder_get_do_qlp_coeff_prec_search T +FLAC__stream_encoder_get_loose_mid_side_stereo T +FLAC__stream_encoder_get_max_lpc_order T +FLAC__stream_encoder_get_max_residual_partition_order T +FLAC__stream_encoder_get_min_residual_partition_order T +FLAC__stream_encoder_get_qlp_coeff_precision T +FLAC__stream_encoder_get_resolved_state_string T +FLAC__stream_encoder_get_rice_parameter_search_dist T +FLAC__stream_encoder_get_sample_rate T +FLAC__stream_encoder_get_state T +FLAC__stream_encoder_get_streamable_subset T +FLAC__stream_encoder_get_total_samples_estimate T +FLAC__stream_encoder_get_verify T +FLAC__stream_encoder_get_verify_decoder_error_stats T +FLAC__stream_encoder_get_verify_decoder_state T +FLAC__stream_encoder_init_FILE T +FLAC__stream_encoder_init_file T +FLAC__stream_encoder_init_ogg_FILE T +FLAC__stream_encoder_init_ogg_file T +FLAC__stream_encoder_init_ogg_stream T +FLAC__stream_encoder_init_stream T +FLAC__stream_encoder_new T +FLAC__stream_encoder_process T +FLAC__stream_encoder_process_interleaved T +FLAC__stream_encoder_set_apodization T +FLAC__stream_encoder_set_bits_per_sample T +FLAC__stream_encoder_set_blocksize T +FLAC__stream_encoder_set_channels T +FLAC__stream_encoder_set_compression_level T +FLAC__stream_encoder_set_do_escape_coding T +FLAC__stream_encoder_set_do_exhaustive_model_search T +FLAC__stream_encoder_set_do_md5 T +FLAC__stream_encoder_set_do_mid_side_stereo T +FLAC__stream_encoder_set_do_qlp_coeff_prec_search T +FLAC__stream_encoder_set_loose_mid_side_stereo T +FLAC__stream_encoder_set_max_lpc_order T +FLAC__stream_encoder_set_max_residual_partition_order T +FLAC__stream_encoder_set_metadata T +FLAC__stream_encoder_set_min_residual_partition_order T +FLAC__stream_encoder_set_ogg_serial_number T +FLAC__stream_encoder_set_qlp_coeff_precision T +FLAC__stream_encoder_set_rice_parameter_search_dist T +FLAC__stream_encoder_set_sample_rate T +FLAC__stream_encoder_set_streamable_subset T +FLAC__stream_encoder_set_total_samples_estimate T +FLAC__stream_encoder_set_verify T +FLAC__subframe_add_constant T +FLAC__subframe_add_fixed T +FLAC__subframe_add_lpc T +FLAC__subframe_add_verbatim T +FLAC__window_bartlett T +FLAC__window_bartlett_hann T +FLAC__window_blackman T +FLAC__window_blackman_harris_4term_92db_sidelobe T +FLAC__window_connes T +FLAC__window_flattop T +FLAC__window_gauss T +FLAC__window_hamming T +FLAC__window_hann T +FLAC__window_kaiser_bessel T +FLAC__window_nuttall T +FLAC__window_partial_tukey T +FLAC__window_punchout_tukey T +FLAC__window_rectangle T +FLAC__window_triangle T +FLAC__window_tukey T +FLAC__window_welch T diff --git a/lib/symbols/libogg b/lib/symbols/libogg new file mode 100644 index 0000000..29aaa94 --- /dev/null +++ b/lib/symbols/libogg @@ -0,0 +1,71 @@ +ogg_packet_clear T +ogg_page_bos T +ogg_page_checksum_set T +ogg_page_continued T +ogg_page_eos T +ogg_page_granulepos T +ogg_page_packets T +ogg_page_pageno T +ogg_page_serialno T +ogg_page_version T +ogg_stream_check T +ogg_stream_clear T +ogg_stream_destroy T +ogg_stream_eos T +ogg_stream_flush T +ogg_stream_flush_fill T +ogg_stream_init T +ogg_stream_iovecin T +ogg_stream_packetin T +ogg_stream_packetout T +ogg_stream_packetpeek T +ogg_stream_pagein T +ogg_stream_pageout T +ogg_stream_pageout_fill T +ogg_stream_reset T +ogg_stream_reset_serialno T +ogg_sync_buffer T +ogg_sync_check T +ogg_sync_clear T +ogg_sync_destroy T +ogg_sync_init T +ogg_sync_pageout T +ogg_sync_pageseek T +ogg_sync_reset T +ogg_sync_wrote T +oggpackB_adv T +oggpackB_adv1 T +oggpackB_bits T +oggpackB_bytes T +oggpackB_get_buffer T +oggpackB_look T +oggpackB_look1 T +oggpackB_read T +oggpackB_read1 T +oggpackB_readinit T +oggpackB_reset T +oggpackB_write T +oggpackB_writealign T +oggpackB_writecheck T +oggpackB_writeclear T +oggpackB_writecopy T +oggpackB_writeinit T +oggpackB_writetrunc T +oggpack_adv T +oggpack_adv1 T +oggpack_bits T +oggpack_bytes T +oggpack_get_buffer T +oggpack_look T +oggpack_look1 T +oggpack_read T +oggpack_read1 T +oggpack_readinit T +oggpack_reset T +oggpack_write T +oggpack_writealign T +oggpack_writecheck T +oggpack_writeclear T +oggpack_writecopy T +oggpack_writeinit T +oggpack_writetrunc T diff --git a/lib/symbols/libsndfile b/lib/symbols/libsndfile new file mode 100644 index 0000000..c5a01f4 --- /dev/null +++ b/lib/symbols/libsndfile @@ -0,0 +1,316 @@ +BitBufferAdvance T +BitBufferByteAlign T +BitBufferGetPosition T +BitBufferInit T +BitBufferPeek T +BitBufferPeekOne T +BitBufferRead T +BitBufferReadOne T +BitBufferReadSmall T +BitBufferReset T +BitBufferRewind T +BitBufferUnpackBERSize T +BitBufferWrite T +Gsm_Coder T +Gsm_Decoder T +Gsm_LPC_Analysis T +Gsm_Long_Term_Predictor T +Gsm_Long_Term_Synthesis_Filtering T +Gsm_Preprocess T +Gsm_RPE_Decoding T +Gsm_RPE_Encoding T +Gsm_Short_Term_Analysis_Filter T +Gsm_Short_Term_Synthesis_Filter T +adpcm_decode T +adpcm_encode T +aiff_caf_find_channel_layout_tag T +aiff_caf_of_channel_layout_tag T +aiff_ima_init T +aiff_open T +alac_decode T +alac_decoder_init T +alac_encode T +alac_encoder_init T +alac_get_desc_chunk_items T +alac_get_magic_cookie T +alac_get_magic_cookie_size T +alac_get_source_format T +alac_init T +alac_set_fastmode T +alaw_init T +append_snprintf T +au_open T +audio_detect T +avr_open T +broadcast_var_alloc T +broadcast_var_get T +broadcast_var_set T +caf_open T +cart_var_alloc T +cart_var_get T +cart_var_set T +copyPredictorTo20 T +copyPredictorTo24 T +copyPredictorTo24Shift T +copyPredictorTo32 T +copyPredictorTo32Shift T +copy_coefs T +dither_init T +double64_be_read T +double64_be_write T +double64_init T +double64_le_read T +double64_le_write T +dwd_open T +dwvw_init T +dyn_comp T +dyn_decomp T +flac_init T +flac_open T +float32_be_read T +float32_be_write T +float32_init T +float32_le_read T +float32_le_write T +g721_decoder T +g721_encoder T +g723_16_decoder T +g723_16_encoder T +g723_24_decoder T +g723_24_encoder T +g723_40_decoder T +g723_40_encoder T +g72x_decode_block T +g72x_encode_block T +g72x_init T +g72x_reader_init T +g72x_writer_init T +gsm610_init T +gsm_A D 16 +gsm_B D 16 +gsm_DLB D 8 +gsm_FAC D 16 +gsm_H D 22 +gsm_INVA D 16 +gsm_L_add T +gsm_L_asl T +gsm_L_asr T +gsm_L_mult T +gsm_L_sub T +gsm_MAC D 16 +gsm_MIC D 16 +gsm_NRFAC D 16 +gsm_QLB D 8 +gsm_abs T +gsm_add T +gsm_asl T +gsm_asr T +gsm_create T +gsm_decode T +gsm_destroy T +gsm_div T +gsm_encode T +gsm_init T +gsm_mult T +gsm_mult_r T +gsm_norm T +gsm_option T +gsm_sub T +htk_open T +id3_skip T +ima_oki_adpcm_decode_block T +ima_oki_adpcm_encode_block T +ima_oki_adpcm_init T +init_coefs T +interleave_init T +ircam_open T +kALACEncoderMagic R 4 +kDefaultMixBits R 4 +kDefaultMixRes R 4 +kDefaultNumUV R 4 +kMaxBitDepth R 4 +kMaxRes R 4 +kMaxSampleSize R 4 +kMaxUV R 4 +kMinUV R 4 +macos_guess_file_type T +mat4_open T +mat5_open T +mix16 T +mix20 T +mix24 T +mix32 T +mpc2k_open T +nist_open T +ogg_open T +ogg_opus_open T +ogg_pcm_open T +ogg_speex_open T +ogg_vorbis_open T +paf_open T +pc_block T +pcm_init T +predictor_pole T +predictor_zero T +private_init_state T +psf_allocate T +psf_asciiheader_printf T +psf_binheader_readf T +psf_binheader_writef T +psf_calc_max_all_channels T +psf_calc_signal_max T +psf_close_rsrc T +psf_cues_alloc T +psf_cues_dup T +psf_d2i_array T +psf_d2i_clip_array T +psf_d2s_array T +psf_d2s_clip_array T +psf_decode_frame_count T +psf_default_seek T +psf_f2i_array T +psf_f2i_clip_array T +psf_f2s_array T +psf_f2s_clip_array T +psf_fclose T +psf_fgets T +psf_file_valid T +psf_find_read_chunk_iterator T +psf_find_read_chunk_m32 T +psf_find_read_chunk_str T +psf_fopen T +psf_fread T +psf_fseek T +psf_fsync T +psf_ftell T +psf_ftruncate T +psf_fwrite T +psf_get_chunk_iterator T +psf_get_cues T +psf_get_date_str T +psf_get_filelen T +psf_get_format_info T +psf_get_format_major T +psf_get_format_major_count T +psf_get_format_simple T +psf_get_format_simple_count T +psf_get_format_subtype T +psf_get_format_subtype_count T +psf_get_max_all_channels T +psf_get_signal_max T +psf_get_string T +psf_hexdump T +psf_init_files T +psf_instrument_alloc T +psf_is_pipe T +psf_location_string_count T +psf_log_SF_INFO T +psf_log_printf T +psf_memset T +psf_next_chunk_iterator T +psf_open_file T +psf_open_rsrc T +psf_open_tmpfile T +psf_rand_int32 T +psf_sanitize_string T +psf_save_write_chunk T +psf_set_file T +psf_set_stdio T +psf_set_string T +psf_store_read_chunk_str T +psf_store_read_chunk_u32 T +psf_store_string T +psf_strlcpy_crlf T +psf_use_rsrc T +pvf_open T +quantize T +raw_open T +reconstruct T +rf64_open T +rx2_open T +s_bitwidth_to_subformat T +sd2_open T +sds_open T +set_ag_params T +set_standard_ag_params T +sf_close T +sf_command T +sf_current_byterate T +sf_errno B 4 +sf_error T +sf_error_number T +sf_error_str T +sf_format_check T +sf_get_chunk_data T +sf_get_chunk_iterator T +sf_get_chunk_size T +sf_get_string T +sf_next_chunk_iterator T +sf_open T +sf_open_fd T +sf_open_virtual T +sf_perror T +sf_read_double T +sf_read_float T +sf_read_int T +sf_read_raw T +sf_read_short T +sf_readf_double T +sf_readf_float T +sf_readf_int T +sf_readf_short T +sf_seek T +sf_set_chunk T +sf_set_string T +sf_strerror T +sf_version_string T +sf_write_double T +sf_write_float T +sf_write_int T +sf_write_raw T +sf_write_short T +sf_write_sync T +sf_writef_double T +sf_writef_float T +sf_writef_int T +sf_writef_short T +step_size T +str_of_endianness T +str_of_major_format T +str_of_minor_format T +str_of_open_mode T +subformat_to_bytewidth T +svx_open T +txw_open T +u_bitwidth_to_subformat T +ulaw_init T +unmix16 T +unmix20 T +unmix24 T +unmix32 T +unpc_block T +update T +voc_open T +vox_adpcm_init T +w64_open T +wav_open T +wavlike_analyze T +wavlike_format_str T +wavlike_gen_channel_mask T +wavlike_ima_init T +wavlike_msadpcm_init T +wavlike_msadpcm_write_adapt_coeffs T +wavlike_read_bext_chunk T +wavlike_read_cart_chunk T +wavlike_read_fmt_chunk T +wavlike_read_peak_chunk T +wavlike_srate2blocksize T +wavlike_subchunk_parse T +wavlike_write_bext_chunk T +wavlike_write_cart_chunk T +wavlike_write_custom_chunks T +wavlike_write_guid T +wavlike_write_peak_chunk T +wavlike_write_strings T +wve_open T +xi_open T diff --git a/lib/symbols/libvorbis b/lib/symbols/libvorbis new file mode 100644 index 0000000..689dc25 --- /dev/null +++ b/lib/symbols/libvorbis @@ -0,0 +1,131 @@ +drft_backward T +drft_clear T +drft_forward T +drft_init T +floor0_exportbundle D 56 +floor1_encode T +floor1_exportbundle D 56 +floor1_fit T +floor1_interpolate_fit T +main T +mapping0_exportbundle D 40 +mdct_backward T +mdct_clear T +mdct_forward T +mdct_init T +ov_bitrate T +ov_bitrate_instant T +ov_clear T +ov_comment T +ov_crosslap T +ov_fopen T +ov_halfrate T +ov_halfrate_p T +ov_ilog T +ov_info T +ov_open T +ov_open_callbacks T +ov_pcm_seek T +ov_pcm_seek_lap T +ov_pcm_seek_page T +ov_pcm_seek_page_lap T +ov_pcm_tell T +ov_pcm_total T +ov_raw_seek T +ov_raw_seek_lap T +ov_raw_tell T +ov_raw_total T +ov_read T +ov_read_filter T +ov_read_float T +ov_seekable T +ov_serialnumber T +ov_streams T +ov_test T +ov_test_callbacks T +ov_test_open T +ov_time_seek T +ov_time_seek_lap T +ov_time_seek_page T +ov_time_seek_page_lap T +ov_time_tell T +ov_time_total T +res0_free_info T +res0_free_look T +res0_inverse T +res0_look T +res0_pack T +res0_unpack T +res1_class T +res1_forward T +res1_inverse T +res2_class T +res2_forward T +res2_inverse T +residue0_exportbundle D 64 +residue1_exportbundle D 64 +residue2_exportbundle D 64 +vorbis_analysis T +vorbis_analysis_blockout T +vorbis_analysis_buffer T +vorbis_analysis_headerout T +vorbis_analysis_init T +vorbis_analysis_wrote T +vorbis_bitrate_addblock T +vorbis_bitrate_clear T +vorbis_bitrate_flushpacket T +vorbis_bitrate_init T +vorbis_bitrate_managed T +vorbis_block_clear T +vorbis_block_init T +vorbis_book_clear T +vorbis_book_codelen T +vorbis_book_codeword T +vorbis_book_decode T +vorbis_book_decodev_add T +vorbis_book_decodev_set T +vorbis_book_decodevs_add T +vorbis_book_decodevv_add T +vorbis_book_encode T +vorbis_book_init_decode T +vorbis_book_init_encode T +vorbis_comment_add T +vorbis_comment_add_tag T +vorbis_comment_clear T +vorbis_comment_init T +vorbis_comment_query T +vorbis_comment_query_count T +vorbis_commentheader_out T +vorbis_dsp_clear T +vorbis_encode_ctl T +vorbis_encode_init T +vorbis_encode_init_vbr T +vorbis_encode_setup_init T +vorbis_encode_setup_managed T +vorbis_encode_setup_vbr T +vorbis_granule_time T +vorbis_info_blocksize T +vorbis_info_clear T +vorbis_info_init T +vorbis_lpc_from_data T +vorbis_lpc_predict T +vorbis_lpc_to_lsp T +vorbis_lsp_to_curve T +vorbis_packet_blocksize T +vorbis_staticbook_destroy T +vorbis_staticbook_pack T +vorbis_staticbook_unpack T +vorbis_synthesis T +vorbis_synthesis_blockin T +vorbis_synthesis_halfrate T +vorbis_synthesis_halfrate_p T +vorbis_synthesis_headerin T +vorbis_synthesis_idheader T +vorbis_synthesis_init T +vorbis_synthesis_lapout T +vorbis_synthesis_pcmout T +vorbis_synthesis_read T +vorbis_synthesis_restart T +vorbis_synthesis_trackonly T +vorbis_version_string T +vorbis_window T diff --git a/ports/chuck.hash b/ports/chuck.hash index 78cc7b2..7bdb994 100644 --- a/ports/chuck.hash +++ b/ports/chuck.hash @@ -1 +1 @@ -2102b7a4b8ff35eaf1274de9c8f483842df06307 +baa912c712440e4b793e92bef50c190af77bbbda diff --git a/ports/chuck.port b/ports/chuck.port index 2167397..822dfad 100644 --- a/ports/chuck.port +++ b/ports/chuck.port @@ -1,5 +1,5 @@ LICENSE := GPL2 -VERSION := 1.3.5.2 +VERSION := 1.4.0.0 DOWNLOADS := chuck.archive # @@ -8,28 +8,26 @@ DOWNLOADS := chuck.archive $(call check_tool,lex) $(call check_tool,bison) -OWNER := ccrma -REPO := chuck -REV := 53f99be5498c6b1deb59aa2c223e75326820a30b -URL(chuck) := https://github.com/$(OWNER)/$(REPO)/archive/$(REV).tar.gz -SHA(chuck) := 6b47779bb8c800261b7dac0e80302e96f9c9fc42 +URL(chuck) := http://chuck.cs.princeton.edu/release/files/chuck-$(VERSION).tgz +SHA(chuck) := 2caee332b8d48e2fddad0f8a0a1811b6cf4c5afab73ae8a17b85ec759cce27ac DIR(chuck) := src/app/chuck -DIRS := include/chuck -DIR_CONTENT(include/chuck) := src/app/chuck/src/*.h - -PATCHES := src/app/chuck/patch +PATCHES := $(wildcard $(REP_DIR)/src/app/chuck/*.patch) PATCH_OPT := -p1 -d src/app/chuck -CHUCK_TAB = src/app/chuck/src/chuck.tab.c src/app/chuck/src/chuck.tab.h +CHUCK_TAB = src/app/chuck/src/core/chuck.tab.c src/app/chuck/src/core/chuck.tab.h -_dirs: $(DOWNLOADS) $(CHUCK_TAB) src/app/chuck/src/chuck.yy.c - $(VERBOSE) find src/app/chuck -name RtAudio.h -delete +_dirs: $(DOWNLOADS) $(CHUCK_TAB) src/app/chuck/src/core/chuck.yy.c src/app/chuck/src/host/RtAudio.deleted -$(CHUCK_TAB): src/app/chuck/src/chuck.y $(DOWNLOADS) +src/app/chuck/src/host/RtAudio.deleted: src/app/chuck/src/host/RtAudio + $(VERBOSE)rm -r $< + +.PHONEY: src/app/chuck/src/host/RtAudio.deleted + +$(CHUCK_TAB): src/app/chuck/src/core/chuck.y $(DOWNLOADS) @$(MSG_GENERATE)$(notdir $@) - $(VERBOSE)$(YACC) -dv -b src/app/chuck/src/chuck $< + $(VERBOSE)$(YACC) -dv -b src/app/chuck/src/core/chuck $< -src/app/chuck/src/chuck.yy.c: src/app/chuck/src/chuck.lex $(DOWNLOADS) +src/app/chuck/src/core/chuck.yy.c: src/app/chuck/src/core/chuck.lex $(DOWNLOADS) @$(MSG_GENERATE)$(notdir $@) $(VERBOSE)$(LEX) -o$@ $< diff --git a/ports/flac.hash b/ports/flac.hash index b6a8928..2d4a97a 100644 --- a/ports/flac.hash +++ b/ports/flac.hash @@ -1 +1 @@ -f8f110544e8b8be4d96cca156292d7719fa9baf1 +e79363a242a5a5d2d2804cab68af905f387cfa8d diff --git a/ports/flac.port b/ports/flac.port index 414d46f..034f3f0 100644 --- a/ports/flac.port +++ b/ports/flac.port @@ -1,9 +1,11 @@ LICENSE := BSD -VERSION := 1.3.1 +VERSION := 1.3.2 DOWNLOADS := flac.archive +# See https://downloads.xiph.org/releases/flac/SHA256SUMS.txt + URL(flac) := http://downloads.xiph.org/releases/flac/flac-$(VERSION).tar.xz -SHA(flac) := 38e17439d11be26207e4af0ff50973815694b26f +SHA(flac) := 91cfc3ed61dc40f47f050a109b08610667d73477af6ef36dcad31c31a4a8d53f DIR(flac) := src/lib/flac DIRS := include/FLAC include/FLAC++ @@ -15,7 +17,7 @@ _dirs: src/lib/flac/include/config.h src/lib/flac/include/config.h: src/lib/flac/config.h.in @$(MSG_GENERATE)$@ $(VERBOSE) sed \ - -e 's/#undef VERSION/#define VERSION "$(VERSION)"/'\ + -e 's/#undef PACKAGE_VERSION/#define PACKAGE_VERSION "$(VERSION)"/'\ -e 's/#undef FLAC__HAS_OGG/#define FLAC__HAS_OGG 1/' \ -e 's/#undef HAVE_LROUND/#define HAVE_LROUND 1/' \ $< > $@ diff --git a/ports/liblo.hash b/ports/liblo.hash index 7d3daea..a4f1f22 100644 --- a/ports/liblo.hash +++ b/ports/liblo.hash @@ -1 +1 @@ -f1d81edaaa6fcb01a431a90eabcce701cc1be936 +56dfde15670bf5fb834e579a0a005afd0d05b83c diff --git a/ports/liblo.port b/ports/liblo.port index 451e70f..5eaedf6 100644 --- a/ports/liblo.port +++ b/ports/liblo.port @@ -3,7 +3,7 @@ VERSION := 0.28 DOWNLOADS := liblo.archive URL(liblo) := http://downloads.sourceforge.net/liblo/liblo-$(VERSION).tar.gz -SHA(liblo) := 949d5f0c9919741c67602514786b9c7366fa001b +SHA(liblo) := da94a9b67b93625354dd89ff7fe31e5297fc9400b6eaf7378c82ee1caf7db909 DIR(liblo) := src/lib/liblo DIRS := include/lo diff --git a/ports/libogg.hash b/ports/libogg.hash index b87ff4d..28bac95 100644 --- a/ports/libogg.hash +++ b/ports/libogg.hash @@ -1 +1 @@ -99b7247b4569173f8dc2847bbbb83289f023cfc4 +e94cd0e5e6edde8033bbe849610a4a95fb7a173d diff --git a/ports/libogg.port b/ports/libogg.port index 757507d..dfd91e6 100644 --- a/ports/libogg.port +++ b/ports/libogg.port @@ -1,9 +1,11 @@ LICENSE := BSD -VERSION := 1.3.2 +VERSION := 1.3.3 DOWNLOADS := libogg.archive +# See https://ftp.osuosl.org/pub/xiph/releases/ogg/SHA256SUMS + URL(libogg) := http://downloads.xiph.org/releases/ogg/libogg-$(VERSION).tar.xz -SHA(libogg) := 5e525ec6a4135066932935c01d2c309ea5009f8d +SHA(libogg) := 4f3fc6178a533d392064f14776b23c397ed4b9f48f5de297aba73b643f955c08 DIR(libogg) := src/lib/libogg DIRS := include/ogg diff --git a/ports/libsndfile.hash b/ports/libsndfile.hash index fdf7303..e0179b0 100644 --- a/ports/libsndfile.hash +++ b/ports/libsndfile.hash @@ -1 +1 @@ -41341b932e218ac50339c0c840644f8d6d2f7a18 +de35e4850d1528e2673f9d6ed9cfae4d999038f2 diff --git a/ports/libsndfile.port b/ports/libsndfile.port index 74e2c32..955d80c 100644 --- a/ports/libsndfile.port +++ b/ports/libsndfile.port @@ -1,9 +1,9 @@ LICENSE := GPLv3 -VERSION := 1.0.27 +VERSION := 1.0.28 DOWNLOADS := libsndfile.archive URL(libsndfile) := http://www.mega-nerd.com/libsndfile/files/libsndfile-$(VERSION).tar.gz -SHA(libsndfile) := e112d4937352d1722b06911b00c79e9bce15095c +SHA(libsndfile) := 1ff33929f042fa333aed1e8923aa628c3ee9e1eb85512686c55092d1e5a9dfa9 DIR(libsndfile) := src/lib/libsndfile _dirs: include/libsndfile/sndfile.h diff --git a/ports/libvorbis.hash b/ports/libvorbis.hash index 6ac001e..6f5506e 100644 --- a/ports/libvorbis.hash +++ b/ports/libvorbis.hash @@ -1 +1 @@ -9354f741ddf0b93b54018effcd97bbe075cc0c50 +d98c3a4755eeb23d6b53a1bebea1fb168cfb586e diff --git a/ports/libvorbis.port b/ports/libvorbis.port index 453e636..383c12e 100644 --- a/ports/libvorbis.port +++ b/ports/libvorbis.port @@ -1,9 +1,11 @@ LICENSE := BSD -VERSION := 1.3.4 +VERSION := 1.3.6 DOWNLOADS := libvorbis.archive +# See https://downloads.xiph.org/pub/xiph/releases/vorbis/SHA256SUMS + URL(libvorbis) := http://downloads.xiph.org/releases/vorbis/libvorbis-$(VERSION).tar.xz -SHA(libvorbis) := b99724acdf3577982b3146b9430d765995ecf9e1 +SHA(libvorbis) := af00bb5a784e7c9e69f56823de4637c350643deedaf333d0fa86ecdba6fcb415 DIR(libvorbis) := src/lib/libvorbis DIRS := include/vorbis diff --git a/ports/rtaudio.hash b/ports/rtaudio.hash index 397efed..eadf654 100644 --- a/ports/rtaudio.hash +++ b/ports/rtaudio.hash @@ -1 +1 @@ -a6c198729121ca06af9304670430b2959f7ffbbd +e683ec2be86b1bc18e5cfaedde90ff9fa266f5c9 diff --git a/ports/rtaudio.port b/ports/rtaudio.port index 8475591..70367b0 100644 --- a/ports/rtaudio.port +++ b/ports/rtaudio.port @@ -6,7 +6,7 @@ OWNER := ehmry REPO := rtaudio REV := 4dc7017ccbae09231a4f8a48ac11a388171e95b3 URL(rtaudio) := https://github.com/$(OWNER)/$(REPO)/archive/$(REV).tar.gz -SHA(rtaudio) := 83414b09e48757d91f60fc936402501ec1a6bb8c +SHA(rtaudio) := 83f628cb81ce31685f8100c1abcfd75485f4041db18290a46226d4ba2cea111c DIR(rtaudio) := src/lib/rtaudio DIRS := include/RtAudio diff --git a/recipes/api/libflac/content.mk b/recipes/api/libflac/content.mk new file mode 100644 index 0000000..490d7ad --- /dev/null +++ b/recipes/api/libflac/content.mk @@ -0,0 +1,12 @@ +content: include lib/symbols/libFLAC LICENSE + +PORT_DIR := $(call port_dir,$(REP_DIR)/ports/flac) + +include: + cp -r $(PORT_DIR)/$@ $@ + +lib/symbols/libFLAC: + $(mirror_from_rep_dir) + +LICENSE: + cp $(PORT_DIR)/src/lib/flac/COPYING.Xiph $@ diff --git a/recipes/api/libflac/hash b/recipes/api/libflac/hash new file mode 100644 index 0000000..077fa7c --- /dev/null +++ b/recipes/api/libflac/hash @@ -0,0 +1 @@ +2018-05-10 b79efa2aa2bdf7b7d8f1e5ce1e50e923387b669d diff --git a/recipes/api/liblo/content.mk b/recipes/api/liblo/content.mk new file mode 100644 index 0000000..d08d1c8 --- /dev/null +++ b/recipes/api/liblo/content.mk @@ -0,0 +1,26 @@ +MIRROR_FROM_PORT_AND_REP_DIR = src/lib/liblo +MIRROR_FROM_PORT_DIR = include +MIRROR_FROM_REP_DIR = lib/mk/liblo.mk lib/import/import-liblo.mk + +content: \ + $(MIRROR_FROM_PORT_AND_REP_DIR) \ + $(MIRROR_FROM_PORT_DIR) $(MIRROR_FROM_REP_DIR) \ + LICENSE \ + +PORT_DIR := $(call port_dir,$(REP_DIR)/ports/liblo) + +$(MIRROR_FROM_PORT_AND_REP_DIR): + mkdir -p $(dir $@) + cp -r $(PORT_DIR)/$@ $(dir $@) + $(mirror_from_rep_dir) + +$(MIRROR_FROM_PORT_DIR): + mkdir -p $(dir $@) + cp -r $(PORT_DIR)/$@ $(dir $@) + +$(MIRROR_FROM_REP_DIR): + $(mirror_from_rep_dir) + + +LICENSE: + cp $(PORT_DIR)/src/lib/liblo/COPYING $@ diff --git a/recipes/api/liblo/hash b/recipes/api/liblo/hash new file mode 100644 index 0000000..cd002af --- /dev/null +++ b/recipes/api/liblo/hash @@ -0,0 +1 @@ +2018-05-10 a0cafebba7560b0945872ccad5ec1e49cee97be8 diff --git a/recipes/api/libogg/content.mk b/recipes/api/libogg/content.mk new file mode 100644 index 0000000..ef37c25 --- /dev/null +++ b/recipes/api/libogg/content.mk @@ -0,0 +1,14 @@ +content: include/ogg lib/symbols/libogg LICENSE + +PORT_DIR := $(call port_dir,$(REP_DIR)/ports/libogg) + +include/ogg: + mkdir -p $@ + cp -r $(PORT_DIR)/$@/* $@ + cp -r $(REP_DIR)/$@/* $@ + +lib/symbols/libogg: + $(mirror_from_rep_dir) + +LICENSE: + cp $(PORT_DIR)/src/lib/libogg/COPYING $@ diff --git a/recipes/api/libogg/hash b/recipes/api/libogg/hash new file mode 100644 index 0000000..9168598 --- /dev/null +++ b/recipes/api/libogg/hash @@ -0,0 +1 @@ +2018-05-10 24c214694db13e8e26698e8f8d3f034fa2cc761d diff --git a/recipes/api/libsndfile/content.mk b/recipes/api/libsndfile/content.mk new file mode 100644 index 0000000..c3e3a2c --- /dev/null +++ b/recipes/api/libsndfile/content.mk @@ -0,0 +1,13 @@ +content: include lib/symbols/libsndfile LICENSE + +PORT_DIR := $(call port_dir,$(REP_DIR)/ports/libsndfile) + +include: + mkdir -p $@ + cp -r $(PORT_DIR)/include/libsndfile/* $@ + +lib/symbols/libsndfile: + $(mirror_from_rep_dir) + +LICENSE: + cp $(PORT_DIR)/src/lib/libsndfile/COPYING $@ diff --git a/recipes/api/libsndfile/hash b/recipes/api/libsndfile/hash new file mode 100644 index 0000000..a559edf --- /dev/null +++ b/recipes/api/libsndfile/hash @@ -0,0 +1 @@ +2018-05-10 6fc18691afe84e1dca434d581644c12bc65b1649 diff --git a/recipes/api/libvorbis/content.mk b/recipes/api/libvorbis/content.mk new file mode 100644 index 0000000..33bcc48 --- /dev/null +++ b/recipes/api/libvorbis/content.mk @@ -0,0 +1,12 @@ +content: include lib/symbols/libvorbis LICENSE + +PORT_DIR := $(call port_dir,$(REP_DIR)/ports/libvorbis) + +include: + cp -r $(PORT_DIR)/$@ $@ + +lib/symbols/libvorbis: + $(mirror_from_rep_dir) + +LICENSE: + cp $(PORT_DIR)/src/lib/libvorbis/COPYING $@ diff --git a/recipes/api/libvorbis/hash b/recipes/api/libvorbis/hash new file mode 100644 index 0000000..168ecc9 --- /dev/null +++ b/recipes/api/libvorbis/hash @@ -0,0 +1 @@ +2018-05-10 72f7de74eccb45149535614fb82ba1daff5ffbe8 diff --git a/recipes/api/rtaudio/content.mk b/recipes/api/rtaudio/content.mk new file mode 100644 index 0000000..dc68220 --- /dev/null +++ b/recipes/api/rtaudio/content.mk @@ -0,0 +1,16 @@ +MIRROR_FROM_PORT_DIR = include src/lib/rtaudio + +content: $(MIRROR_FROM_PORT_DIR) lib/mk/rtaudio.mk lib/import/import-rtaudio.mk LICENSE +PORT_DIR := $(call port_dir,$(REP_DIR)/ports/rtaudio) + +$(MIRROR_FROM_PORT_DIR): + mkdir -p $(dir $@) + cp -r $(PORT_DIR)/$@ $(dir $@) + +lib/mk/rtaudio.mk: + $(mirror_from_rep_dir) +lib/import/import-rtaudio.mk: + $(mirror_from_rep_dir) + +LICENSE: + cp $(PORT_DIR)/src/lib/rtaudio/readme $@ diff --git a/recipes/api/rtaudio/hash b/recipes/api/rtaudio/hash new file mode 100644 index 0000000..a4e0c58 --- /dev/null +++ b/recipes/api/rtaudio/hash @@ -0,0 +1 @@ +2018-05-10 4c082a13e20986e0db5084d4cc5742100fbb347f diff --git a/recipes/pkg/chuck/README b/recipes/pkg/chuck/README new file mode 100644 index 0000000..aef748b --- /dev/null +++ b/recipes/pkg/chuck/README @@ -0,0 +1,8 @@ + + ChucK programming language for real-time sound synthesis and music creation. + +This package runs ChucK in a non-interactive mode. A program will be loaded from the +file 'main.ck' found in the root directory of the acquired File_system session. + +For more information see http://chuck.cs.princeton.edu/doc/. Example programs can be +found in the ChucK source distribution at https://github.com/ccrma/chuck/tree/master/examples. diff --git a/recipes/pkg/chuck/archives b/recipes/pkg/chuck/archives new file mode 100644 index 0000000..19cf924 --- /dev/null +++ b/recipes/pkg/chuck/archives @@ -0,0 +1,9 @@ +_/src/chuck +_/src/libc +_/src/libflac +_/src/libogg +_/src/libsndfile +_/src/libvorbis +_/src/sdl +_/src/stdcxx +_/src/vfs diff --git a/recipes/pkg/chuck/hash b/recipes/pkg/chuck/hash new file mode 100644 index 0000000..8253673 --- /dev/null +++ b/recipes/pkg/chuck/hash @@ -0,0 +1 @@ +2018-05-10 45c2fdfb4afe3f8a25031899cad250e56571ba63 diff --git a/recipes/pkg/chuck/runtime b/recipes/pkg/chuck/runtime new file mode 100644 index 0000000..0a9abd1 --- /dev/null +++ b/recipes/pkg/chuck/runtime @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/recipes/src/chuck/content.mk b/recipes/src/chuck/content.mk new file mode 100644 index 0000000..d5ebc36 --- /dev/null +++ b/recipes/src/chuck/content.mk @@ -0,0 +1,13 @@ +MIRROR_FROM_PORT_AND_REP_DIR := src/app/chuck + +content: $(MIRROR_FROM_PORT_AND_REP_DIR) LICENSE + +PORT_DIR := $(call port_dir,$(REP_DIR)/ports/chuck) + +$(MIRROR_FROM_PORT_AND_REP_DIR): + mkdir -p $(dir $@) + cp -r $(PORT_DIR)/$@ $(dir $@) + $(mirror_from_rep_dir) + +LICENSE: + cp $(PORT_DIR)/src/app/chuck/COPYING $@ diff --git a/recipes/src/chuck/hash b/recipes/src/chuck/hash new file mode 100644 index 0000000..041505c --- /dev/null +++ b/recipes/src/chuck/hash @@ -0,0 +1 @@ +2018-05-10 b9ccba4a4891016c6a55b5150d00310a233c115e diff --git a/recipes/src/chuck/used_apis b/recipes/src/chuck/used_apis new file mode 100644 index 0000000..60d419d --- /dev/null +++ b/recipes/src/chuck/used_apis @@ -0,0 +1,15 @@ +audio_in_session +audio_out_session +base +libc +libflac +liblo +libogg +libsndfile +libvorbis +os +sdl +stdcxx +rtaudio +timer_session +vfs diff --git a/recipes/src/libflac/api b/recipes/src/libflac/api new file mode 100644 index 0000000..1a6f499 --- /dev/null +++ b/recipes/src/libflac/api @@ -0,0 +1 @@ +libflac diff --git a/recipes/src/libflac/content.mk b/recipes/src/libflac/content.mk new file mode 100644 index 0000000..aa9f2e7 --- /dev/null +++ b/recipes/src/libflac/content.mk @@ -0,0 +1,16 @@ +MIRROR_FROM_REP_DIR = lib/import/import-libFLAC.mk lib/mk/libFLAC.mk + +content: $(MIRROR_FROM_REP_DIR) src/lib/flac/target.mk LICENSE + +$(MIRROR_FROM_REP_DIR): + $(mirror_from_rep_dir) + +PORT_DIR := $(call port_dir,$(REP_DIR)/ports/flac) + +src/lib/flac/target.mk: + mkdir -p src/lib/flac + cp -r $(PORT_DIR)/src/lib/flac/* src/lib/flac + echo "LIBS = libFLAC" > $@ + +LICENSE: + cp $(PORT_DIR)/src/lib/flac/COPYING.Xiph $@ diff --git a/recipes/src/libflac/hash b/recipes/src/libflac/hash new file mode 100644 index 0000000..67fd2e4 --- /dev/null +++ b/recipes/src/libflac/hash @@ -0,0 +1 @@ +2018-05-10 3f44217f6fb16066ad2dd2200b0c6de9179534c0 diff --git a/recipes/src/libflac/used_apis b/recipes/src/libflac/used_apis new file mode 100644 index 0000000..e939c3b --- /dev/null +++ b/recipes/src/libflac/used_apis @@ -0,0 +1,3 @@ +base +libc +libogg diff --git a/recipes/src/libogg/api b/recipes/src/libogg/api new file mode 100644 index 0000000..b6a6854 --- /dev/null +++ b/recipes/src/libogg/api @@ -0,0 +1 @@ +libogg diff --git a/recipes/src/libogg/content.mk b/recipes/src/libogg/content.mk new file mode 100644 index 0000000..96f5f86 --- /dev/null +++ b/recipes/src/libogg/content.mk @@ -0,0 +1,16 @@ +MIRROR_FROM_REP_DIR = lib/import/import-libogg.mk lib/mk/libogg.mk + +content: $(MIRROR_FROM_REP_DIR) src/lib/libogg/target.mk LICENSE + +$(MIRROR_FROM_REP_DIR): + $(mirror_from_rep_dir) + +PORT_DIR := $(call port_dir,$(REP_DIR)/ports/libogg) + +src/lib/libogg/target.mk: + mkdir -p src/lib/libogg + cp -r $(PORT_DIR)/src/lib/libogg/* src/lib/libogg + echo "LIBS = libogg" > $@ + +LICENSE: + cp $(PORT_DIR)/src/lib/libogg/COPYING $@ diff --git a/recipes/src/libogg/hash b/recipes/src/libogg/hash new file mode 100644 index 0000000..d6c2278 --- /dev/null +++ b/recipes/src/libogg/hash @@ -0,0 +1 @@ +2018-05-10 af1b96244929153e657732253831c8b58ec4a8b8 diff --git a/recipes/src/libogg/used_apis b/recipes/src/libogg/used_apis new file mode 100644 index 0000000..dccf4f6 --- /dev/null +++ b/recipes/src/libogg/used_apis @@ -0,0 +1,2 @@ +base +libc diff --git a/recipes/src/libsndfile/api b/recipes/src/libsndfile/api new file mode 100644 index 0000000..7d55e12 --- /dev/null +++ b/recipes/src/libsndfile/api @@ -0,0 +1 @@ +libsndfile diff --git a/recipes/src/libsndfile/content.mk b/recipes/src/libsndfile/content.mk new file mode 100644 index 0000000..08694a3 --- /dev/null +++ b/recipes/src/libsndfile/content.mk @@ -0,0 +1,22 @@ +MIRROR_FROM_REP_DIR = \ + lib/mk/gsm10.mk \ + lib/mk/g72x.mk \ + lib/mk/alac.mk \ + lib/mk/libsndfile.mk \ + lib/import/import-libsndfile.mk \ + src/lib/libsndfile/config.h \ + +content: $(MIRROR_FROM_REP_DIR) src/lib/libsndfile/target.mk LICENSE + +$(MIRROR_FROM_REP_DIR): + $(mirror_from_rep_dir) + +PORT_DIR := $(call port_dir,$(REP_DIR)/ports/libsndfile) + +src/lib/libsndfile/target.mk: + mkdir -p src/lib/libsndfile + cp -r $(PORT_DIR)/src/lib/libsndfile/* src/lib/libsndfile + echo "LIBS = libsndfile" > $@ + +LICENSE: + cp $(PORT_DIR)/src/lib/libsndfile/COPYING $@ diff --git a/recipes/src/libsndfile/hash b/recipes/src/libsndfile/hash new file mode 100644 index 0000000..0c2ece7 --- /dev/null +++ b/recipes/src/libsndfile/hash @@ -0,0 +1 @@ +2018-05-10 ec35e9b5c3a20debb4603f551ec4c27acae5c512 diff --git a/recipes/src/libsndfile/used_apis b/recipes/src/libsndfile/used_apis new file mode 100644 index 0000000..5aeb107 --- /dev/null +++ b/recipes/src/libsndfile/used_apis @@ -0,0 +1,5 @@ +base +libc +libflac +libogg +libvorbis diff --git a/recipes/src/libvorbis/api b/recipes/src/libvorbis/api new file mode 100644 index 0000000..e9da0c9 --- /dev/null +++ b/recipes/src/libvorbis/api @@ -0,0 +1 @@ +libvorbis diff --git a/recipes/src/libvorbis/content.mk b/recipes/src/libvorbis/content.mk new file mode 100644 index 0000000..1daa1ea --- /dev/null +++ b/recipes/src/libvorbis/content.mk @@ -0,0 +1,16 @@ +MIRROR_FROM_REP_DIR = lib/import/import-libvorbis.mk lib/mk/libvorbis.mk + +content: $(MIRROR_FROM_REP_DIR) src/lib/libvorbis/target.mk LICENSE + +$(MIRROR_FROM_REP_DIR): + $(mirror_from_rep_dir) + +PORT_DIR := $(call port_dir,$(REP_DIR)/ports/libvorbis) + +src/lib/libvorbis/target.mk: + mkdir -p src/lib/libvorbis + cp -r $(PORT_DIR)/src/lib/libvorbis/* src/lib/libvorbis + echo "LIBS = libvorbis" > $@ + +LICENSE: + cp $(PORT_DIR)/src/lib/libvorbis/COPYING $@ diff --git a/recipes/src/libvorbis/hash b/recipes/src/libvorbis/hash new file mode 100644 index 0000000..93e1bd2 --- /dev/null +++ b/recipes/src/libvorbis/hash @@ -0,0 +1 @@ +2018-05-10 15551d007d2b1a466c14cb90b41a57985c0133f7 diff --git a/recipes/src/libvorbis/used_apis b/recipes/src/libvorbis/used_apis new file mode 100644 index 0000000..e939c3b --- /dev/null +++ b/recipes/src/libvorbis/used_apis @@ -0,0 +1,3 @@ +base +libc +libogg diff --git a/run/chuck.run b/run/chuck.run deleted file mode 100644 index 7ad63bd..0000000 --- a/run/chuck.run +++ /dev/null @@ -1,100 +0,0 @@ -assert_spec x86 - -# -# Build -# - -set build_components { - core init - app/chuck - drivers/audio - drivers/timer -} - -source ${genode_dir}/repos/base/run/platform_drv.inc -append_platform_drv_build_components - -build $build_components - -create_boot_directory - -exec cp [genode_dir]/repos/world/src/test/chuck/demo.ck bin/test-chuck-demo.ck - -# -# Config -# - -append config { - - - - - - - - - - - - - - - - - - - } - -append_platform_drv_config - -append config { - - - - - - - - - - - - - - - - - - - -} - -install_config $config - -# -# Boot modules -# - -append boot_modules { - core init ld.lib.so - timer - chuck - libogg.lib.so - libFLAC.lib.so - libsndfile.lib.so - libvorbis.lib.so - pthread.lib.so - stdcxx.lib.so - libc.lib.so - libm.lib.so - test-chuck-demo.ck -} [audio_drv_binary] { -} - -append_platform_drv_boot_modules - -build_boot_image $boot_modules - -append qemu_args " -nographic -soundhw es1370 " - -run_genode_until {child "chuck" exited with exit value 0} 60 diff --git a/run/chuck_keyboard.run b/run/chuck_keyboard.run deleted file mode 100644 index cdd074f..0000000 --- a/run/chuck_keyboard.run +++ /dev/null @@ -1,136 +0,0 @@ -assert_spec x86 - -# -# Build -# - -set build_components { - core init - app/chuck - drivers/audio - drivers/timer -} - -source ${genode_dir}/repos/base/run/platform_drv.inc -append_platform_drv_build_components - -lappend_if [have_spec ps2] build_components drivers/input/spec/ps2 -lappend_if [have_spec sdl] build_components drivers/framebuffer/spec/sdl - -build $build_components - -create_boot_directory - -exec cp [genode_dir]/repos/world/src/test/chuck/demo_keyboard.ck bin/test-chuck-demo_keyboard.ck - -# -# Config -# - -append config { - - - - - - - - - - - - - - - - - - - } - -append_platform_drv_config - -append_if [have_spec ps2] config { - - - - - - - - - - - - - - } - -append_if [have_spec sdl] config { - - - - - - - - - - - - } - -append config { - - - - - - - - - - - - - - - - - - - -} - -install_config $config - -# -# Boot modules -# - -append boot_modules { - core init ld.lib.so - timer - chuck - libogg.lib.so - libFLAC.lib.so - libsndfile.lib.so - libvorbis.lib.so - pthread.lib.so - stdcxx.lib.so - libc.lib.so - libm.lib.so - test-chuck-demo_keyboard.ck -} [audio_drv_binary] { -} - -lappend_if [have_spec ps2] boot_modules ps2_drv -lappend_if [have_spec sdl] boot_modules fb_sdl - -append_platform_drv_boot_modules - -build_boot_image $boot_modules - -append qemu_args " -nographic -soundhw es1370 " - -run_genode_until forever diff --git a/run/chuck_mouse.run b/run/chuck_mouse.run deleted file mode 100644 index 17dc2ac..0000000 --- a/run/chuck_mouse.run +++ /dev/null @@ -1,136 +0,0 @@ -assert_spec x86 - -# -# Build -# - -set build_components { - core init - app/chuck - drivers/audio - drivers/timer -} - -source ${genode_dir}/repos/base/run/platform_drv.inc -append_platform_drv_build_components - -lappend_if [have_spec ps2] build_components drivers/input/spec/ps2 -lappend_if [have_spec sdl] build_components drivers/framebuffer/spec/sdl - -build $build_components - -create_boot_directory - -exec cp [genode_dir]/repos/world/src/test/chuck/demo_mouse.ck bin/test-chuck-demo_mouse.ck - -# -# Config -# - -append config { - - - - - - - - - - - - - - - - - - - } - -append_platform_drv_config - -append_if [have_spec ps2] config { - - - - - - - - - - - - - - } - -append_if [have_spec sdl] config { - - - - - - - - - - - - } - -append config { - - - - - - - - - - - - - - - - - - - -} - -install_config $config - -# -# Boot modules -# - -append boot_modules { - core init ld.lib.so - timer - chuck - libogg.lib.so - libFLAC.lib.so - libsndfile.lib.so - libvorbis.lib.so - pthread.lib.so - stdcxx.lib.so - libc.lib.so - libm.lib.so - test-chuck-demo_mouse.ck -} [audio_drv_binary] { -} - -lappend_if [have_spec ps2] boot_modules ps2_drv -lappend_if [have_spec sdl] boot_modules fb_sdl - -append_platform_drv_boot_modules - -build_boot_image $boot_modules - -append qemu_args " -nographic -soundhw es1370 " - -run_genode_until forever diff --git a/src/app/chuck/PATH_MAX.patch b/src/app/chuck/PATH_MAX.patch new file mode 100644 index 0000000..56acb41 --- /dev/null +++ b/src/app/chuck/PATH_MAX.patch @@ -0,0 +1,16 @@ +diff --git a/src/core/util_string.cpp b/src/core/util_string.cpp +index f505506..f6c0c8b 100644 +--- a/src/core/util_string.cpp ++++ b/src/core/util_string.cpp +@@ -41,6 +41,11 @@ + #include + #endif // __PLATFORM_LINUX__ + ++#ifdef __PLATFORM_GENODE__ ++#include ++enum { PATH_MAX = Vfs::MAX_PATH_LEN }; ++#endif ++ + #include + using namespace std; + diff --git a/src/app/chuck/chuck_component.cc b/src/app/chuck/chuck_component.cc new file mode 100644 index 0000000..314f42f --- /dev/null +++ b/src/app/chuck/chuck_component.cc @@ -0,0 +1,353 @@ +/*---------------------------------------------------------------------------- + ChucK Concurrent, On-the-fly Audio Programming Language + Compiler and Virtual Machine + + Copyright (c) 2003 Ge Wang and Perry R. Cook. All rights reserved. + http://chuck.stanford.edu/ + http://chuck.cs.princeton.edu/ + + 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + U.S.A. + -----------------------------------------------------------------------------*/ + +//----------------------------------------------------------------------------- +// file: component.cpp +// desc: chuck entry point for Genode +//----------------------------------------------------------------------------- + +/* Genode includes */ +#include +#include +#include +#include +#include + +/* ChucK includes */ +#include "chuck.h" +#include "chuck_audio.h" + +using namespace Genode; + + +//----------------------------------------------------------------------------- +// global variables +//----------------------------------------------------------------------------- +// the one ChucK, for command line host +ChucK * the_chuck; + + +//----------------------------------------------------------------------------- +// name: cb() +// desc: audio callback +//----------------------------------------------------------------------------- +void cb( t_CKSAMPLE * in, t_CKSAMPLE * out, t_CKUINT numFrames, + t_CKUINT numInChans, t_CKUINT numOutChans, void * data ) +{ + // TODO: check channel numbers + + // call up to ChucK + the_chuck->run( in, out, numFrames ); +} + + +struct Main +{ + Libc::Env &env; + + t_CKBOOL g_enable_realtime_audio = TRUE; + t_CKBOOL enable_system_cmd = FALSE; + + Main(Libc::Env &env): env(env) { }; + + void go() + { + t_CKBOOL vm_halt = TRUE; + t_CKINT srate = SAMPLE_RATE_DEFAULT; + t_CKBOOL force_srate = FALSE; // added 1.3.1.2 + t_CKINT buffer_size = BUFFER_SIZE_DEFAULT; + t_CKINT num_buffers = NUM_BUFFERS_DEFAULT; + t_CKINT dac = 0; + t_CKINT adc = 0; + std::string dac_name = ""; // added 1.3.0.0 + std::string adc_name = ""; // added 1.3.0.0 + t_CKINT dac_chans = 0; + t_CKINT adc_chans = 2; + t_CKBOOL dump = FALSE; + t_CKBOOL auto_depend = FALSE; + t_CKBOOL block = FALSE; + // t_CKBOOL enable_shell = FALSE; + t_CKBOOL no_vm = FALSE; + t_CKBOOL load_hid = FALSE; + t_CKBOOL enable_server = TRUE; + t_CKBOOL do_watchdog = TRUE; + t_CKINT adaptive_size = 0; + t_CKINT log_level = CK_LOG_CORE; + t_CKINT deprecate_level = 1; // 1 == warn + t_CKINT chugin_load = 1; // 1 == auto (variable added 1.3.0.0) + // whether to make this new VM the one that receives OTF commands + t_CKBOOL update_otf_vm = TRUE; + string filename = ""; + vector args; + + // list of search pathes (added 1.3.0.0) + std::list dl_search_path; + // initial chug-in path (added 1.3.0.0) + std::string initial_chugin_path; + // if set as environment variable (added 1.3.0.0) + if( getenv( g_chugin_path_envvar ) ) + { + // get it from the env var + initial_chugin_path = getenv( g_chugin_path_envvar ); + } + else + { + // default it + initial_chugin_path = g_default_chugin_path; + } + // parse the colon list into STL list (added 1.3.0.0) + parse_path_list( initial_chugin_path, dl_search_path ); + // list of individually named chug-ins (added 1.3.0.0) + std::list named_dls; + + #if defined(__DISABLE_WATCHDOG__) + do_watchdog = FALSE; + #elif defined(__MACOSX_CORE__) + do_watchdog = TRUE; + #elif defined(__PLATFORM_WIN32__) && !defined(__WINDOWS_PTHREAD__) + do_watchdog = TRUE; + #else + do_watchdog = FALSE; + #endif + + t_CKUINT files = 0; + t_CKUINT count = 1; + t_CKINT i; + + // set log level + EM_setlog( log_level ); + + // add myself to the list of Chuck_Systems that might need to be cleaned up + // g_systems.push_back( this ); + + + //------------------------- COMMAND LINE ARGUMENTS ----------------------------- + + // log level + EM_setlog( log_level ); + + // set caution to wind + ChucK::enableSystemCall = enable_system_cmd; + + // check buffer size + buffer_size = ensurepow2( buffer_size ); + // set watchdog + g_do_watchdog = do_watchdog; + // set adaptive size + if( adaptive_size < 0 ) adaptive_size = buffer_size; + + // make sure vm + if( no_vm ) + { + CK_FPRINTF_STDERR( "[chuck]: '--empty' can only be used with shell...\n" ); + exit( 1 ); + } + + // find dac_name if appropriate (added 1.3.0.0) + if( dac_name.size() > 0 ) + { + // check with RtAudio + int dev = ChuckAudio::device_named( dac_name, TRUE, FALSE ); + if( dev >= 0 ) + { + dac = dev; + } + else + { + CK_FPRINTF_STDERR( "[chuck]: unable to find dac '%s'...\n", dac_name.c_str() ); + exit( 1 ); + } + } + + // find adc_name if appropriate (added 1.3.0.0) + if( adc_name.size() > 0 ) + { + // check with RtAudio + int dev = ChuckAudio::device_named( adc_name, FALSE, TRUE ); + if( dev >= 0 ) + { + adc = dev; + } + else + { + CK_FPRINTF_STDERR( "[chuck]: unable to find adc '%s'...\n", adc_name.c_str() ); + exit( 1 ); + } + } + + //------------------------- VIRTUAL MACHINE SETUP ----------------------------- + // instantiate ChucK + the_chuck = new ChucK(); + + // set params + the_chuck->setParam( CHUCK_PARAM_SAMPLE_RATE, Audio_out::SAMPLE_RATE ); + the_chuck->setParam( CHUCK_PARAM_INPUT_CHANNELS, 0 ); + the_chuck->setParam( CHUCK_PARAM_OUTPUT_CHANNELS, 2 ); + the_chuck->setParam( CHUCK_PARAM_VM_ADAPTIVE, adaptive_size ); + the_chuck->setParam( CHUCK_PARAM_VM_HALT, (t_CKINT)(vm_halt) ); + the_chuck->setParam( CHUCK_PARAM_OTF_ENABLE, (t_CKINT)FALSE ); + the_chuck->setParam( CHUCK_PARAM_DUMP_INSTRUCTIONS, (t_CKINT)dump ); + the_chuck->setParam( CHUCK_PARAM_AUTO_DEPEND, (t_CKINT)auto_depend ); + the_chuck->setParam( CHUCK_PARAM_DEPRECATE_LEVEL, deprecate_level ); + the_chuck->setParam( CHUCK_PARAM_USER_CHUGINS, named_dls ); + the_chuck->setParam( CHUCK_PARAM_USER_CHUGIN_DIRECTORIES, dl_search_path ); + // set hint, so internally can advise things like async data writes etc. + the_chuck->setParam( CHUCK_PARAM_HINT_IS_REALTIME_AUDIO, TRUE ); + the_chuck->setLogLevel( log_level ); + + // initialize + if( !the_chuck->init() ) + { + CK_FPRINTF_STDERR( "[chuck]: failed to initialize...\n" ); + exit( 1 ); + } + + //--------------------------- AUDIO I/O SETUP --------------------------------- + // log + EM_log( CK_LOG_SYSTEM, "initializing audio I/O..." ); + // push + EM_pushlog(); + // log + + // initialize audio system + // TODO: refactor initialize() to take in the dac and adc nums + ChuckAudio::m_adc_n = adc; + ChuckAudio::m_dac_n = dac; + t_CKBOOL retval = ChuckAudio::initialize( adc_chans, dac_chans, + srate, buffer_size, num_buffers, cb, (void *)the_chuck, force_srate ); + // check + if( !retval ) + { + EM_log( CK_LOG_SYSTEM, + "cannot initialize audio device (use --silent/-s for non-realtime)" ); + // pop + EM_poplog(); + // done + exit( 1 ); + } + + // log + EM_log( CK_LOG_SYSTEM, "real-time audio: %s", g_enable_realtime_audio ? "YES" : "NO" ); + EM_log( CK_LOG_SYSTEM, "mode: %s", block ? "BLOCKING" : "CALLBACK" ); + EM_log( CK_LOG_SYSTEM, "sample rate: %ld", srate ); + EM_log( CK_LOG_SYSTEM, "buffer size: %ld", buffer_size ); + if( g_enable_realtime_audio ) + { + EM_log( CK_LOG_SYSTEM, "num buffers: %ld", num_buffers ); + EM_log( CK_LOG_SYSTEM, "adc: %ld dac: %d", adc, dac ); + EM_log( CK_LOG_SYSTEM, "adaptive block processing: %ld", adaptive_size > 1 ? adaptive_size : 0 ); + } + EM_log( CK_LOG_SYSTEM, "channels in: %ld out: %ld", adc_chans, dac_chans ); + + // pop + EM_poplog(); + + // reset count + count = 1; + + // log + EM_log( CK_LOG_SEVERE, "starting compilation..." ); + // push indent + EM_pushlog(); + + + //------------------------- SOURCE COMPILATION -------------------------------- + + // loop through and process each file + auto const arg_fn = [&] (Xml_node const &node) { + auto const val = node.attribute_value("value", String<256>()); + char const *arg = val.string(); + // make sure + if( arg[0] == '-' || arg[0] == '+' ) + { + if( val == "--dump" || val == "+d" ) + the_chuck->compiler()->emitter->dump = TRUE; + else if( val == "--nodump" || val == "-d" ) + the_chuck->compiler()->emitter->dump = FALSE; + return; + } + + // compile it! + the_chuck->compileFile( arg, "" ); + ++files; + }; + + env.config([&] (Xml_node const &config) { + config.for_each_sub_node("arg", arg_fn); }); + + if( !files && vm_halt) + { + CK_FPRINTF_STDERR( "[chuck]: no input files... (try --help)\n" ); + exit( 1 ); + } + + // pop indent + EM_poplog(); + + + //-------------------------- MAIN CHUCK LOOP!!! ----------------------------- + + // log + EM_log( CK_LOG_SYSTEM, "running main loop..." ); + // push indent + EM_pushlog(); + + // start it! + the_chuck->start(); + + // log + EM_log( CK_LOG_SEVERE, "virtual machine running..." ); + // pop indent + EM_poplog(); + + // silent mode buffers + SAMPLE * input = new SAMPLE[buffer_size*adc_chans]; + SAMPLE * output = new SAMPLE[buffer_size*dac_chans]; + // zero out + Genode::memset( input, 0, sizeof(SAMPLE)*buffer_size*adc_chans ); + Genode::memset( output, 0, sizeof(SAMPLE)*buffer_size*dac_chans ); + + // start audio + ChuckAudio::start(); + + // return to entrypoint + } +}; + + +void Libc::Component::construct(Libc::Env &env) +{ + init_rtaudio(env); + + static Main main(env); + + Libc::with_libc([&] () { main.go(); }); +} + +extern "C" { + int pthread_setschedparam(pthread_t, int, const struct sched_param*) { + return 0; } + int pthread_getschedparam(pthread_t, int*, struct sched_param*) { + return 0; } +} diff --git a/src/app/chuck/component.cc b/src/app/chuck/component.cc deleted file mode 100644 index 808f1c0..0000000 --- a/src/app/chuck/component.cc +++ /dev/null @@ -1,412 +0,0 @@ -/*---------------------------------------------------------------------------- - ChucK Concurrent, On-the-fly Audio Programming Language - Compiler and Virtual Machine - - Copyright (c) 2003 Ge Wang and Perry R. Cook. All rights reserved. - http://chuck.stanford.edu/ - http://chuck.cs.princeton.edu/ - - 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; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - U.S.A. ------------------------------------------------------------------------------*/ - -//----------------------------------------------------------------------------- -// file: component.cpp -// desc: chuck entry point for Genode -//----------------------------------------------------------------------------- - -/* Genode includes */ -#include -#include -#include -#include -#include - -/* ChucK includes */ -#include "chuck_compile.h" -#include "chuck_vm.h" -#include "chuck_bbq.h" -#include "chuck_errmsg.h" -#include "chuck_lang.h" -#include "chuck_console.h" -#include "chuck_globals.h" - -#include "util_hid.h" -#include "util_math.h" -#include "util_string.h" -#include "util_thread.h" -#include "ulib_machine.h" -#include "chuck_system.h" - -using namespace Genode; - -struct Main : Chuck_System -{ - Genode::Env &env; - - Attached_rom_dataspace config_rom { env, "config" }; - - Timer::Connection timer { env, "chuck" }; - - void load_config() - { - /* compile the config in sequence */ - config_rom.xml().for_each_sub_node([&] (Xml_node const node) { - if (node.has_type("file")) { - try { - Xml_attribute path_attr = node.attribute("path"); - std::string path(path_attr.value_base(), path_attr.value_size()); - std::string args; - if (node.has_attribute("args")) { - Xml_attribute args_attr = node.attribute("args"); - args = std::string(args_attr.value_base(), args_attr.value_size()); - } - if (!compileFile(path, args)) - error("failed to compile ", path.c_str()); - else - log("compiled ", path.c_str()); - } catch (...) { - error("failed to parse file node ",node); - } - } - - else if (node.has_type("code")) { - try { - std::string code(node.content_base(), node.content_size()); - std::string args; - if (node.has_attribute("args")) { - Xml_attribute args_attr = node.attribute("args"); - args = std::string(args_attr.value_base(), args_attr.value_size()); - } - if (!compileCode(code, args)) { - error("compilation failed"); - log(code.c_str()); - } else - log("compiled ", code.c_str()); - } catch (...) { - error("failed to parse code node"); - } - } - }); - } - - void handle_config() - { - config_rom.update(); - Libc::with_libc([&] () { load_config(); }); - } - - //Signal_handler
config_handler - // { env.ep(), *this, &Main::handle_config }; - - void handle_timeout() - { - if (!g_vm->running()) { - env.parent().exit(0); - timer.trigger_periodic(0); - } else if( g_main_thread_hook && g_main_thread_quit ) { - log("bindling something"); - g_main_thread_hook( g_main_thread_bindle ); - } - } - - Signal_handler
timeout_handler - { env.ep(), *this, &Main::handle_timeout }; - - Main(Genode::Env &env) : env(env) { } - - void run(); -}; - -void Main::run() -{ - Genode::Xml_node config_node = config_rom.xml(); - - Chuck_Compiler * compiler = NULL; - Chuck_VM * vm = NULL; - Chuck_VM_Code * code = NULL; - Chuck_VM_Shred * shred = NULL; - // ge: refactor 2015 - BBQ * bbq = NULL; - t_CKBOOL audio_started = FALSE; - - t_CKBOOL vm_halt = TRUE; - t_CKUINT srate = Audio_out::SAMPLE_RATE; - t_CKBOOL force_srate = FALSE; // added 1.3.1.2 - t_CKUINT buffer_size = BUFFER_SIZE_DEFAULT; - t_CKUINT num_buffers = NUM_BUFFERS_DEFAULT; - t_CKUINT dac = 0; - t_CKUINT adc = 0; - std::string dac_name = ""; // added 1.3.0.0 - std::string adc_name = ""; // added 1.3.0.0 - - t_CKUINT dac_chans = config_node.attribute_value("dac_channels", 2UL); - t_CKUINT adc_chans = config_node.attribute_value("adc_channels", 0UL); - - t_CKBOOL dump = FALSE; - t_CKBOOL probe = FALSE; - t_CKBOOL set_priority = FALSE; - t_CKBOOL auto_depend = FALSE; - t_CKBOOL block = FALSE; - t_CKBOOL no_vm = FALSE; - t_CKBOOL load_hid = FALSE; - t_CKBOOL enable_server = FALSE; - t_CKBOOL do_watchdog = TRUE; - t_CKINT adaptive_size = 0; - t_CKINT log_level = CK_LOG_INFO; - t_CKINT deprecate_level = 1; // 1 == warn - t_CKINT chugin_load = 1; // 1 == auto (variable added 1.3.0.0) - string filename = ""; - vector args; - - // list of search pathes (added 1.3.0.0) - std::list dl_search_path; - // initial chug-in path (added 1.3.0.0) - std::string initial_chugin_path; - - // default it - initial_chugin_path = g_default_chugin_path; - - // parse the colon list into STL list (added 1.3.0.0) - parse_path_list( initial_chugin_path, dl_search_path ); - // list of individually named chug-ins (added 1.3.0.0) - std::list named_dls; - -#if defined(__DISABLE_WATCHDOG__) - do_watchdog = FALSE; -#elif defined(__MACOSX_CORE__) - do_watchdog = TRUE; -#elif defined(__PLATFORM_WIN32__) && !defined(__WINDOWS_PTHREAD__) - do_watchdog = TRUE; -#else - do_watchdog = FALSE; -#endif - - t_CKUINT files = 0; - t_CKUINT count = 1; - t_CKINT i; - - // set log level - EM_setlog( log_level ); - - g_enable_realtime_audio = TRUE; - - // set adaptive size - if( adaptive_size < 0 ) adaptive_size = buffer_size; - - -//------------------------- VIRTUAL MACHINE SETUP ----------------------------- - - // allocate the vm - needs the type system - vm = m_vmRef = g_vm = new Chuck_VM; - // ge: refactor 2015: initialize VM - if( !vm->initialize( srate, dac_chans, adc_chans, adaptive_size, vm_halt ) ) - { - fprintf( stderr, "[chuck]: %s\n", vm->last_error() ); - env.parent().exit( 1 ); - } - - -//--------------------------- AUDIO I/O SETUP --------------------------------- - - // ge: 1.3.5.3 - bbq = g_bbq = new BBQ; - // set some parameters - bbq->set_srate( srate ); - bbq->set_bufsize( buffer_size ); - bbq->set_numbufs( num_buffers ); - bbq->set_inouts( adc, dac ); - bbq->set_chans( adc_chans, dac_chans ); - - // log - EM_log( CK_LOG_SYSTEM, "initializing audio I/O..." ); - // push - EM_pushlog(); - // log - EM_log( CK_LOG_SYSTEM, "probing '%s' audio subsystem...", g_enable_realtime_audio ? "real-time" : "fake-time" ); - - // probe / init (this shouldn't start audio yet... - // moved here 1.3.1.2; to main ge: 1.3.5.3) - if( !bbq->initialize( dac_chans, adc_chans, srate, 16, buffer_size, num_buffers, - dac, adc, block, vm, g_enable_realtime_audio, NULL, NULL, force_srate ) ) - { - EM_log( CK_LOG_SYSTEM, - "cannot initialize audio device" ); - // pop - EM_poplog(); - // done - env.parent().exit( 1 ); - } - - // log - EM_log( CK_LOG_SYSTEM, "real-time audio: %s", g_enable_realtime_audio ? "YES" : "NO" ); - EM_log( CK_LOG_SYSTEM, "mode: %s", block ? "BLOCKING" : "CALLBACK" ); - EM_log( CK_LOG_SYSTEM, "sample rate: %ld", srate ); - EM_log( CK_LOG_SYSTEM, "buffer size: %ld", buffer_size ); - if( g_enable_realtime_audio ) - { - EM_log( CK_LOG_SYSTEM, "num buffers: %ld", num_buffers ); - EM_log( CK_LOG_SYSTEM, "adc: %ld dac: %d", adc, dac ); - EM_log( CK_LOG_SYSTEM, "adaptive block processing: %ld", adaptive_size > 1 ? adaptive_size : 0 ); - } - EM_log( CK_LOG_SYSTEM, "channels in: %ld out: %ld", adc_chans, dac_chans ); - - // pop - EM_poplog(); - - -//------------------------- CHUCK COMPILER SETUP ----------------------------- - - // if chugin load is off, then clear the lists (added 1.3.0.0 -- TODO: refactor) - if( chugin_load == 0 ) - { - // turn off chugin load - dl_search_path.clear(); - named_dls.clear(); - } - - // allocate the compiler - compiler = m_compilerRef= g_compiler = new Chuck_Compiler; - // initialize the compiler (search_apth and named_dls added 1.3.0.0 -- TODO: refactor) - if( !compiler->initialize( vm, dl_search_path, named_dls ) ) - { - fprintf( stderr, "[chuck]: error initializing compiler...\n" ); - env.parent().exit( 1 ); - } - // enable dump - compiler->emitter->dump = dump; - // set auto depend - compiler->set_auto_depend( auto_depend ); - - // vm synthesis subsystem - needs the type system - if( !vm->initialize_synthesis( ) ) - { - fprintf( stderr, "[chuck]: %s\n", vm->last_error() ); - env.parent().exit( 1 ); - } - - - // set deprecate - compiler->env->deprecate_level = deprecate_level; - - // reset count - count = 1; - - compiler->env->load_user_namespace(); - - // log - EM_log( CK_LOG_SEVERE, "starting compilation..." ); - // push indent - EM_pushlog(); - - -//------------------------- SOURCE COMPILATION -------------------------------- - - // loop through and process each file - load_config(); - - // pop indent - EM_poplog(); - - // reset the parser - reset_parse(); - - // boost priority - if( Chuck_VM::our_priority != 0x7fffffff ) - { - // try - if( !Chuck_VM::set_priority( Chuck_VM::our_priority, vm ) ) - { - // error - fprintf( stderr, "[chuck]: %s\n", vm->last_error() ); - env.parent().exit( 1 ); - } - } - -//-------------------------- MAIN CHUCK LOOP!!! ----------------------------- - - // log - EM_log( CK_LOG_SYSTEM, "running main loop..." ); - // push indent - EM_pushlog(); - - // set run state - vm->start(); - - EM_log( CK_LOG_SEVERE, "initializing audio buffers..." ); - if( !bbq->digi_out()->initialize( ) ) - { - EM_log( CK_LOG_SYSTEM, - "cannot open audio output (use --silent/-s)" ); - env.parent().exit(1); - } - - // initialize input - bbq->digi_in()->initialize( ); - - // log - EM_log( CK_LOG_SEVERE, "virtual machine running..." ); - // pop indent - EM_poplog(); - - // NOTE: non-blocking callback only, ge: 1.3.5.3 - - // compute shreds before first sample - if( !vm->compute() ) - { - // done, 1.3.5.3 - vm->stop(); - // log - EM_log( CK_LOG_SYSTEM, "virtual machine stopped..." ); - } - - // start audio - if( !audio_started ) - { - // audio - if( !audio_started && g_enable_realtime_audio ) - { - EM_log( CK_LOG_SEVERE, "starting real-time audio..." ); - bbq->digi_out()->start(); - bbq->digi_in()->start(); - } - - // set the flag to true to avoid entering this function - audio_started = TRUE; - } - - - // silent mode buffers - SAMPLE * input = new SAMPLE[buffer_size*adc_chans]; - SAMPLE * output = new SAMPLE[buffer_size*dac_chans]; - // zero out - Genode::memset( input, 0, sizeof(SAMPLE)*buffer_size*adc_chans ); - Genode::memset( output, 0, sizeof(SAMPLE)*buffer_size*dac_chans ); - - timer.sigh(timeout_handler); - timer.trigger_periodic(100000); -}; - -#include - -void Libc::Component::construct(Libc::Env &env) -{ - init_rtaudio(env); - init_input(env); - - static Main inst(env); - - Libc::with_libc([&] () { inst.run(); }); -} diff --git a/src/app/chuck/disable_midi.patch b/src/app/chuck/disable_midi.patch new file mode 100644 index 0000000..e58e9ad --- /dev/null +++ b/src/app/chuck/disable_midi.patch @@ -0,0 +1,14 @@ +diff --git a/src/core/midiio_rtmidi.cpp b/src/core/midiio_rtmidi.cpp +index d5e2aca..9fcec93 100644 +--- a/src/core/midiio_rtmidi.cpp ++++ b/src/core/midiio_rtmidi.cpp +@@ -1001,4 +1001,9 @@ MidiIn::~MidiIn() + + } + ++t_CKBOOL MidiIn::open( Chuck_VM *, t_CKUINT ) ++{ ++ return FALSE; ++} ++ + #endif // __DISABLE_MIDI__ diff --git a/src/app/chuck/hid.patch b/src/app/chuck/hid.patch new file mode 100644 index 0000000..e262379 --- /dev/null +++ b/src/app/chuck/hid.patch @@ -0,0 +1,61 @@ +diff --git a/src/core/util_hid.cpp b/src/core/util_hid.cpp +index 4bfa8c8..a0753ef 100644 +--- a/src/core/util_hid.cpp ++++ b/src/core/util_hid.cpp +@@ -7733,6 +7733,56 @@ const char * Keyboard_name( int k ) + return keyboards->at( k )->name; + } + ++#elif defined(__PLATFORM_GENODE__) ++ ++void Hid_init() { } ++void Hid_poll() { } ++void Hid_quit() { } ++ ++void Joystick_init() { } ++void Joystick_poll() { } ++void Joystick_quit() { } ++void Joystick_probe() { } ++int Joystick_count() { return -1; } ++int Joystick_open( int js ) { return -1; } ++int Joystick_open_async( int js ) { return -1; } ++int Joystick_open( const char * name ) { return -1; } ++int Joystick_close( int js ) { return -1; }; ++int Joystick_send( int js, const HidMsg * msg ) { return -1; } ++const char * Joystick_name( int js ) { return ""; } ++ ++void Mouse_init() { } ++void Mouse_poll() { } ++void Mouse_quit() { } ++void Mouse_probe() { } ++int Mouse_count() { return -1; } ++int Mouse_open( int m ) { return -1; } ++int Mouse_open( const char * name ) { return -1; } ++int Mouse_close( int m ) { return -1; } ++int Mouse_send( int m, const HidMsg * msg ) { return -1; } ++const char * Mouse_name( int m ) { return ""; } ++int Mouse_buttons( int m ) { return -1; } ++ ++void Keyboard_init() { } ++void Keyboard_poll() { } ++void Keyboard_quit() { } ++void Keyboard_probe() { } ++int Keyboard_count() { return -1; } ++int Keyboard_open( int kb ) { return -1; } ++int Keyboard_open( const char * name ) { return -1; } ++int Keyboard_close( int kb ) { return -1; } ++const char * Keyboard_name( int kb ) { return ""; } ++ ++t_CKINT TiltSensor_setPollRate( t_CKINT usec ) ++{ ++ return -1; ++} ++ ++t_CKINT TiltSensor_getPollRate( ) ++{ ++ return -1; ++} ++ + #endif + + diff --git a/src/app/chuck/patch b/src/app/chuck/patch deleted file mode 100644 index bc6359e..0000000 --- a/src/app/chuck/patch +++ /dev/null @@ -1,551 +0,0 @@ -diff --git a/src/chuck_bbq.h b/src/chuck_bbq.h -index 0cd059f..9cc0664 100644 ---- a/src/chuck_bbq.h -+++ b/src/chuck_bbq.h -@@ -44,9 +44,10 @@ - #elif defined(__MACOSX_CORE__) - #elif defined(__WINDOWS_DS__) - #elif defined(__WINDOWS_ASIO__) -+#elif defined(__GENODE_AUDIO__) - #else - #error "must define one:\ --__LINUX_ALSA__ __UNIX_JACK__ __LINUX_JACK__ __LINUX_PULSE__ __MACOSX_CORE__ __WINDOWS_DS__" -+__LINUX_ALSA__ __UNIX_JACK__ __LINUX_JACK__ __LINUX_PULSE__ __MACOSX_CORE__ __WINDOWS_DS__ __GENODE_AUDIO__" - #endif - - struct Chuck_VM; -diff --git a/src/chuck_shell.cpp b/src/chuck_shell.cpp -index 726afa4..506f886 100644 ---- a/src/chuck_shell.cpp -+++ b/src/chuck_shell.cpp -@@ -45,6 +45,10 @@ - #include - #endif - -+#ifdef __PLATFORM_GENODE__ -+#include -+#endif -+ - using namespace std; - - // global shell pointer (lives in chuck_main) -@@ -630,7 +634,7 @@ void Chuck_Shell::do_code( string & code, string & out, string command ) - prompt = variables["COMMAND_PROMPT"]; - return; - } --#else -+#elif defined(__PLATFORM_WIN32__) - char tmp_filepath1[MAX_PATH]; - win32_tmpnam(tmp_filepath1); - -@@ -650,6 +654,19 @@ void Chuck_Shell::do_code( string & code, string & out, string command ) - prompt = variables["COMMAND_PROMPT"]; - return; - } -+#elif defined(__PLATFORM_GENODE__) -+ char tmp_filepath[32]; -+ snprintf(tmp_filepath, sizeof(tmp_filepath), "/tmp/chuck_file.%x", Genode::Trace::Timestamp()&0xFFFFU); -+ -+ FILE * tmp_file = fopen( tmp_filepath, "w" ); -+ if( tmp_file == NULL ) -+ { -+ out += string( "shell: error: unable to open tmpfile '" ) + tmp_filepath + "'\n"; -+ prompt = variables["COMMAND_PROMPT"]; -+ return; -+ } -+#else -+#error Missing platform code for temporary files - #endif - - // write the code to the temp file -diff --git a/src/chuck_vm.cpp b/src/chuck_vm.cpp -index d907347..3ceafb2 100644 ---- a/src/chuck_vm.cpp -+++ b/src/chuck_vm.cpp -@@ -176,8 +176,16 @@ t_CKINT Chuck_VM::our_priority = 85; - t_CKINT Chuck_VM::our_priority = 0x7fffffff; - #endif - -- --#if !defined(__PLATFORM_WIN32__) || defined(__WINDOWS_PTHREAD__) -+#if defined(__PLATFORM_GENODE__) -+//----------------------------------------------------------------------------- -+// name: set_priority() -+// desc: ... -+//----------------------------------------------------------------------------- -+t_CKBOOL Chuck_VM::set_priority( t_CKINT priority, Chuck_VM * vm ) -+{ -+ return FALSE; -+} -+#elif !defined(__PLATFORM_WIN32__) || defined(__WINDOWS_PTHREAD__) - //----------------------------------------------------------------------------- - // name: set_priority() - // desc: ... -@@ -244,7 +252,6 @@ t_CKBOOL Chuck_VM::set_priority( t_CKINT priority, Chuck_VM * vm ) - #endif - - -- - - //----------------------------------------------------------------------------- - // name: initialize() -diff --git a/src/digiio_rtaudio.cpp b/src/digiio_rtaudio.cpp -index e78b19d..ea349e8 100644 ---- a/src/digiio_rtaudio.cpp -+++ b/src/digiio_rtaudio.cpp -@@ -151,7 +151,7 @@ void Digitalio::probe() - - // allocate RtAudio - try { rta = new RtAudio( ); } -- catch( RtError err ) -+ catch( RtAudioError err ) - { - // problem finding audio devices, most likely - EM_error2b( 0, "%s", err.getMessage().c_str() ); -@@ -169,7 +169,7 @@ void Digitalio::probe() - for( int i = 0; i < devices; i++ ) - { - try { info = rta->getDeviceInfo(i); } -- catch( RtError & error ) -+ catch( RtAudioError & error ) - { - error.printMessage(); - break; -@@ -205,7 +205,7 @@ DWORD__ Digitalio::device_named( const std::string & name, t_CKBOOL needs_dac, t - - // allocate RtAudio - try { rta = new RtAudio( ); } -- catch( RtError err ) -+ catch( RtAudioError err ) - { - // problem finding audio devices, most likely - EM_error2b( 0, "%s", err.getMessage().c_str() ); -@@ -220,7 +220,7 @@ DWORD__ Digitalio::device_named( const std::string & name, t_CKBOOL needs_dac, t - for( int i = 0; i < devices; i++ ) - { - try { info = rta->getDeviceInfo(i); } -- catch( RtError & error ) -+ catch( RtAudioError & error ) - { - error.printMessage(); - break; -@@ -239,7 +239,7 @@ DWORD__ Digitalio::device_named( const std::string & name, t_CKBOOL needs_dac, t - for( int i = 0; i < devices; i++ ) - { - try { info = rta->getDeviceInfo(i); } -- catch( RtError & error ) -+ catch( RtAudioError & error ) - { - error.printMessage(); - break; -@@ -269,7 +269,16 @@ DWORD__ Digitalio::device_named( const std::string & name, t_CKBOOL needs_dac, t - - - --#if !defined(__PLATFORM_WIN32__) || defined(__WINDOWS_PTHREAD__) -+#if defined(__PLATFORM_GENODE__) -+//----------------------------------------------------------------------------- -+// name: set_priority() -+// desc: ... -+//----------------------------------------------------------------------------- -+static t_CKBOOL set_priority( CHUCK_THREAD tid, t_CKINT priority ) -+{ -+ return FALSE; -+} -+#elif !defined(__PLATFORM_WIN32__) || defined(__WINDOWS_PTHREAD__) - //----------------------------------------------------------------------------- - // name: set_priority() - // desc: ... -@@ -515,7 +524,7 @@ BOOL__ Digitalio::initialize( DWORD__ num_dac_channels, - { - // allocate RtAudio - try { m_rtaudio = new RtAudio( ); } -- catch( RtError err ) -+ catch( RtAudioError err ) - { - // problem finding audio devices, most likely - EM_error2( 0, "%s", err.getMessage().c_str() ); -@@ -584,13 +593,13 @@ BOOL__ Digitalio::initialize( DWORD__ num_dac_channels, - { - // difference - long diff = device_info.sampleRates[i] - sampling_rate; -- // check // ge: changed from abs to labs, 2015.11 -- if( ::labs(diff) < closestDiff ) -+ // check -+ if( ::abs(diff) < closestDiff ) - { - // remember index - closestIndex = i; - // update diff -- closestDiff = ::labs(diff); -+ closestDiff = ::abs(diff); - } - - // for next highest -@@ -711,7 +720,7 @@ BOOL__ Digitalio::initialize( DWORD__ num_dac_channels, - CK_RTAUDIO_FORMAT, sampling_rate, &bufsize, - m_use_cb ? ( block ? &cb : &cb2 ) : NULL, vm_ref, - &stream_options ); -- } catch( RtError err ) { -+ } catch( RtAudioError err ) { - // log - EM_log( CK_LOG_INFO, "exception caught: '%s'...", err.getMessage().c_str() ); - EM_error2( 0, "%s", err.getMessage().c_str() ); -@@ -956,7 +965,7 @@ BOOL__ Digitalio::start( ) - try{ if( !m_start ) - m_rtaudio->startStream(); - m_start = TRUE; -- } catch( RtError err ){ return FALSE; } -+ } catch( RtAudioError err ){ return FALSE; } - #endif // __DISABLE_RTAUDIO__ - - #if defined(__CHIP_MODE__) -@@ -980,7 +989,7 @@ BOOL__ Digitalio::stop( ) - try{ if( m_start ) - m_rtaudio->stopStream(); - m_start = FALSE; -- } catch( RtError err ){ return FALSE; } -+ } catch( RtAudioError err ){ return FALSE; } - #endif // __DISABLE_RTAUDIO__ - - #if defined(__CHIP_MODE__) -@@ -1013,7 +1022,7 @@ BOOL__ Digitalio::stop( ) - // } - // - // return TRUE; --// } catch( RtError err ){ return FALSE; } -+// } catch( RtAudioError err ){ return FALSE; } - //#endif // __DISABLE_RTAUDIO__ - // - // return FALSE; -diff --git a/src/util_hid.cpp b/src/util_hid.cpp -index 9c26e2d..aea2eb7 100644 ---- a/src/util_hid.cpp -+++ b/src/util_hid.cpp -@@ -3725,7 +3725,7 @@ t_CKINT WiiRemote::disconnect() - msg.device_type = CK_HID_DEV_WIIREMOTE; - msg.type = CK_HID_DEVICE_DISCONNECTED; - -- HidInManager::push_message( msg ); -+ HidInManager::push_message( msg ); - - return 0; - } -@@ -7679,6 +7679,145 @@ const char * Keyboard_name( int k ) - return keyboards->at( k )->name; - } - -+#elif defined(__PLATFORM_GENODE__) -+ -+#include -+#include -+#include -+ -+static Genode::Env *g_input_env; -+ -+void init_input(Genode::Env &env) -+{ -+ g_input_env = &env; -+} -+ -+Genode::Constructible g_input_session; -+ -+static int g_input_count = 0; -+ -+void Hid_init() -+{ -+ if ( !g_input_session.constructed() ) { -+ if ( !g_input_env ) { -+ Genode::error("platform input not initialized with 'init_input'"); -+ throw -1; -+ } -+ g_input_session.construct( *g_input_env ); -+ } -+ g_input_count = g_input_count < 1 ? 1 : g_input_count+1; -+} -+ -+// A synchronous RPC poll -+void Hid_poll() -+{ -+ g_input_session->for_each_event( [&] ( Input::Event const &ev ) { -+ HidMsg msg; -+ -+ switch (ev.type()) { -+ case Input::Event::MOTION: -+ msg.device_type = CK_HID_DEV_MOUSE; -+ msg.type = CK_HID_MOUSE_MOTION; -+ msg.idata[0] = ev.ax(); -+ msg.idata[1] = ev.ay(); -+ break; -+ -+ case Input::Event::WHEEL: -+ msg.device_type = CK_HID_DEV_MOUSE; -+ msg.type = CK_HID_MOUSE_WHEEL; -+ msg.idata[0] = 0; -+ msg.idata[1] = ev.ry(); -+ break; -+ -+ case Input::Event::PRESS: -+ if (ev.code() == Input::BTN_MOUSE) -+ msg.device_type = CK_HID_DEV_MOUSE; -+ else -+ msg.device_type = CK_HID_DEV_KEYBOARD; -+ msg.type = CK_HID_BUTTON_DOWN; -+ msg.idata[1] = ev.code(); -+ msg.idata[2] = ev.utf8().b0; -+ break; -+ -+ case Input::Event::RELEASE: -+ if (ev.code() == Input::BTN_MOUSE) -+ msg.device_type = CK_HID_DEV_MOUSE; -+ else -+ msg.device_type = CK_HID_DEV_KEYBOARD; -+ msg.type = CK_HID_BUTTON_UP; -+ msg.idata[1] = ev.code(); -+ msg.idata[2] = ev.utf8().b0; -+ break; -+ -+ case Input::Event::FOCUS: -+ case Input::Event::LEAVE: -+ case Input::Event::TOUCH: -+ case Input::Event::INVALID: return; -+ } -+ -+ msg.eid = ev.code(); -+ -+ HidInManager::push_message( msg ); -+ }); -+} -+ -+void Hid_quit() -+{ -+ if ( --g_input_count <= 0 && g_input_session.constructed() ) -+ g_input_session.destruct(); -+} -+ -+void Joystick_init() -+{ -+ Genode::warning("Genode joystick input not implemented"); -+} -+ -+void Joystick_poll() { } -+void Joystick_quit() { } -+void Joystick_probe() { } -+int Joystick_count() { return 0; } -+int Joystick_open( int js ) { return -1; } -+int Joystick_open_async( int js ) { return -1; } -+int Joystick_open( const char * name ) { return -1; } -+int Joystick_close( int js ) { return -1; }; -+int Joystick_send( int js, const HidMsg * msg ) { return -1; } -+const char * Joystick_name( int js ) { return "Genode Input session"; } -+ -+void Mouse_init() { Hid_init(); } -+void Mouse_poll() { } -+void Mouse_quit() { Hid_quit(); } -+ -+void Mouse_probe() { } -+int Mouse_count() { return g_input_session.constructed() ? 1 : 0; } -+int Mouse_open( int m ) { return g_input_session.constructed() ? 0 : -1; } -+int Mouse_open( const char * name ) { return g_input_session.constructed() ? 0 : -1; } -+int Mouse_close( int m ) { return 0; } -+int Mouse_send( int m, const HidMsg * msg ) { return -1; } -+const char * Mouse_name( int m ) { return "Genode Input session"; } -+int Mouse_buttons( int m ) { return 0; } -+ -+void Keyboard_init() { Hid_init(); } -+void Keyboard_poll() { } -+void Keyboard_quit() { Hid_quit(); } -+void Keyboard_probe() { } -+int Keyboard_count() { return g_input_session.constructed() ? 1 : 0; } -+ -+int Keyboard_open( int kb ) { return g_input_session.constructed() ? 0 : -1; } -+ -+int Keyboard_open( const char * name ) { return g_input_session.constructed() ? 0 : -1; } -+int Keyboard_close( int kb ) { return 0; } -+const char * Keyboard_name( int kb ) { return "Genode Input session"; } -+ -+t_CKINT TiltSensor_setPollRate( t_CKINT usec ) -+{ -+ return -1; -+} -+ -+t_CKINT TiltSensor_getPollRate( ) -+{ -+ return -1; -+} -+ - #endif - - -@@ -7735,7 +7874,7 @@ extern int Tablet_open( int ts ) { return -1; } - extern int Tablet_close( int ts ) { return -1; } - extern const char * Tablet_name( int ts ) { return NULL; } - --#endif -+#endif // __PLATFORM_GENODE__ - - - #ifdef __CHIP_MODE__ -diff --git a/src/util_hid.h b/src/util_hid.h -index 7fa87d3..5527d90 100644 ---- a/src/util_hid.h -+++ b/src/util_hid.h -@@ -32,7 +32,13 @@ - #ifndef __UTIL_HID_H__ - #define __UTIL_HID_H__ - -+#ifdef __PLATFORM_GENODE__ - -+#include -+ -+void init_input(Genode::Env &env); -+ -+#endif // __PLATFORM_GENODE__ - - - //----------------------------------------------------------------------------- -diff --git a/src/util_sndfile.h b/src/util_sndfile.h -index 2a62fd7..a4f4f3b 100644 ---- a/src/util_sndfile.h -+++ b/src/util_sndfile.h -@@ -184,6 +184,18 @@ - #define HAVE_LRINT 1 - #endif - -+#if defined(__PLATFORM_GENODE__) -+#define TYPEOF_SF_COUNT_T long -+#define CPU_CLIPS_POSITIVE 0 -+#define CPU_IS_BIG_ENDIAN 0 -+#define CPU_IS_LITTLE_ENDIAN 1 -+#define HAVE_PREAD 1 -+#define HAVE_PWRITE 1 -+#define OS_IS_MACOSX 0 -+#define OS_IS_WIN32 0 -+#define HAVE_LRINTF 1 -+#define HAVE_LRINT 1 -+#endif - - - // XXX 'inline' is necessary for C compilation -diff --git a/src/util_string.cpp b/src/util_string.cpp -index ff1770e..774d43c 100644 ---- a/src/util_string.cpp -+++ b/src/util_string.cpp -@@ -40,6 +40,10 @@ - #include - #endif // __PLATFORM_LINUX__ - -+#ifdef __PLATFORM_GENODE__ -+#define PATH_MAX 512 -+#endif // __PLATFORM_GENODE__ -+ - #include - using namespace std; - -diff --git a/src/util_thread.cpp b/src/util_thread.cpp -index 5e32ade..a4095a5 100644 ---- a/src/util_thread.cpp -+++ b/src/util_thread.cpp -@@ -69,7 +69,7 @@ XThread::~XThread( ) - { - if( thread != 0 ) - { --#if defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) -+#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_GENODE__) ) - pthread_cancel(thread); - pthread_join(thread, NULL); - #elif defined(__PLATFORM_WIN32__) -@@ -89,7 +89,7 @@ bool XThread::start( THREAD_FUNCTION routine, void * ptr ) - { - bool result = false; - --#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) ) -+#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_GENODE__) ) - if( pthread_create( &thread, NULL, *routine, ptr ) == 0 ) - result = true; - #elif defined(__PLATFORM_WIN32__) -@@ -111,7 +111,7 @@ bool XThread::wait( long milliseconds, bool cancel ) - { - bool result = false; - --#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) ) -+#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_GENODE__) ) - if(cancel) pthread_cancel(thread); - pthread_join(thread, NULL); - #elif defined(__PLATFORM_WIN32__) -@@ -138,7 +138,7 @@ bool XThread::wait( long milliseconds, bool cancel ) - //----------------------------------------------------------------------------- - void XThread :: test( ) - { --#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) ) -+#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_GENODE__) ) - pthread_testcancel(); - #endif - } -@@ -152,7 +152,7 @@ void XThread :: test( ) - //----------------------------------------------------------------------------- - XMutex::XMutex( ) - { --#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) ) -+#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_GENODE__)) - pthread_mutex_init(&mutex, NULL); - #elif defined(__PLATFORM_WIN32__) - InitializeCriticalSection(&mutex); -@@ -168,7 +168,7 @@ XMutex::XMutex( ) - //----------------------------------------------------------------------------- - XMutex::~XMutex( ) - { --#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) ) -+#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_GENODE__) ) - pthread_mutex_destroy( &mutex ); - #elif defined(__PLATFORM_WIN32__) - DeleteCriticalSection(&mutex); -@@ -184,7 +184,7 @@ XMutex::~XMutex( ) - //----------------------------------------------------------------------------- - void XMutex::acquire( ) - { --#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) ) -+#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_GENODE__) ) - pthread_mutex_lock(&mutex); - #elif defined(__PLATFORM_WIN32__) - EnterCriticalSection(&mutex); -@@ -200,7 +200,7 @@ void XMutex::acquire( ) - //----------------------------------------------------------------------------- - void XMutex::release( ) - { --#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) ) -+#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_GENODE__) ) - pthread_mutex_unlock(&mutex); - #elif defined(__PLATFORM_WIN32__) - LeaveCriticalSection(&mutex); -@@ -389,7 +389,7 @@ void XWriteThread::flush_data_buffer() - // name: write_cb() - // desc: thread function - //----------------------------------------------------------------------------- --#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) ) -+#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_GENODE__) ) - void * XWriteThread::write_cb(void * _thiss) - #elif defined(__PLATFORM_WIN32__) - unsigned XWriteThread::write_cb(void * _thiss) -diff --git a/src/util_thread.h b/src/util_thread.h -index ebdd5dd..3703844 100644 ---- a/src/util_thread.h -+++ b/src/util_thread.h -@@ -43,7 +43,7 @@ class FastCircularBuffer; - template class CircularBuffer; - - --#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) ) -+#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_GENODE__) || defined(__PLATFORM_GENODE__)) - #include - #define THREAD_TYPE - typedef pthread_t THREAD_HANDLE; -@@ -154,7 +154,7 @@ private: - void flush_data_buffer(); - - // callback --#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) ) -+#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_GENODE__) ) - static void * write_cb( void * _thiss ); - #elif defined(__PLATFORM_WIN32__) - static unsigned THREAD_TYPE write_cb( void * _thiss ); diff --git a/src/app/chuck/rterror.patch b/src/app/chuck/rterror.patch new file mode 100644 index 0000000..60d1495 --- /dev/null +++ b/src/app/chuck/rterror.patch @@ -0,0 +1,85 @@ +diff --git a/src/host/chuck_audio.cpp b/src/host/chuck_audio.cpp +index 5e562b0..257d4c0 100644 +--- a/src/host/chuck_audio.cpp ++++ b/src/host/chuck_audio.cpp +@@ -155,7 +155,7 @@ void ChuckAudio::probe() + + // allocate RtAudio + try { audio = new RtAudio( ); } +- catch( RtError err ) ++ catch( RtAudioError err ) + { + // problem finding audio devices, most likely + EM_error2b( 0, "%s", err.getMessage().c_str() ); +@@ -173,7 +173,7 @@ void ChuckAudio::probe() + for( int i = 0; i < devices; i++ ) + { + try { info = audio->getDeviceInfo(i); } +- catch( RtError & error ) ++ catch( RtAudioError & error ) + { + error.printMessage(); + break; +@@ -213,7 +213,7 @@ t_CKUINT ChuckAudio::device_named( const std::string & name, t_CKBOOL needs_dac, + + // allocate RtAudio + try { audio = new RtAudio(); } +- catch( RtError err ) ++ catch( RtAudioError err ) + { + // problem finding audio devices, most likely + EM_error2b( 0, "%s", err.getMessage().c_str() ); +@@ -229,7 +229,7 @@ t_CKUINT ChuckAudio::device_named( const std::string & name, t_CKBOOL needs_dac, + { + // get info + try { info = audio->getDeviceInfo(i); } +- catch( RtError & error ) ++ catch( RtAudioError & error ) + { + error.printMessage(); + break; +@@ -251,7 +251,7 @@ t_CKUINT ChuckAudio::device_named( const std::string & name, t_CKBOOL needs_dac, + for( int i = 0; i < devices; i++ ) + { + try { info = audio->getDeviceInfo(i); } +- catch( RtError & error ) ++ catch( RtAudioError & error ) + { + error.printMessage(); + break; +@@ -477,7 +477,7 @@ t_CKBOOL ChuckAudio::initialize( t_CKUINT num_dac_channels, + + // allocate RtAudio + try { m_rtaudio = new RtAudio( ); } +- catch( RtError err ) ++ catch( RtAudioError err ) + { + // problem finding audio devices, most likely + EM_error2( 0, "%s", err.getMessage().c_str() ); +@@ -674,7 +674,7 @@ t_CKBOOL ChuckAudio::initialize( t_CKUINT num_dac_channels, + CK_RTAUDIO_FORMAT, sample_rate, &bufsize, + cb, m_cb_user_data, + &stream_options ); +- } catch( RtError err ) { ++ } catch( RtAudioError err ) { + // log + EM_log( CK_LOG_INFO, "exception caught: '%s'...", err.getMessage().c_str() ); + EM_error2( 0, "%s", err.getMessage().c_str() ); +@@ -804,7 +804,7 @@ t_CKBOOL ChuckAudio::start( ) + m_rtaudio->startStream(); + m_start = TRUE; + } +- catch( RtError err ) ++ catch( RtAudioError err ) + { + return FALSE; + } +@@ -826,7 +826,7 @@ t_CKBOOL ChuckAudio::stop( ) + m_rtaudio->stopStream(); + m_start = FALSE; + } +- catch( RtError err ) ++ catch( RtAudioError err ) + { + return FALSE; + } diff --git a/src/app/chuck/shell.patch b/src/app/chuck/shell.patch new file mode 100644 index 0000000..18faf23 --- /dev/null +++ b/src/app/chuck/shell.patch @@ -0,0 +1,13 @@ +diff --git a/src/core/chuck_shell.cpp b/src/core/chuck_shell.cpp +index 7f89df7..fd8a065 100644 +--- a/src/core/chuck_shell.cpp ++++ b/src/core/chuck_shell.cpp +@@ -599,7 +599,7 @@ void Chuck_Shell::continue_code( string & in ) + void Chuck_Shell::do_code( string & code, string & out, string command ) + { + // open a temporary file +-#if defined(__PLATFORM_LINUX__) || defined(__MACOSX_CORE__) ++#if ( defined(__PLATFORM_LINUX__) || defined(__MACOSX_CORE__) || defined(__PLATFORM_GENODE__) ) + char tmp_dir[] = "/tmp"; + char * tmp_filepath = new char [32]; + strncpy( tmp_filepath, "/tmp/chuck_file.XXXXXX", 32 ); diff --git a/src/app/chuck/target.mk b/src/app/chuck/target.mk index 6acb6be..91be969 100644 --- a/src/app/chuck/target.mk +++ b/src/app/chuck/target.mk @@ -1,43 +1,40 @@ TARGET := chuck -LIBS = stdcxx libc pthread rtaudio liblo libsndfile base libogg libvorbis libFLAC +LIBS += base libc libm pthread stdcxx rtaudio liblo sdl +LIBS += libsndfile libogg libvorbis libFLAC -CHUCK_DIR = $(call select_from_ports,chuck)/src/app/chuck/src +CHUCK_SRC_DIR = $(call select_from_ports,chuck)/src/app/chuck/src +CHUCK_CORE_DIR = $(CHUCK_SRC_DIR)/core +CHUCK_HOST_DIR = $(CHUCK_SRC_DIR)/host CC_OPT += \ -D__PLATFORM_GENODE__ \ + -D__GENODE_AUDIO__ \ -D__DISABLE_MIDI__ \ + -DCPU_IS_LITTLE_ENDIAN=1 \ + -D__CK_SNDFILE_NATIVE__ \ CC_WARN += -Wno-sign-compare -INC_DIR += $(PRG_DIR) $(CHUCK_DIR) +INC_DIR += $(PRG_DIR) $(CHUCK_CORE_DIR) $(CHUCK_HOST_DIR) CHUCK_SRC_C := \ chuck.tab.c chuck.yy.c util_math.c util_network.c util_raw.c \ util_xforms.c -CHUCK_SRC_CC := \ - chuck_absyn.cpp chuck_parse.cpp chuck_errmsg.cpp \ - chuck_frame.cpp chuck_symbol.cpp chuck_table.cpp chuck_utils.cpp \ - chuck_vm.cpp chuck_instr.cpp chuck_scan.cpp chuck_type.cpp chuck_emit.cpp \ - chuck_compile.cpp chuck_dl.cpp chuck_oo.cpp chuck_lang.cpp chuck_ugen.cpp \ - chuck_otf.cpp chuck_stats.cpp chuck_bbq.cpp chuck_shell.cpp \ - chuck_console.cpp chuck_globals.cpp chuck_io.cpp chuck_system.cpp \ - digiio_rtaudio.cpp hidio_sdl.cpp \ - midiio_rtmidi.cpp ugen_osc.cpp ugen_filter.cpp \ - ugen_stk.cpp ugen_xxx.cpp ulib_machine.cpp ulib_math.cpp ulib_std.cpp \ - ulib_opsc.cpp ulib_regex.cpp util_buffers.cpp util_console.cpp \ - util_string.cpp util_thread.cpp util_opsc.cpp util_serial.cpp \ - util_hid.cpp uana_xform.cpp uana_extract.cpp +CHUCK_SRC_CC := $(notdir $(wildcard $(CHUCK_CORE_DIR)/*.cpp)) + +CHUCK_SRC_CC_FILTER = util_console.cpp LO_SRC_C := \ lo/address.c lo/blob.c lo/bundle.c lo/message.c lo/method.c \ lo/pattern_match.c lo/send.c lo/server.c lo/server_thread.c lo/timetag.c -SRC_C := $(CHUCK_SRC_C) $(util_sndfile.c) -SRC_CC := $(filter-out util_console.cpp,$(CHUCK_SRC_CC)) dummies.cc component.cc +SRC_C += $(CHUCK_SRC_C) $(util_sndfile.c) +SRC_CC += $(filter-out $(CHUCK_SRC_CC_FILTER),$(CHUCK_SRC_CC)) +SRC_CC += dummies.cc chuck_component.cc chuck_audio.cpp -vpath %.c $(CHUCK_DIR) -vpath %.cpp $(CHUCK_DIR) +vpath %.c $(CHUCK_CORE_DIR) +vpath %.cpp $(CHUCK_CORE_DIR) $(CHUCK_HOST_DIR) CC_CXX_WARN_STRICT = diff --git a/src/app/chuck/thread.patch b/src/app/chuck/thread.patch new file mode 100644 index 0000000..8da2e98 --- /dev/null +++ b/src/app/chuck/thread.patch @@ -0,0 +1,35 @@ +diff --git a/src/core/util_thread.cpp b/src/core/util_thread.cpp +index d2467c1..939e936 100644 +--- a/src/core/util_thread.cpp ++++ b/src/core/util_thread.cpp +@@ -389,7 +389,7 @@ void XWriteThread::flush_data_buffer() + // name: write_cb() + // desc: thread function + //----------------------------------------------------------------------------- +-#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) ) ++#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_GENODE__) ) + void * XWriteThread::write_cb(void * _thiss) + #elif defined(__PLATFORM_WIN32__) + unsigned XWriteThread::write_cb(void * _thiss) +diff --git a/src/core/util_thread.h b/src/core/util_thread.h +index c6f4a3c..24999de 100644 +--- a/src/core/util_thread.h ++++ b/src/core/util_thread.h +@@ -43,7 +43,7 @@ class FastCircularBuffer; + template class CircularBuffer; + + +-#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) ) ++#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_GENODE__) ) + #include + #define THREAD_TYPE + typedef pthread_t THREAD_HANDLE; +@@ -174,7 +174,7 @@ private: + void flush_data_buffer(); + + // callback +-#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) ) ++#if ( defined(__PLATFORM_MACOSX__) || defined(__PLATFORM_LINUX__) || defined(__WINDOWS_PTHREAD__) || defined(__PLATFORM_GENODE__) ) + static void * write_cb( void * _thiss ); + #elif defined(__PLATFORM_WIN32__) + static unsigned THREAD_TYPE write_cb( void * _thiss );