├── .gitignore ├── CMakeLists.txt ├── Doxyfile ├── README.md ├── docs └── html │ ├── SIDAudioSource_8h_source.html │ ├── SIDConfig_8h_source.html │ ├── SIDPlayer_8h_source.html │ ├── SIDStream_8h_source.html │ ├── _s_i_d_audio_source_8h_source.html │ ├── _s_i_d_config_8h_source.html │ ├── _s_i_d_player_8h.html │ ├── _s_i_d_player_8h_source.html │ ├── _s_i_d_stream_8h_source.html │ ├── annotated.html │ ├── bc_s.png │ ├── bc_sd.png │ ├── bdwn.png │ ├── classaudio__tools_1_1SIDAudioSource-members.html │ ├── classaudio__tools_1_1SIDAudioSource.html │ ├── classaudio__tools_1_1SIDAudioSource.png │ ├── classaudio__tools_1_1SIDPlayer-members.html │ ├── classaudio__tools_1_1SIDPlayer.html │ ├── classaudio__tools_1_1SIDPlayer.png │ ├── classaudio__tools_1_1SIDSizeSource-members.html │ ├── classaudio__tools_1_1SIDSizeSource.html │ ├── classaudio__tools_1_1SIDSizeSource.png │ ├── classaudio__tools_1_1SIDStream-members.html │ ├── classaudio__tools_1_1SIDStream.html │ ├── classaudio__tools_1_1SIDStream.png │ ├── classaudio__tools_1_1SIDStreamConfig-members.html │ ├── classaudio__tools_1_1SIDStreamConfig.html │ ├── classaudio__tools_1_1SIDStreamConfig.png │ ├── classaudio__tools_1_1SizeSource-members.html │ ├── classaudio__tools_1_1SizeSource.html │ ├── classaudio__tools_1_1SizeSource.png │ ├── classaudio__tools_1_1SizeSourceFile-members.html │ ├── classaudio__tools_1_1SizeSourceFile.html │ ├── classaudio__tools_1_1SizeSourceFile.png │ ├── classaudio__tools_1_1_s_i_d_audio_source-members.html │ ├── classaudio__tools_1_1_s_i_d_audio_source.html │ ├── classaudio__tools_1_1_s_i_d_audio_source.png │ ├── classaudio__tools_1_1_s_i_d_player-members.html │ ├── classaudio__tools_1_1_s_i_d_player.html │ ├── classaudio__tools_1_1_s_i_d_player.png │ ├── classaudio__tools_1_1_s_i_d_size_source-members.html │ ├── classaudio__tools_1_1_s_i_d_size_source.html │ ├── classaudio__tools_1_1_s_i_d_size_source.png │ ├── classaudio__tools_1_1_s_i_d_stream-members.html │ ├── classaudio__tools_1_1_s_i_d_stream.html │ ├── classaudio__tools_1_1_s_i_d_stream.png │ ├── classaudio__tools_1_1_s_i_d_stream_config-members.html │ ├── classaudio__tools_1_1_s_i_d_stream_config.html │ ├── classaudio__tools_1_1_s_i_d_stream_config.png │ ├── classaudio__tools_1_1_size_source-members.html │ ├── classaudio__tools_1_1_size_source.html │ ├── classaudio__tools_1_1_size_source.png │ ├── classaudio__tools_1_1_size_source_file-members.html │ ├── classaudio__tools_1_1_size_source_file.html │ ├── classaudio__tools_1_1_size_source_file.png │ ├── classes.html │ ├── closed.png │ ├── dir_68267d1309a1af8e8297ef4c3efbcdba.html │ ├── doc.png │ ├── docd.png │ ├── doxygen.css │ ├── doxygen.svg │ ├── dynsections.js │ ├── files.html │ ├── folderclosed.png │ ├── folderopen.png │ ├── functions.html │ ├── functions_func.html │ ├── hierarchy.html │ ├── index.html │ ├── jquery.js │ ├── md_README.html │ ├── md__r_e_a_d_m_e.html │ ├── menu.js │ ├── menudata.js │ ├── nav_f.png │ ├── nav_fd.png │ ├── nav_g.png │ ├── nav_h.png │ ├── nav_hd.png │ ├── open.png │ ├── pages.html │ ├── search │ ├── all_0.html │ ├── all_0.js │ ├── all_1.html │ ├── all_1.js │ ├── all_2.html │ ├── all_2.js │ ├── all_3.html │ ├── all_3.js │ ├── all_4.html │ ├── all_4.js │ ├── all_5.html │ ├── all_5.js │ ├── all_6.html │ ├── all_6.js │ ├── all_7.html │ ├── all_7.js │ ├── all_8.html │ ├── all_8.js │ ├── all_9.html │ ├── all_9.js │ ├── all_a.html │ ├── all_a.js │ ├── all_b.html │ ├── all_b.js │ ├── all_c.html │ ├── all_c.js │ ├── classes_0.html │ ├── classes_0.js │ ├── close.svg │ ├── files_0.js │ ├── functions_0.html │ ├── functions_0.js │ ├── functions_1.html │ ├── functions_1.js │ ├── functions_2.html │ ├── functions_2.js │ ├── functions_3.html │ ├── functions_3.js │ ├── functions_4.html │ ├── functions_4.js │ ├── functions_5.html │ ├── functions_5.js │ ├── functions_6.html │ ├── functions_6.js │ ├── functions_7.html │ ├── functions_7.js │ ├── functions_8.html │ ├── functions_8.js │ ├── functions_9.html │ ├── functions_9.js │ ├── functions_a.html │ ├── functions_a.js │ ├── functions_b.html │ ├── functions_b.js │ ├── functions_c.html │ ├── functions_c.js │ ├── mag.svg │ ├── mag_d.svg │ ├── mag_sel.svg │ ├── mag_seld.svg │ ├── nomatches.html │ ├── pages_0.html │ ├── pages_0.js │ ├── search.css │ ├── search.js │ ├── search_l.png │ ├── search_m.png │ ├── search_r.png │ └── searchdata.js │ ├── splitbar.png │ ├── splitbard.png │ ├── structaudio__tools_1_1SIDMetadata-members.html │ ├── structaudio__tools_1_1SIDMetadata.html │ ├── structaudio__tools_1_1SIDStreamConfig-members.html │ ├── structaudio__tools_1_1SIDStreamConfig.html │ ├── structaudio__tools_1_1SIDStreamConfig.png │ ├── structaudio__tools_1_1SidTitle-members.html │ ├── structaudio__tools_1_1SidTitle.html │ ├── structaudio__tools_1_1_s_i_d_metadata-members.html │ ├── structaudio__tools_1_1_s_i_d_metadata.html │ ├── structaudio__tools_1_1_s_i_d_stream_config-members.html │ ├── structaudio__tools_1_1_s_i_d_stream_config.html │ ├── structaudio__tools_1_1_s_i_d_stream_config.png │ ├── structaudio__tools_1_1_sid_title-members.html │ ├── structaudio__tools_1_1_sid_title.html │ ├── sync_off.png │ ├── sync_on.png │ ├── tab_a.png │ ├── tab_ad.png │ ├── tab_b.png │ ├── tab_bd.png │ ├── tab_h.png │ ├── tab_hd.png │ ├── tab_s.png │ ├── tab_sd.png │ └── tabs.css ├── examples ├── desktop-player │ ├── CMakeLists.txt │ └── desktop-player.ino ├── desktop-stream │ ├── CMakeLists.txt │ └── desktop-stream.ino ├── player-kit │ └── player-kit.ino ├── player-sd │ └── player-sd.ino ├── player │ └── player.ino └── stream │ └── stream.ino ├── library.properties └── src ├── SIDAudioSource.h ├── SIDConfig.h ├── SIDPlayer.h ├── SIDStream.h ├── audio ├── arkanoid.h ├── comic.h ├── commando.h ├── ik.h ├── mikie.h ├── ocean.h ├── rambo.h ├── wizball.h └── yie.h └── sid-api ├── libcsid.h ├── libcsidlight.cpp ├── precalc.h └── sidmemory.h /.gitignore: -------------------------------------------------------------------------------- 1 | data/ 2 | build/ 3 | *.svd 4 | debug.cfg 5 | debug_custom.json 6 | .vscode/ 7 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.16) 2 | 3 | # set the project name 4 | project(sidplayer) 5 | 6 | # lots of warnings and all warnings as errors 7 | # add_compile_options(-Wall -Wextra ) 8 | 9 | set (CMAKE_CXX_STANDARD 17) 10 | set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") 11 | set (CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG}") 12 | include(FetchContent) 13 | 14 | 15 | # Build with Audio Tool 16 | set (ADD_STD_LIB OFF CACHE INTERNAL "Turn off extended libs") 17 | set (ADD_PORTAUDIO OFF CACHE INTERNAL "Portraudio lib") 18 | set (ADD_ARDUINO_EMULATOR OFF CACHE INTERNAL "Arduino Emulator lib") 19 | FetchContent_Declare(arduino-audio-tools GIT_REPOSITORY "https://github.com/pschatzmann/arduino-audio-tools.git" GIT_TAG main ) 20 | FetchContent_GetProperties(arduino-audio-tools) 21 | if(NOT arduino-audio-tools_POPULATED) 22 | FetchContent_Populate(arduino-audio-tools) 23 | add_subdirectory(${arduino-audio-tools_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/arduino-audio-tools) 24 | endif() 25 | 26 | # define source files 27 | file(GLOB_RECURSE SRC_LIST_CPP CONFIGURE_DEPENDS "${PROJECT_SOURCE_DIR}/src/*.cpp" ) 28 | 29 | # define libraries 30 | add_library (sidplayer STATIC ${SRC_LIST_CPP}) 31 | 32 | target_compile_definitions(sidplayer PUBLIC -DIS_DESKTOP_WITH_TIME_ONLY -DEXIT_ON_STOP ) 33 | target_compile_definitions(arduino-audio-tools INTERFACE -DIS_DESKTOP_WITH_TIME_ONLY -DEXIT_ON_STOP) 34 | 35 | # define location for header files 36 | target_include_directories(sidplayer PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src ) 37 | 38 | target_link_libraries(sidplayer arduino-audio-tools) 39 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Playing SID Files 2 | 3 | In the old days I was rather a Commodere PC guy but I know of colleagues of mine that were addicted to the Commodore 64 and knew it inside out. Here is another project that makes you feel nostalgic: 4 | 5 | __Sound Interface Device (SID)__ is a audio format used by the __Commodore 64__ and 128. 6 | 7 | To get some SID files, I can recommend The [High Voltage SID Collection (HVSC)](https://www.hvsc.c64.org/) which is a freeware hobby project that organizes Commodore 64 music into an archive for both musicians and fans alike. 8 | 9 | Unfortunately we can not feed SID files incrementally to a codec, so this does not fit with my audio codecs that are used e.g. in the AudioPlayer of the AudioTools library. 10 | 11 | Therefore this project provides a separate, dedicated __SID stream__ and a __SID player__ that can play SID from files or from in memory hex dumps __on Arduino__. The player is based on the AudioPlayer from the [Arduino Audio Tools](https://github.com/pschatzmann/arduino-audio-tools), so you can use __different audio sources and audio sinks__. The SID emulation is based on cSID light by Hermit (Mihaly Horvath), (Year 2017). 12 | 13 | 14 | ### Memory Requirements 15 | 16 | You can set the RAM implementation in the config file (SIDConfig.h): In most cases it is using __64KB fixed__. By default this memory is reserved statically. You can also select to use PSRAM instead of RAM. 17 | There is also an experimenal memory implementation that can directly use the song stored in PROGMEM and just needs around 2K of additinal RAM. 18 | 19 | 20 | ### Documentation 21 | 22 | - [Class Documentation](https://pschatzmann.github.io/SIDPlayer/docs/html/annotated.html) 23 | - [AudioTools Audio Player](https://github.com/pschatzmann/arduino-audio-tools/wiki/The-Audio-Player-Class) 24 | - [Supported Output Devices](https://pschatzmann.github.io/arduino-audio-tools/group__io.html) 25 | - [AudioTools Wiki](https://github.com/pschatzmann/arduino-audio-tools/wiki) 26 | 27 | ### Installation 28 | 29 | For Arduino you can download the library as zip and call include Library -> zip library. Or you can git clone this project into the Arduino libraries folder e.g. with 30 | 31 | ``` 32 | cd ~/Documents/Arduino/libraries 33 | git clone https://github.com/pschatzmann/SIDPlayer.git 34 | ``` 35 | 36 | And please do not forget to also install the [AudioTools](https://github.com/pschatzmann/arduino-audio-tools)! 37 | -------------------------------------------------------------------------------- /docs/html/SIDConfig_8h_source.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | SID Player: src/SIDConfig.h Source File 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 27 | 28 | 29 |
24 |
SID Player 25 |
26 |
30 |
31 | 32 | 33 | 38 | 39 | 40 | 47 | 48 | 49 |
53 |
54 | 55 | 56 |
57 | 60 |
61 | 62 | 66 |
67 |
68 |
69 |
SIDConfig.h
70 |
71 |
72 |
1 #pragma once
73 |
2 
74 |
7 #ifndef MAX_DATA_LEN
75 |
8 # define MAX_DATA_LEN 65536
76 |
9 #endif
77 |
10 
78 |
14 #ifndef MAX_FILE_SIZE
79 |
15 # define MAX_FILE_SIZE 20000
80 |
16 #endif
81 |
17 
82 |
26 #ifndef MEMORY_ALLOCATION_LOGIC
83 |
27 # define MEMORY_ALLOCATION_LOGIC 3
84 |
28 #endif
85 |
29 
86 |
30 
87 |
88 | 89 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /docs/html/_s_i_d_config_8h_source.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | SID Player: src/SIDConfig.h Source File 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 27 | 28 | 29 |
24 |
SID Player 25 |
26 |
30 |
31 | 32 | 33 | 38 | 39 | 40 | 48 | 49 | 50 |
54 |
55 | 56 | 57 |
58 |
59 |
60 |
61 |
62 |
Loading...
63 |
Searching...
64 |
No Matches
65 |
66 |
67 |
68 |
69 | 70 | 74 |
75 |
76 |
SIDConfig.h
77 |
78 |
79 |
1#pragma once
80 |
2
81 |
7#ifndef MAX_DATA_LEN
82 |
8# define MAX_DATA_LEN 65536
83 |
9#endif
84 |
10
85 |
14#ifndef MAX_FILE_SIZE
86 |
15# define MAX_FILE_SIZE 20000
87 |
16#endif
88 |
17
89 |
26#ifndef MEMORY_ALLOCATION_LOGIC
90 |
27# define MEMORY_ALLOCATION_LOGIC 3
91 |
28#endif
92 |
29
93 |
30
94 |
95 | 96 | 99 | 100 | 101 | -------------------------------------------------------------------------------- /docs/html/_s_i_d_player_8h.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | SID Player: src/SIDPlayer.h File Reference 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 27 | 28 | 29 |
24 |
SID Player 25 |
26 |
30 |
31 | 32 | 33 | 38 | 39 | 40 | 48 | 49 | 50 |
54 |
55 | 56 | 57 |
58 |
59 |
60 |
61 |
62 |
Loading...
63 |
Searching...
64 |
No Matches
65 |
66 |
67 |
68 |
69 | 70 | 74 |
75 |
76 |
77 | Classes
78 |
SIDPlayer.h File Reference
79 |
80 |
81 | 82 |

A simple abstraction to underlying sid/6502 logic. 83 | More...

84 |
#include "AudioTools.h"
85 | #include "SIDAudioSource.h"
86 | #include "SIDStream.h"
87 | #include "SIDConfig.h"
88 |
89 |

Go to the source code of this file.

90 | 91 | 93 | 94 | 95 | 96 |

92 | Classes

class  audio_tools::SIDPlayer
 SID player which is based on the AudioPlayer from the AudioTools project and the SidPlayer provided by Gunnar Larsen. The SID emulation is based on cSID light by Hermit (Mihaly Horvath), (Year 2017). More...
 
97 |

Detailed Description

98 |

A simple abstraction to underlying sid/6502 logic.

99 |
Author
Gunnar Larsen
100 |
Version
0.1
101 |
Date
2023-02-23
102 |
103 | 104 | 107 | 108 | 109 | -------------------------------------------------------------------------------- /docs/html/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/bc_s.png -------------------------------------------------------------------------------- /docs/html/bc_sd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/bc_sd.png -------------------------------------------------------------------------------- /docs/html/bdwn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/bdwn.png -------------------------------------------------------------------------------- /docs/html/classaudio__tools_1_1SIDAudioSource.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1SIDAudioSource.png -------------------------------------------------------------------------------- /docs/html/classaudio__tools_1_1SIDPlayer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1SIDPlayer.png -------------------------------------------------------------------------------- /docs/html/classaudio__tools_1_1SIDSizeSource-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | SID Player: Member List 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 27 | 28 | 29 |
24 |
SID Player 25 |
26 |
30 |
31 | 32 | 33 | 38 | 39 | 40 | 47 | 48 | 49 |
53 |
54 | 55 | 56 |
57 | 60 |
61 | 62 | 66 |
67 |
68 |
69 |
audio_tools::SIDSizeSource Member List
70 |
71 |
72 | 73 |

This is the complete list of members for audio_tools::SIDSizeSource, including all inherited members.

74 | 75 | 76 | 77 | 78 |
p_source (defined in audio_tools::SIDSizeSource)audio_tools::SIDSizeSourceprotected
SIDSizeSource(SIDAudioSource &source) (defined in audio_tools::SIDSizeSource)audio_tools::SIDSizeSourceinline
size() (defined in audio_tools::SIDSizeSource)audio_tools::SIDSizeSourceinlinevirtual
79 | 80 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /docs/html/classaudio__tools_1_1SIDSizeSource.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1SIDSizeSource.png -------------------------------------------------------------------------------- /docs/html/classaudio__tools_1_1SIDStream.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1SIDStream.png -------------------------------------------------------------------------------- /docs/html/classaudio__tools_1_1SIDStreamConfig-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | SID Player: Member List 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 27 | 28 | 29 |
24 |
SID Player 25 |
26 |
30 |
31 | 32 | 33 | 38 | 39 | 40 | 47 | 48 | 49 |
53 |
54 | 55 | 56 |
57 | 60 |
61 | 62 | 66 |
67 |
68 |
69 |
audio_tools::SIDStreamConfig Member List
70 |
71 |
72 | 73 |

This is the complete list of members for audio_tools::SIDStreamConfig, including all inherited members.

74 | 75 | 76 | 77 |
sid_model (defined in audio_tools::SIDStreamConfig)audio_tools::SIDStreamConfig
SIDStreamConfig() (defined in audio_tools::SIDStreamConfig)audio_tools::SIDStreamConfiginline
78 | 79 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /docs/html/classaudio__tools_1_1SIDStreamConfig.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | SID Player: audio_tools::SIDStreamConfig Class Reference 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 27 | 28 | 29 |
24 |
SID Player 25 |
26 |
30 |
31 | 32 | 33 | 38 | 39 | 40 | 47 | 48 | 49 |
53 |
54 | 55 | 56 |
57 | 60 |
61 | 62 | 66 |
67 |
68 |
69 | Public Attributes | 70 | List of all members
71 |
72 |
audio_tools::SIDStreamConfig Class Reference
73 |
74 |
75 |
76 | Inheritance diagram for audio_tools::SIDStreamConfig:
77 |
78 |
79 | 80 |
81 | 82 | 84 | 86 | 87 |

83 | Public Attributes

85 | int sid_model = 6581
 
88 |
The documentation for this class was generated from the following file: 91 |
92 | 93 | 96 | 97 | 98 | -------------------------------------------------------------------------------- /docs/html/classaudio__tools_1_1SIDStreamConfig.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1SIDStreamConfig.png -------------------------------------------------------------------------------- /docs/html/classaudio__tools_1_1SizeSource-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | SID Player: Member List 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 27 | 28 | 29 |
24 |
SID Player 25 |
26 |
30 |
31 | 32 | 33 | 38 | 39 | 40 | 47 | 48 | 49 |
53 |
54 | 55 | 56 |
57 | 60 |
61 | 62 | 66 |
67 |
68 |
69 |
audio_tools::SizeSource Member List
70 |
71 |
72 | 73 |

This is the complete list of members for audio_tools::SizeSource, including all inherited members.

74 | 75 | 76 |
size()=0 (defined in audio_tools::SizeSource)audio_tools::SizeSourcepure virtual
77 | 78 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /docs/html/classaudio__tools_1_1SizeSource.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1SizeSource.png -------------------------------------------------------------------------------- /docs/html/classaudio__tools_1_1SizeSourceFile-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | SID Player: Member List 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 27 | 28 | 29 |
24 |
SID Player 25 |
26 |
30 |
31 | 32 | 33 | 38 | 39 | 40 | 47 | 48 | 49 |
53 |
54 | 55 | 56 |
57 | 60 |
61 | 62 | 66 |
67 |
68 |
69 |
audio_tools::SizeSourceFile Member List
70 |
71 |
72 | 73 |

This is the complete list of members for audio_tools::SizeSourceFile, including all inherited members.

74 | 75 | 76 | 77 | 78 |
p_source (defined in audio_tools::SizeSourceFile)audio_tools::SizeSourceFileprotected
size() override (defined in audio_tools::SizeSourceFile)audio_tools::SizeSourceFileinlinevirtual
SizeSourceFile(AudioSource &source) (defined in audio_tools::SizeSourceFile)audio_tools::SizeSourceFileinline
79 | 80 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /docs/html/classaudio__tools_1_1SizeSourceFile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1SizeSourceFile.png -------------------------------------------------------------------------------- /docs/html/classaudio__tools_1_1_s_i_d_audio_source.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1_s_i_d_audio_source.png -------------------------------------------------------------------------------- /docs/html/classaudio__tools_1_1_s_i_d_player.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1_s_i_d_player.png -------------------------------------------------------------------------------- /docs/html/classaudio__tools_1_1_s_i_d_size_source-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | SID Player: Member List 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 27 | 28 | 29 |
24 |
SID Player 25 |
26 |
30 |
31 | 32 | 33 | 38 | 39 | 40 | 48 | 49 | 50 |
54 |
55 | 56 | 57 |
58 |
59 |
60 |
61 |
62 |
Loading...
63 |
Searching...
64 |
No Matches
65 |
66 |
67 |
68 |
69 | 70 | 74 |
75 |
76 |
audio_tools::SIDSizeSource Member List
77 |
78 |
79 | 80 |

This is the complete list of members for audio_tools::SIDSizeSource, including all inherited members.

81 | 82 | 83 | 84 | 85 |
p_source (defined in audio_tools::SIDSizeSource)audio_tools::SIDSizeSourceprotected
SIDSizeSource(SIDAudioSource &source) (defined in audio_tools::SIDSizeSource)audio_tools::SIDSizeSourceinline
size() (defined in audio_tools::SIDSizeSource)audio_tools::SIDSizeSourceinlinevirtual
86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /docs/html/classaudio__tools_1_1_s_i_d_size_source.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1_s_i_d_size_source.png -------------------------------------------------------------------------------- /docs/html/classaudio__tools_1_1_s_i_d_stream.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1_s_i_d_stream.png -------------------------------------------------------------------------------- /docs/html/classaudio__tools_1_1_s_i_d_stream_config-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | SID Player: Member List 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 27 | 28 | 29 |
24 |
SID Player 25 |
26 |
30 |
31 | 32 | 33 | 38 | 39 | 40 | 48 | 49 | 50 |
54 |
55 | 56 | 57 |
58 |
59 |
60 |
61 |
62 |
Loading...
63 |
Searching...
64 |
No Matches
65 |
66 |
67 |
68 |
69 | 70 | 74 |
75 |
76 |
audio_tools::SIDStreamConfig Member List
77 |
78 |
79 | 80 |

This is the complete list of members for audio_tools::SIDStreamConfig, including all inherited members.

81 | 82 | 83 | 84 |
sid_model (defined in audio_tools::SIDStreamConfig)audio_tools::SIDStreamConfig
SIDStreamConfig() (defined in audio_tools::SIDStreamConfig)audio_tools::SIDStreamConfiginline
85 | 86 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /docs/html/classaudio__tools_1_1_s_i_d_stream_config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1_s_i_d_stream_config.png -------------------------------------------------------------------------------- /docs/html/classaudio__tools_1_1_size_source-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | SID Player: Member List 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 27 | 28 | 29 |
24 |
SID Player 25 |
26 |
30 |
31 | 32 | 33 | 38 | 39 | 40 | 48 | 49 | 50 |
54 |
55 | 56 | 57 |
58 |
59 |
60 |
61 |
62 |
Loading...
63 |
Searching...
64 |
No Matches
65 |
66 |
67 |
68 |
69 | 70 | 74 |
75 |
76 |
audio_tools::SizeSource Member List
77 |
78 |
79 | 80 |

This is the complete list of members for audio_tools::SizeSource, including all inherited members.

81 | 82 | 83 |
size()=0 (defined in audio_tools::SizeSource)audio_tools::SizeSourcepure virtual
84 | 85 | 88 | 89 | 90 | -------------------------------------------------------------------------------- /docs/html/classaudio__tools_1_1_size_source.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1_size_source.png -------------------------------------------------------------------------------- /docs/html/classaudio__tools_1_1_size_source_file-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | SID Player: Member List 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 27 | 28 | 29 |
24 |
SID Player 25 |
26 |
30 |
31 | 32 | 33 | 38 | 39 | 40 | 48 | 49 | 50 |
54 |
55 | 56 | 57 |
58 |
59 |
60 |
61 |
62 |
Loading...
63 |
Searching...
64 |
No Matches
65 |
66 |
67 |
68 |
69 | 70 | 74 |
75 |
76 |
audio_tools::SizeSourceFile Member List
77 |
78 |
79 | 80 |

This is the complete list of members for audio_tools::SizeSourceFile, including all inherited members.

81 | 82 | 83 | 84 | 85 |
p_source (defined in audio_tools::SizeSourceFile)audio_tools::SizeSourceFileprotected
size() override (defined in audio_tools::SizeSourceFile)audio_tools::SizeSourceFileinlinevirtual
SizeSourceFile(AudioSource &source) (defined in audio_tools::SizeSourceFile)audio_tools::SizeSourceFileinline
86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /docs/html/classaudio__tools_1_1_size_source_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/classaudio__tools_1_1_size_source_file.png -------------------------------------------------------------------------------- /docs/html/classes.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | SID Player: Class Index 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 27 | 28 | 29 |
24 |
SID Player 25 |
26 |
30 |
31 | 32 | 33 | 38 | 39 | 40 | 47 | 48 |
49 | 50 |
54 |
55 | 56 | 57 |
58 | 61 |
62 | 63 |
64 |
65 |
Class Index
66 |
67 |
68 |
S
69 |
70 |
71 |
S
72 |
SIDAudioSource (audio_tools)
SIDMetadata (audio_tools)
SIDPlayer (audio_tools)
SIDSizeSource (audio_tools)
SIDStream (audio_tools)
SIDStreamConfig (audio_tools)
SidTitle (audio_tools)
SizeSource (audio_tools)
73 |
74 |
75 | 76 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /docs/html/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/closed.png -------------------------------------------------------------------------------- /docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | SID Player: src Directory Reference 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 27 | 28 | 29 |
24 |
SID Player 25 |
26 |
30 |
31 | 32 | 33 | 38 | 39 | 40 | 47 | 48 | 49 |
53 |
54 | 55 | 56 |
57 | 60 |
61 | 62 | 66 |
67 |
68 |
69 |
src Directory Reference
70 |
71 |
72 |
73 | 74 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /docs/html/doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/doc.png -------------------------------------------------------------------------------- /docs/html/docd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/docd.png -------------------------------------------------------------------------------- /docs/html/dynsections.js: -------------------------------------------------------------------------------- 1 | /* 2 | @licstart The following is the entire license notice for the JavaScript code in this file. 3 | 4 | The MIT License (MIT) 5 | 6 | Copyright (C) 1997-2020 by Dimitri van Heesch 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software 9 | and associated documentation files (the "Software"), to deal in the Software without restriction, 10 | including without limitation the rights to use, copy, modify, merge, publish, distribute, 11 | sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in all copies or 15 | substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING 18 | BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 20 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | 23 | @licend The above is the entire license notice for the JavaScript code in this file 24 | */ 25 | function toggleVisibility(linkObj) 26 | { 27 | var base = $(linkObj).attr('id'); 28 | var summary = $('#'+base+'-summary'); 29 | var content = $('#'+base+'-content'); 30 | var trigger = $('#'+base+'-trigger'); 31 | var src=$(trigger).attr('src'); 32 | if (content.is(':visible')===true) { 33 | content.hide(); 34 | summary.show(); 35 | $(linkObj).addClass('closed').removeClass('opened'); 36 | $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); 37 | } else { 38 | content.show(); 39 | summary.hide(); 40 | $(linkObj).removeClass('closed').addClass('opened'); 41 | $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); 42 | } 43 | return false; 44 | } 45 | 46 | function updateStripes() 47 | { 48 | $('table.directory tr'). 49 | removeClass('even').filter(':visible:even').addClass('even'); 50 | } 51 | 52 | function toggleLevel(level) 53 | { 54 | $('table.directory tr').each(function() { 55 | var l = this.id.split('_').length-1; 56 | var i = $('#img'+this.id.substring(3)); 57 | var a = $('#arr'+this.id.substring(3)); 58 | if (l 2 | 3 | 4 | 5 | 6 | 7 | 8 | SID Player: File List 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 27 | 28 | 29 |
24 |
SID Player 25 |
26 |
30 |
31 | 32 | 33 | 38 | 39 | 40 | 47 | 48 |
49 | 50 |
54 |
55 | 56 | 57 |
58 | 61 |
62 | 63 |
64 |
65 |
File List
66 |
67 |
68 |
Here is a list of all documented files with brief descriptions:
69 |
[detail level 12]
70 | 71 | 72 | 73 | 74 | 75 |
  src
 SIDAudioSource.h
 SIDConfig.h
 SIDPlayer.h
 SIDStream.h
76 |
77 |
78 | 79 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /docs/html/folderclosed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/folderclosed.png -------------------------------------------------------------------------------- /docs/html/folderopen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/folderopen.png -------------------------------------------------------------------------------- /docs/html/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | SID Player: Main Page 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 27 | 28 | 29 |
24 |
SID Player 25 |
26 |
30 |
31 | 32 | 33 | 38 | 39 | 40 | 47 | 48 |
49 | 50 |
54 |
55 | 56 | 57 |
58 | 61 |
62 | 63 |
64 |
65 |
SID Player Documentation
66 |
67 |
68 |
69 | 70 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /docs/html/menu.js: -------------------------------------------------------------------------------- 1 | /* 2 | @licstart The following is the entire license notice for the JavaScript code in this file. 3 | 4 | The MIT License (MIT) 5 | 6 | Copyright (C) 1997-2020 by Dimitri van Heesch 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software 9 | and associated documentation files (the "Software"), to deal in the Software without restriction, 10 | including without limitation the rights to use, copy, modify, merge, publish, distribute, 11 | sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in all copies or 15 | substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING 18 | BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 20 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | 23 | @licend The above is the entire license notice for the JavaScript code in this file 24 | */ 25 | function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { 26 | function makeTree(data,relPath) { 27 | var result=''; 28 | if ('children' in data) { 29 | result+=''; 36 | } 37 | return result; 38 | } 39 | 40 | $('#main-nav').append(makeTree(menudata,relPath)); 41 | $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); 42 | if (searchEnabled) { 43 | if (serverSide) { 44 | $('#main-menu').append('
  • '); 45 | } else { 46 | $('#main-menu').append('
  • '); 47 | } 48 | } 49 | $('#main-menu').smartmenus(); 50 | } 51 | /* @license-end */ 52 | -------------------------------------------------------------------------------- /docs/html/menudata.js: -------------------------------------------------------------------------------- 1 | /* 2 | @licstart The following is the entire license notice for the JavaScript code in this file. 3 | 4 | The MIT License (MIT) 5 | 6 | Copyright (C) 1997-2020 by Dimitri van Heesch 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software 9 | and associated documentation files (the "Software"), to deal in the Software without restriction, 10 | including without limitation the rights to use, copy, modify, merge, publish, distribute, 11 | sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in all copies or 15 | substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING 18 | BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 20 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | 23 | @licend The above is the entire license notice for the JavaScript code in this file 24 | */ 25 | var menudata={children:[ 26 | {text:"Main Page",url:"index.html"}, 27 | {text:"Related Pages",url:"pages.html"}, 28 | {text:"Classes",url:"annotated.html",children:[ 29 | {text:"Class List",url:"annotated.html"}, 30 | {text:"Class Index",url:"classes.html"}, 31 | {text:"Class Hierarchy",url:"hierarchy.html"}, 32 | {text:"Class Members",url:"functions.html",children:[ 33 | {text:"All",url:"functions.html",children:[ 34 | {text:"b",url:"functions.html#index_b"}, 35 | {text:"c",url:"functions.html#index_c"}, 36 | {text:"d",url:"functions.html#index_d"}, 37 | {text:"e",url:"functions.html#index_e"}, 38 | {text:"g",url:"functions.html#index_g"}, 39 | {text:"i",url:"functions.html#index_i"}, 40 | {text:"n",url:"functions.html#index_n"}, 41 | {text:"o",url:"functions.html#index_o"}, 42 | {text:"p",url:"functions.html#index_p"}, 43 | {text:"r",url:"functions.html#index_r"}, 44 | {text:"s",url:"functions.html#index_s"}, 45 | {text:"v",url:"functions.html#index_v"}]}, 46 | {text:"Functions",url:"functions_func.html",children:[ 47 | {text:"b",url:"functions_func.html#index_b"}, 48 | {text:"c",url:"functions_func.html#index_c"}, 49 | {text:"d",url:"functions_func.html#index_d"}, 50 | {text:"e",url:"functions_func.html#index_e"}, 51 | {text:"g",url:"functions_func.html#index_g"}, 52 | {text:"i",url:"functions_func.html#index_i"}, 53 | {text:"n",url:"functions_func.html#index_n"}, 54 | {text:"o",url:"functions_func.html#index_o"}, 55 | {text:"p",url:"functions_func.html#index_p"}, 56 | {text:"r",url:"functions_func.html#index_r"}, 57 | {text:"s",url:"functions_func.html#index_s"}, 58 | {text:"v",url:"functions_func.html#index_v"}]}]}]}, 59 | {text:"Files",url:"files.html",children:[ 60 | {text:"File List",url:"files.html"}]}]} 61 | -------------------------------------------------------------------------------- /docs/html/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/nav_f.png -------------------------------------------------------------------------------- /docs/html/nav_fd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/nav_fd.png -------------------------------------------------------------------------------- /docs/html/nav_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/nav_g.png -------------------------------------------------------------------------------- /docs/html/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/nav_h.png -------------------------------------------------------------------------------- /docs/html/nav_hd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/nav_hd.png -------------------------------------------------------------------------------- /docs/html/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/open.png -------------------------------------------------------------------------------- /docs/html/pages.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | SID Player: Related Pages 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
    19 |
    20 | 21 | 22 | 23 | 27 | 28 | 29 |
    24 |
    SID Player 25 |
    26 |
    30 |
    31 | 32 | 33 | 38 | 39 | 40 | 47 | 48 |
    49 | 50 |
    54 |
    55 | 56 | 57 |
    58 | 61 |
    62 | 63 |
    64 |
    65 |
    Related Pages
    66 |
    67 |
    68 |
    Here is a list of all related documentation pages:
    69 | 70 | 71 |
     Playing SID Files
    72 |
    73 |
    74 | 75 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /docs/html/search/all_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/all_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['begin_0',['begin',['../classaudio__tools_1_1SIDAudioSource.html#ad904dc16f447e32fcd65b02e5101d147',1,'audio_tools::SIDAudioSource::begin()'],['../classaudio__tools_1_1SIDPlayer.html#ae6b1a190fcf58b281fcb793038ee8f5a',1,'audio_tools::SIDPlayer::begin()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/all_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/all_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['clear_1',['clear',['../classaudio__tools_1_1SIDAudioSource.html#a895b24d381645047eefc2f3b97897f98',1,'audio_tools::SIDAudioSource']]], 4 | ['copy_2',['copy',['../classaudio__tools_1_1SIDPlayer.html#a4ed914dd67bcb40e114024581113a773',1,'audio_tools::SIDPlayer']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/all_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/all_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['defaultconfig_3',['defaultConfig',['../classaudio__tools_1_1SIDStream.html#ae3351b892896758f884ef4e679eef79b',1,'audio_tools::SIDStream']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/all_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/all_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['end_4',['end',['../classaudio__tools_1_1SIDPlayer.html#a4948600ff0483a4ee97e93a93b48d809',1,'audio_tools::SIDPlayer::end()'],['../classaudio__tools_1_1SIDStream.html#a48475be554617c8e02d47a72fd76245b',1,'audio_tools::SIDStream::end()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/all_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/all_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['getmetadata_5',['getMetadata',['../classaudio__tools_1_1SIDStream.html#a325eef8096aa74c3bbc4189b96ad524b',1,'audio_tools::SIDStream']]], 4 | ['getstream_6',['getStream',['../classaudio__tools_1_1SIDPlayer.html#a3a1a357256b9270c023eb388093277c3',1,'audio_tools::SIDPlayer']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/all_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/all_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['isactive_7',['isActive',['../classaudio__tools_1_1SIDPlayer.html#afa89e5a99aabd206ba02d05a640e6e63',1,'audio_tools::SIDPlayer::isActive()'],['../classaudio__tools_1_1SIDStream.html#aa4bc95f1efd9cc2e747fd7177317e9c4',1,'audio_tools::SIDStream::isActive()']]], 4 | ['isplayingtimedout_8',['isPlayingTimedOut',['../classaudio__tools_1_1SIDPlayer.html#a228e56883939494c5fdb2d0047a11ed5',1,'audio_tools::SIDPlayer']]], 5 | ['issilenceoninactive_9',['isSilenceOnInactive',['../classaudio__tools_1_1SIDPlayer.html#a9ac87cf599494c30e0573047e2416708',1,'audio_tools::SIDPlayer']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/html/search/all_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/all_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['next_10',['next',['../classaudio__tools_1_1SIDPlayer.html#a7ac4ddef99047779a3edf2cf51c6bb90',1,'audio_tools::SIDPlayer']]], 4 | ['nextstream_11',['nextStream',['../classaudio__tools_1_1SIDAudioSource.html#a4a92f2abba7d44fc48396f2b1bdd197e',1,'audio_tools::SIDAudioSource']]], 5 | ['nexttune_12',['nextTune',['../classaudio__tools_1_1SIDPlayer.html#afec45c7943c768e9a5c1bf5d87bd9b30',1,'audio_tools::SIDPlayer']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/html/search/all_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/all_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['operator_20bool_13',['operator bool',['../classaudio__tools_1_1SIDPlayer.html#a00e2ed01d83a3b356e3f3666134bab5a',1,'audio_tools::SIDPlayer']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/all_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/all_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['play_14',['play',['../classaudio__tools_1_1SIDPlayer.html#a78714f60e4098e46b04e947cc21a27b3',1,'audio_tools::SIDPlayer']]], 4 | ['playing_20sid_20files_15',['Playing SID Files',['../md_README.html',1,'']]], 5 | ['previous_16',['previous',['../classaudio__tools_1_1SIDPlayer.html#a8cc2b5e47b8c860d19f99001309d5565',1,'audio_tools::SIDPlayer']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/html/search/all_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/all_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['readbytes_17',['readBytes',['../classaudio__tools_1_1SIDStream.html#a28a22bf3ba1cdeedec2654303130f625',1,'audio_tools::SIDStream']]], 4 | ['readsample_18',['readSample',['../classaudio__tools_1_1SIDStream.html#aa6c130987e18279c107d0349469f7aa0',1,'audio_tools::SIDStream']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/all_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/all_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['selectstream_19',['selectStream',['../classaudio__tools_1_1SIDAudioSource.html#a433f8c90842dbc18140f64a86e15eac3',1,'audio_tools::SIDAudioSource::selectStream(int index)'],['../classaudio__tools_1_1SIDAudioSource.html#ad563fe8b0b233847e4565803235f71e8',1,'audio_tools::SIDAudioSource::selectStream(const char *path)']]], 4 | ['setactive_20',['setActive',['../classaudio__tools_1_1SIDPlayer.html#a603e30292b780485abbc8e27913fe980',1,'audio_tools::SIDPlayer']]], 5 | ['setaudioinfo_21',['setAudioInfo',['../classaudio__tools_1_1SIDPlayer.html#af42f1921cc9fb74a732ed6a4a597592c',1,'audio_tools::SIDPlayer']]], 6 | ['setindex_22',['setIndex',['../classaudio__tools_1_1SIDPlayer.html#aaa51430de1b6e980e0f47f78f01c0b95',1,'audio_tools::SIDPlayer']]], 7 | ['setisplayingtimeout_23',['setIsPlayingTimeout',['../classaudio__tools_1_1SIDPlayer.html#ad28da4e93c8f8e2993ed763040f4fad9',1,'audio_tools::SIDPlayer']]], 8 | ['setpath_24',['setPath',['../classaudio__tools_1_1SIDPlayer.html#ae1366b2f33a4660e0bc9a148440df3a8',1,'audio_tools::SIDPlayer']]], 9 | ['setsid_25',['setSID',['../classaudio__tools_1_1SIDStream.html#a20bc3207c71009ebead019f8bdd3b731',1,'audio_tools::SIDStream']]], 10 | ['setsidasinput_26',['setSIDAsInput',['../classaudio__tools_1_1SIDPlayer.html#a0d5e03ff4c6445aab5e290764f9e0c13',1,'audio_tools::SIDPlayer']]], 11 | ['setsilenceoninactive_27',['setSilenceOnInactive',['../classaudio__tools_1_1SIDPlayer.html#aadfc32f88b3ff0f19dd6923cb9c09bb3',1,'audio_tools::SIDPlayer']]], 12 | ['settimeout_28',['setTimeout',['../classaudio__tools_1_1SIDPlayer.html#a9fb220a10ada97b4f4fd228558242569',1,'audio_tools::SIDPlayer']]], 13 | ['setvolume_29',['setVolume',['../classaudio__tools_1_1SIDPlayer.html#a038a0092297dbb9cb68f225faca65a33',1,'audio_tools::SIDPlayer']]], 14 | ['sidaudiosource_30',['SIDAudioSource',['../classaudio__tools_1_1SIDAudioSource.html',1,'audio_tools']]], 15 | ['sidmetadata_31',['SIDMetadata',['../structaudio__tools_1_1SIDMetadata.html',1,'audio_tools']]], 16 | ['sidplayer_32',['SIDPlayer',['../classaudio__tools_1_1SIDPlayer.html',1,'audio_tools']]], 17 | ['sidsizesource_33',['SIDSizeSource',['../classaudio__tools_1_1SIDSizeSource.html',1,'audio_tools']]], 18 | ['sidstream_34',['SIDStream',['../classaudio__tools_1_1SIDStream.html',1,'audio_tools::SIDStream'],['../classaudio__tools_1_1SIDStream.html#ab59373e8e3bdfbde2d85eb67ba317688',1,'audio_tools::SIDStream::SIDStream()=default'],['../classaudio__tools_1_1SIDStream.html#ac6d77b143462480994f74939b6b755c6',1,'audio_tools::SIDStream::SIDStream(const unsigned char *tunedata, int tunedatalen, int subtune=0)']]], 19 | ['sidstreamconfig_35',['SIDStreamConfig',['../structaudio__tools_1_1SIDStreamConfig.html',1,'audio_tools']]], 20 | ['sidtitle_36',['SidTitle',['../structaudio__tools_1_1SidTitle.html',1,'audio_tools']]], 21 | ['size_37',['size',['../classaudio__tools_1_1SIDAudioSource.html#ad960e0dd3b54c3da4c8f297c317a7daf',1,'audio_tools::SIDAudioSource']]], 22 | ['sizesource_38',['SizeSource',['../classaudio__tools_1_1SizeSource.html',1,'audio_tools']]], 23 | ['stop_39',['stop',['../classaudio__tools_1_1SIDPlayer.html#a65fc1edc40108a732185333499fc94a1',1,'audio_tools::SIDPlayer']]] 24 | ]; 25 | -------------------------------------------------------------------------------- /docs/html/search/all_b.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/all_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['volume_40',['volume',['../classaudio__tools_1_1SIDPlayer.html#a175d54866865fcd720b26b11432a8cdf',1,'audio_tools::SIDPlayer']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/all_c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/all_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['volume_0',['volume',['../classaudio__tools_1_1_s_i_d_player.html#a175d54866865fcd720b26b11432a8cdf',1,'audio_tools::SIDPlayer']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/classes_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/classes_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['sidaudiosource_41',['SIDAudioSource',['../classaudio__tools_1_1SIDAudioSource.html',1,'audio_tools']]], 4 | ['sidmetadata_42',['SIDMetadata',['../structaudio__tools_1_1SIDMetadata.html',1,'audio_tools']]], 5 | ['sidplayer_43',['SIDPlayer',['../classaudio__tools_1_1SIDPlayer.html',1,'audio_tools']]], 6 | ['sidsizesource_44',['SIDSizeSource',['../classaudio__tools_1_1SIDSizeSource.html',1,'audio_tools']]], 7 | ['sidstream_45',['SIDStream',['../classaudio__tools_1_1SIDStream.html',1,'audio_tools']]], 8 | ['sidstreamconfig_46',['SIDStreamConfig',['../structaudio__tools_1_1SIDStreamConfig.html',1,'audio_tools']]], 9 | ['sidtitle_47',['SidTitle',['../structaudio__tools_1_1SidTitle.html',1,'audio_tools']]], 10 | ['sizesource_48',['SizeSource',['../classaudio__tools_1_1SizeSource.html',1,'audio_tools']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /docs/html/search/close.svg: -------------------------------------------------------------------------------- 1 | 2 | 13 | 15 | 16 | 18 | image/svg+xml 19 | 21 | 22 | 23 | 24 | 25 | 27 | 31 | 32 | -------------------------------------------------------------------------------- /docs/html/search/files_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['sidplayer_2eh_0',['SIDPlayer.h',['../_s_i_d_player_8h.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/functions_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/functions_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['begin_49',['begin',['../classaudio__tools_1_1SIDAudioSource.html#ad904dc16f447e32fcd65b02e5101d147',1,'audio_tools::SIDAudioSource::begin()'],['../classaudio__tools_1_1SIDPlayer.html#ae6b1a190fcf58b281fcb793038ee8f5a',1,'audio_tools::SIDPlayer::begin()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/functions_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/functions_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['clear_50',['clear',['../classaudio__tools_1_1SIDAudioSource.html#a895b24d381645047eefc2f3b97897f98',1,'audio_tools::SIDAudioSource']]], 4 | ['copy_51',['copy',['../classaudio__tools_1_1SIDPlayer.html#a4ed914dd67bcb40e114024581113a773',1,'audio_tools::SIDPlayer']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/functions_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/functions_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['defaultconfig_52',['defaultConfig',['../classaudio__tools_1_1SIDStream.html#ae3351b892896758f884ef4e679eef79b',1,'audio_tools::SIDStream']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/functions_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/functions_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['end_53',['end',['../classaudio__tools_1_1SIDPlayer.html#a4948600ff0483a4ee97e93a93b48d809',1,'audio_tools::SIDPlayer::end()'],['../classaudio__tools_1_1SIDStream.html#a48475be554617c8e02d47a72fd76245b',1,'audio_tools::SIDStream::end()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/functions_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/functions_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['getmetadata_54',['getMetadata',['../classaudio__tools_1_1SIDStream.html#a325eef8096aa74c3bbc4189b96ad524b',1,'audio_tools::SIDStream']]], 4 | ['getstream_55',['getStream',['../classaudio__tools_1_1SIDPlayer.html#a3a1a357256b9270c023eb388093277c3',1,'audio_tools::SIDPlayer']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/functions_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/functions_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['isactive_56',['isActive',['../classaudio__tools_1_1SIDPlayer.html#afa89e5a99aabd206ba02d05a640e6e63',1,'audio_tools::SIDPlayer::isActive()'],['../classaudio__tools_1_1SIDStream.html#aa4bc95f1efd9cc2e747fd7177317e9c4',1,'audio_tools::SIDStream::isActive()']]], 4 | ['isplayingtimedout_57',['isPlayingTimedOut',['../classaudio__tools_1_1SIDPlayer.html#a228e56883939494c5fdb2d0047a11ed5',1,'audio_tools::SIDPlayer']]], 5 | ['issilenceoninactive_58',['isSilenceOnInactive',['../classaudio__tools_1_1SIDPlayer.html#a9ac87cf599494c30e0573047e2416708',1,'audio_tools::SIDPlayer']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/html/search/functions_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/functions_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['next_59',['next',['../classaudio__tools_1_1SIDPlayer.html#a7ac4ddef99047779a3edf2cf51c6bb90',1,'audio_tools::SIDPlayer']]], 4 | ['nextstream_60',['nextStream',['../classaudio__tools_1_1SIDAudioSource.html#a4a92f2abba7d44fc48396f2b1bdd197e',1,'audio_tools::SIDAudioSource']]], 5 | ['nexttune_61',['nextTune',['../classaudio__tools_1_1SIDPlayer.html#afec45c7943c768e9a5c1bf5d87bd9b30',1,'audio_tools::SIDPlayer']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/html/search/functions_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/functions_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['operator_20bool_62',['operator bool',['../classaudio__tools_1_1SIDPlayer.html#a00e2ed01d83a3b356e3f3666134bab5a',1,'audio_tools::SIDPlayer']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/functions_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/functions_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['play_63',['play',['../classaudio__tools_1_1SIDPlayer.html#a78714f60e4098e46b04e947cc21a27b3',1,'audio_tools::SIDPlayer']]], 4 | ['previous_64',['previous',['../classaudio__tools_1_1SIDPlayer.html#a8cc2b5e47b8c860d19f99001309d5565',1,'audio_tools::SIDPlayer']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/functions_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/functions_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['readbytes_65',['readBytes',['../classaudio__tools_1_1SIDStream.html#a28a22bf3ba1cdeedec2654303130f625',1,'audio_tools::SIDStream']]], 4 | ['readsample_66',['readSample',['../classaudio__tools_1_1SIDStream.html#aa6c130987e18279c107d0349469f7aa0',1,'audio_tools::SIDStream']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/functions_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/functions_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['selectstream_67',['selectStream',['../classaudio__tools_1_1SIDAudioSource.html#a433f8c90842dbc18140f64a86e15eac3',1,'audio_tools::SIDAudioSource::selectStream(int index)'],['../classaudio__tools_1_1SIDAudioSource.html#ad563fe8b0b233847e4565803235f71e8',1,'audio_tools::SIDAudioSource::selectStream(const char *path)']]], 4 | ['setactive_68',['setActive',['../classaudio__tools_1_1SIDPlayer.html#a603e30292b780485abbc8e27913fe980',1,'audio_tools::SIDPlayer']]], 5 | ['setaudioinfo_69',['setAudioInfo',['../classaudio__tools_1_1SIDPlayer.html#af42f1921cc9fb74a732ed6a4a597592c',1,'audio_tools::SIDPlayer']]], 6 | ['setindex_70',['setIndex',['../classaudio__tools_1_1SIDPlayer.html#aaa51430de1b6e980e0f47f78f01c0b95',1,'audio_tools::SIDPlayer']]], 7 | ['setisplayingtimeout_71',['setIsPlayingTimeout',['../classaudio__tools_1_1SIDPlayer.html#ad28da4e93c8f8e2993ed763040f4fad9',1,'audio_tools::SIDPlayer']]], 8 | ['setpath_72',['setPath',['../classaudio__tools_1_1SIDPlayer.html#ae1366b2f33a4660e0bc9a148440df3a8',1,'audio_tools::SIDPlayer']]], 9 | ['setsid_73',['setSID',['../classaudio__tools_1_1SIDStream.html#a20bc3207c71009ebead019f8bdd3b731',1,'audio_tools::SIDStream']]], 10 | ['setsidasinput_74',['setSIDAsInput',['../classaudio__tools_1_1SIDPlayer.html#a0d5e03ff4c6445aab5e290764f9e0c13',1,'audio_tools::SIDPlayer']]], 11 | ['setsilenceoninactive_75',['setSilenceOnInactive',['../classaudio__tools_1_1SIDPlayer.html#aadfc32f88b3ff0f19dd6923cb9c09bb3',1,'audio_tools::SIDPlayer']]], 12 | ['settimeout_76',['setTimeout',['../classaudio__tools_1_1SIDPlayer.html#a9fb220a10ada97b4f4fd228558242569',1,'audio_tools::SIDPlayer']]], 13 | ['setvolume_77',['setVolume',['../classaudio__tools_1_1SIDPlayer.html#a038a0092297dbb9cb68f225faca65a33',1,'audio_tools::SIDPlayer']]], 14 | ['sidstream_78',['SIDStream',['../classaudio__tools_1_1SIDStream.html#ab59373e8e3bdfbde2d85eb67ba317688',1,'audio_tools::SIDStream::SIDStream()=default'],['../classaudio__tools_1_1SIDStream.html#ac6d77b143462480994f74939b6b755c6',1,'audio_tools::SIDStream::SIDStream(const unsigned char *tunedata, int tunedatalen, int subtune=0)']]], 15 | ['size_79',['size',['../classaudio__tools_1_1SIDAudioSource.html#ad960e0dd3b54c3da4c8f297c317a7daf',1,'audio_tools::SIDAudioSource']]], 16 | ['stop_80',['stop',['../classaudio__tools_1_1SIDPlayer.html#a65fc1edc40108a732185333499fc94a1',1,'audio_tools::SIDPlayer']]] 17 | ]; 18 | -------------------------------------------------------------------------------- /docs/html/search/functions_b.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/functions_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['volume_81',['volume',['../classaudio__tools_1_1SIDPlayer.html#a175d54866865fcd720b26b11432a8cdf',1,'audio_tools::SIDPlayer']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/functions_c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/functions_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['volume_0',['volume',['../classaudio__tools_1_1_s_i_d_player.html#a175d54866865fcd720b26b11432a8cdf',1,'audio_tools::SIDPlayer']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/mag.svg: -------------------------------------------------------------------------------- 1 | 2 | 13 | 15 | 16 | 18 | image/svg+xml 19 | 21 | 22 | 23 | 24 | 25 | 27 | 33 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/mag_d.svg: -------------------------------------------------------------------------------- 1 | 2 | 13 | 15 | 16 | 18 | image/svg+xml 19 | 21 | 22 | 23 | 24 | 25 | 27 | 33 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/mag_sel.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 22 | 24 | image/svg+xml 25 | 27 | 28 | 29 | 30 | 31 | 33 | 57 | 63 | 69 | 74 | 75 | -------------------------------------------------------------------------------- /docs/html/search/mag_seld.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 22 | 24 | image/svg+xml 25 | 27 | 28 | 29 | 30 | 31 | 33 | 57 | 63 | 69 | 74 | 75 | -------------------------------------------------------------------------------- /docs/html/search/nomatches.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
    10 |
    No Matches
    11 |
    12 | 13 | 14 | -------------------------------------------------------------------------------- /docs/html/search/pages_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/html/search/pages_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['playing_20sid_20files_82',['Playing SID Files',['../md_README.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/search_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/search/search_l.png -------------------------------------------------------------------------------- /docs/html/search/search_m.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/search/search_m.png -------------------------------------------------------------------------------- /docs/html/search/search_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/search/search_r.png -------------------------------------------------------------------------------- /docs/html/search/searchdata.js: -------------------------------------------------------------------------------- 1 | var indexSectionsWithContent = 2 | { 3 | 0: "bcdeginoprsv", 4 | 1: "s", 5 | 2: "bcdeginoprsv", 6 | 3: "p" 7 | }; 8 | 9 | var indexSectionNames = 10 | { 11 | 0: "all", 12 | 1: "classes", 13 | 2: "functions", 14 | 3: "pages" 15 | }; 16 | 17 | var indexSectionLabels = 18 | { 19 | 0: "All", 20 | 1: "Classes", 21 | 2: "Functions", 22 | 3: "Pages" 23 | }; 24 | 25 | -------------------------------------------------------------------------------- /docs/html/splitbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/splitbar.png -------------------------------------------------------------------------------- /docs/html/splitbard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/splitbard.png -------------------------------------------------------------------------------- /docs/html/structaudio__tools_1_1SIDMetadata-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | SID Player: Member List 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
    19 |
    20 | 21 | 22 | 23 | 27 | 28 | 29 |
    24 |
    SID Player 25 |
    26 |
    30 |
    31 | 32 | 33 | 38 | 39 | 40 | 47 | 48 | 49 |
    53 |
    54 | 55 | 56 |
    57 | 60 |
    61 | 62 | 66 |
    67 |
    68 |
    69 |
    audio_tools::SIDMetadata Member List
    70 |
    71 |
    72 | 73 |

    This is the complete list of members for audio_tools::SIDMetadata, including all inherited members.

    74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 |
    author (defined in audio_tools::SIDMetadata)audio_tools::SIDMetadata
    default_tune (defined in audio_tools::SIDMetadata)audio_tools::SIDMetadata
    logInfo() (defined in audio_tools::SIDMetadata)audio_tools::SIDMetadatainline
    sid_info (defined in audio_tools::SIDMetadata)audio_tools::SIDMetadata
    title (defined in audio_tools::SIDMetadata)audio_tools::SIDMetadata
    total_tunes (defined in audio_tools::SIDMetadata)audio_tools::SIDMetadata
    82 | 83 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /docs/html/structaudio__tools_1_1SIDStreamConfig-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | SID Player: Member List 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
    19 |
    20 | 21 | 22 | 23 | 27 | 28 | 29 |
    24 |
    SID Player 25 |
    26 |
    30 |
    31 | 32 | 33 | 38 | 39 | 40 | 47 | 48 | 49 |
    53 |
    54 | 55 | 56 |
    57 | 60 |
    61 | 62 | 66 |
    67 |
    68 |
    69 |
    audio_tools::SIDStreamConfig Member List
    70 |
    71 |
    72 | 73 |

    This is the complete list of members for audio_tools::SIDStreamConfig, including all inherited members.

    74 | 75 | 76 | 77 | 78 | 79 | 80 |
    sid_model (defined in audio_tools::SIDStreamConfig)audio_tools::SIDStreamConfig
    SIDStreamConfig() (defined in audio_tools::SIDStreamConfig)audio_tools::SIDStreamConfiginline
    subtune (defined in audio_tools::SIDStreamConfig)audio_tools::SIDStreamConfig
    tune_data (defined in audio_tools::SIDStreamConfig)audio_tools::SIDStreamConfig
    tune_data_length (defined in audio_tools::SIDStreamConfig)audio_tools::SIDStreamConfig
    81 | 82 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /docs/html/structaudio__tools_1_1SIDStreamConfig.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/structaudio__tools_1_1SIDStreamConfig.png -------------------------------------------------------------------------------- /docs/html/structaudio__tools_1_1SidTitle-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | SID Player: Member List 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
    19 |
    20 | 21 | 22 | 23 | 27 | 28 | 29 |
    24 |
    SID Player 25 |
    26 |
    30 |
    31 | 32 | 33 | 38 | 39 | 40 | 47 | 48 | 49 |
    53 |
    54 | 55 | 56 |
    57 | 60 |
    61 | 62 | 66 |
    67 |
    68 |
    69 |
    audio_tools::SidTitle Member List
    70 |
    71 |
    72 | 73 |

    This is the complete list of members for audio_tools::SidTitle, including all inherited members.

    74 | 75 | 76 | 77 | 78 |
    data (defined in audio_tools::SidTitle)audio_tools::SidTitle
    no (defined in audio_tools::SidTitle)audio_tools::SidTitle
    size (defined in audio_tools::SidTitle)audio_tools::SidTitle
    79 | 80 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /docs/html/structaudio__tools_1_1_s_i_d_stream_config-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | SID Player: Member List 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
    19 |
    20 | 21 | 22 | 23 | 27 | 28 | 29 |
    24 |
    SID Player 25 |
    26 |
    30 |
    31 | 32 | 33 | 38 | 39 | 40 | 48 | 49 | 50 |
    54 |
    55 | 56 | 57 |
    58 |
    59 |
    60 |
    61 |
    62 |
    Loading...
    63 |
    Searching...
    64 |
    No Matches
    65 |
    66 |
    67 |
    68 |
    69 | 70 | 74 |
    75 |
    76 |
    audio_tools::SIDStreamConfig Member List
    77 |
    78 |
    79 | 80 |

    This is the complete list of members for audio_tools::SIDStreamConfig, including all inherited members.

    81 | 82 | 83 | 84 | 85 | 86 | 87 |
    sid_model (defined in audio_tools::SIDStreamConfig)audio_tools::SIDStreamConfig
    SIDStreamConfig() (defined in audio_tools::SIDStreamConfig)audio_tools::SIDStreamConfiginline
    subtune (defined in audio_tools::SIDStreamConfig)audio_tools::SIDStreamConfig
    tune_data (defined in audio_tools::SIDStreamConfig)audio_tools::SIDStreamConfig
    tune_data_length (defined in audio_tools::SIDStreamConfig)audio_tools::SIDStreamConfig
    88 | 89 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /docs/html/structaudio__tools_1_1_s_i_d_stream_config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/structaudio__tools_1_1_s_i_d_stream_config.png -------------------------------------------------------------------------------- /docs/html/structaudio__tools_1_1_sid_title-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | SID Player: Member List 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
    19 |
    20 | 21 | 22 | 23 | 27 | 28 | 29 |
    24 |
    SID Player 25 |
    26 |
    30 |
    31 | 32 | 33 | 38 | 39 | 40 | 48 | 49 | 50 |
    54 |
    55 | 56 | 57 |
    58 |
    59 |
    60 |
    61 |
    62 |
    Loading...
    63 |
    Searching...
    64 |
    No Matches
    65 |
    66 |
    67 |
    68 |
    69 | 70 | 74 |
    75 |
    76 |
    audio_tools::SidTitle Member List
    77 |
    78 |
    79 | 80 |

    This is the complete list of members for audio_tools::SidTitle, including all inherited members.

    81 | 82 | 83 | 84 | 85 |
    data (defined in audio_tools::SidTitle)audio_tools::SidTitle
    no (defined in audio_tools::SidTitle)audio_tools::SidTitle
    size (defined in audio_tools::SidTitle)audio_tools::SidTitle
    86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /docs/html/sync_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/sync_off.png -------------------------------------------------------------------------------- /docs/html/sync_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/sync_on.png -------------------------------------------------------------------------------- /docs/html/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/tab_a.png -------------------------------------------------------------------------------- /docs/html/tab_ad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/tab_ad.png -------------------------------------------------------------------------------- /docs/html/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/tab_b.png -------------------------------------------------------------------------------- /docs/html/tab_bd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/tab_bd.png -------------------------------------------------------------------------------- /docs/html/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/tab_h.png -------------------------------------------------------------------------------- /docs/html/tab_hd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/tab_hd.png -------------------------------------------------------------------------------- /docs/html/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/tab_s.png -------------------------------------------------------------------------------- /docs/html/tab_sd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pschatzmann/SIDPlayer/8b8da363d57789c9abe7c83719fea1ed3f08cd68/docs/html/tab_sd.png -------------------------------------------------------------------------------- /examples/desktop-player/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.20) 2 | 3 | # set the project name 4 | project(desktop-player) 5 | set (CMAKE_CXX_STANDARD 11) 6 | set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0") 7 | set (CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG}") 8 | 9 | include(FetchContent) 10 | option(BUILD_SHARED_LIBS "Build using shared libraries" OFF) 11 | 12 | 13 | # Build with sidplayer 14 | if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) 15 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../.. ${CMAKE_CURRENT_BINARY_DIR}/sidplayer ) 16 | endif() 17 | 18 | # build sketch as executable 19 | set_source_files_properties(desktop-player.ino PROPERTIES LANGUAGE CXX) 20 | add_executable (desktop-player desktop-player.ino) 21 | 22 | # set preprocessor defines 23 | target_compile_definitions(desktop-player PUBLIC -DEXIT_ON_STOP -DIS_DESKTOP_WITH_TIME_ONLY) 24 | 25 | # specify libraries 26 | target_link_libraries(desktop-player sidplayer arduino-audio-tools) 27 | -------------------------------------------------------------------------------- /examples/desktop-player/desktop-player.ino: -------------------------------------------------------------------------------- 1 | /** 2 | * @file player-desktop.ino 3 | * @author Phil Schatzmann 4 | * @brief Sends the PCM stream of the the included demo SID files to the the standard output. 5 | * 6 | * You can compile and run this sketch on the desktop e.g. with desktop-player | aplay on linux 7 | * To build it: 8 | * go to this directory 9 | * mkdir build 10 | * cd build 11 | * cmake .. 12 | * make 13 | * and execute it with ./desktop-player 14 | * 15 | * @version 0.1 16 | * @date 2023-03-02 17 | * 18 | * @copyright Copyright (c) 2023 19 | * 20 | */ 21 | #include "SIDPlayer.h" 22 | #include "AudioLibs/StdioStream.h" 23 | 24 | SIDAudioSource source(DemoSongs, DemoSongsCount); 25 | SIDSizeSource sidSize(source); 26 | StdioStream out; // or AnalogAudioStream or PWMStream etc 27 | WAVEncoder enc; 28 | EncodedAudioStream wav(&out, &enc); // final solution 29 | //CsvStream csv(Serial); // best for checking the audio generation 30 | //NullStream none; // best for debuging 31 | SIDPlayer sid(source, wav, sidSize); // change relevant output 32 | 33 | void setup() { 34 | AudioLogger::instance().begin(Serial, AudioLogger::Warning); 35 | 36 | auto cfg = out.defaultConfig(); 37 | cfg.sample_rate = 8000; 38 | cfg.channels = 1; 39 | cfg.bits_per_sample = 16; 40 | 41 | // actually only the output that is used is relevant 42 | out.begin(cfg); 43 | wav.begin(cfg); 44 | // csv.begin(cfg); 45 | // none.begin(cfg); 46 | 47 | // move to next song after playing for 5 minuts 48 | sid.setTimeout(60*1); 49 | sid.begin(); 50 | 51 | } 52 | 53 | void loop() { 54 | sid.copy(); 55 | } 56 | 57 | int main(){ 58 | setup(); 59 | while(true)loop(); 60 | } 61 | 62 | -------------------------------------------------------------------------------- /examples/desktop-stream/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.20) 2 | 3 | # set the project name 4 | project(desktop-stream) 5 | set (CMAKE_CXX_STANDARD 11) 6 | set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0") 7 | set (CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG}") 8 | 9 | include(FetchContent) 10 | option(BUILD_SHARED_LIBS "Build using shared libraries" OFF) 11 | 12 | 13 | # Build with sidplayer 14 | if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) 15 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../.. ${CMAKE_CURRENT_BINARY_DIR}/sidplayer ) 16 | endif() 17 | 18 | # build sketch as executable 19 | set_source_files_properties(desktop-stream.ino PROPERTIES LANGUAGE CXX) 20 | add_executable (desktop-stream desktop-stream.ino) 21 | 22 | # set preprocessor defines 23 | target_compile_definitions(desktop-stream PUBLIC -DEXIT_ON_STOP -DIS_DESKTOP_WITH_TIME_ONLY) 24 | 25 | # specify libraries 26 | target_link_libraries(desktop-stream sidplayer arduino-audio-tools) 27 | -------------------------------------------------------------------------------- /examples/desktop-stream/desktop-stream.ino: -------------------------------------------------------------------------------- 1 | /** 2 | * @file stream.ino 3 | * @author Phil Schatzmann 4 | * @brief Copies the Audio from Sid to an output device 5 | * 6 | * You can compile and run this sketch on the desktop e.g. with desktop-stream | aplay on linux 7 | * To build it: 8 | * go to this directory 9 | * mkdir build 10 | * cd build 11 | * cmake .. 12 | * make 13 | * and execute it with ./desktop-stream 14 | 15 | * @version 0.1 16 | * @date 2023-03-03 17 | * 18 | * @copyright Copyright (c) 2023 19 | * 20 | */ 21 | #include "AudioTools.h" 22 | #include "SIDStream.h" 23 | #include "AudioLibs/StdioStream.h" 24 | #include "audio/commando.h" 25 | 26 | uint16_t sample_rate=32000; 27 | uint8_t channels = 2; 28 | StdioStream out; 29 | WAVEncoder enc; 30 | EncodedAudioStream wav(&out, &enc); // final solution 31 | SIDStream sid(music_Commando_sid, music_Commando_sid_len); 32 | StreamCopy copier(wav, sid); 33 | 34 | // Arduino Setup 35 | void setup(void) { 36 | AudioLogger::instance().begin(Serial, AudioLogger::Warning); 37 | 38 | // start output 39 | auto config = out.defaultConfig(); 40 | config.sample_rate = sample_rate; 41 | config.channels = channels; 42 | config.bits_per_sample = 16; 43 | out.begin(config); 44 | wav.begin(config); 45 | 46 | // Setup SID 47 | auto scfg = sid.defaultConfig(); 48 | scfg.copyFrom(config); 49 | scfg.subtune = 2; 50 | sid.begin(scfg); 51 | //sid.setSID(music_Commando_sid, music_Commando_sid_len); 52 | } 53 | 54 | // Arduino loop - copy sound to out 55 | void loop() { 56 | copier.copy(); 57 | } 58 | 59 | int main(){ 60 | setup(); 61 | while(true)loop(); 62 | } 63 | -------------------------------------------------------------------------------- /examples/player-kit/player-kit.ino: -------------------------------------------------------------------------------- 1 | /** 2 | * @file player.ino 3 | * @author Phil Schatzmann 4 | * @brief Plays the included demo SID files on an AI Thinker AudioKit 5 | * Dependencies: 6 | * - https://github.com/pschatzmann/SIDPlayer 7 | * - https://github.com/pschatzmann/arduino-audio-tools 8 | * - https://github.com/pschatzmann/arduino-audiokit 9 | * @version 0.1 10 | * @date 2023-03-02 11 | * 12 | * @copyright Copyright (c) 2023 13 | * 14 | */ 15 | 16 | #include "SIDPlayer.h" 17 | #include "AudioLibs/AudioBoardStream.h" 18 | 19 | SIDAudioSource source(DemoSongs, DemoSongsCount); 20 | SIDSizeSource sidSize(source); 21 | AudioBoardStream kit(AudioKitEs8388V1); 22 | SIDPlayer sid(source, kit, sidSize); 23 | 24 | void previous(bool, int, void*) { TRACEI(); sid.previous(); } 25 | void next(bool, int, void*) { TRACEI(); sid.next(); } 26 | void volumeUp(bool, int, void*) { sid.setVolume(sid.volume()+0.2); } 27 | void volumeDown(bool, int, void*) { sid.setVolume(sid.volume()-0.2); } 28 | 29 | void setup() { 30 | Serial.begin(115200); 31 | AudioLogger::instance().begin(Serial, AudioLogger::Info); 32 | 33 | auto cfg = kit.defaultConfig(TX_MODE); 34 | cfg.channels = 1; // 1 or 2 working 35 | cfg.sample_rate = 8000; // use whatever is supported by the audiokit 36 | kit.begin(cfg); 37 | 38 | kit.addAction(PIN_KEY3, previous); 39 | kit.addAction(PIN_KEY4, next); 40 | kit.addAction(PIN_KEY5, volumeDown); 41 | kit.addAction(PIN_KEY6, volumeUp); 42 | 43 | // move to next song after playing for 5 minuts 44 | sid.setTimeout(60*5); 45 | sid.begin(random(source.size())); 46 | 47 | } 48 | 49 | void loop() { 50 | sid.copy(); 51 | kit.processActions(); 52 | } 53 | -------------------------------------------------------------------------------- /examples/player-sd/player-sd.ino: -------------------------------------------------------------------------------- 1 | /** 2 | * @file player.ino 3 | * @author Phil Schatzmann 4 | * @brief Plays the SID files from a SD Drive on an AI Thinker AudioKit 5 | * Dependencies: 6 | * - https://github.com/pschatzmann/SIDPlayer 7 | * - https://github.com/pschatzmann/arduino-audio-tools 8 | * @version 0.1 9 | * @date 2023-03-02 10 | * 11 | * @copyright Copyright (c) 2023 12 | * 13 | */ 14 | 15 | #include "SIDPlayer.h" 16 | #include "AudioLibs/AudioSourceIdxSD.h" 17 | // #include "AudioLibs/AudioKit.h" 18 | 19 | // replace with your CS pin 20 | #define CS PIN_AUDIO_KIT_SD_CARD_CS 21 | 22 | const char *startFilePath="/SID"; 23 | const char* ext="sid"; 24 | AudioSourceIdxSD source(startFilePath, ext, CS); 25 | SizeSourceFile fileSize(source); 26 | I2SStream out; // or replace with your Output Device e.g. AudioBoardStream 27 | SIDPlayer sid(source, out, fileSize); 28 | AudioActions actions; 29 | 30 | void previous(bool, int, void*) { TRACEI(); sid.previous(); } 31 | void next(bool, int, void*) { TRACEI(); sid.next(); } 32 | void volumeUp(bool, int, void*) { sid.setVolume(sid.volume()+0.2); } 33 | void volumeDown(bool, int, void*) { sid.setVolume(sid.volume()-0.2); } 34 | 35 | void setup() { 36 | Serial.begin(115200); 37 | AudioLogger::instance().begin(Serial, AudioLogger::Warning); 38 | // open in write mode 39 | auto cfg = out.defaultConfig(TX_MODE); 40 | cfg.channels = 1; // 1 or 2 working 41 | cfg.sample_rate = 8000; // use whatever is supported by the audiokit 42 | out.begin(cfg); 43 | 44 | // timout 5 minutes 45 | sid.setTimeout(60*5); 46 | sid.begin(); 47 | 48 | actions.add(PIN_KEY3, previous); 49 | actions.add(PIN_KEY4, next); 50 | actions.add(PIN_KEY5, volumeDown); 51 | actions.add(PIN_KEY6, volumeUp); 52 | 53 | } 54 | 55 | void loop() { 56 | sid.copy(); 57 | actions.processActions(); 58 | } 59 | -------------------------------------------------------------------------------- /examples/player/player.ino: -------------------------------------------------------------------------------- 1 | /** 2 | * @file player.ino 3 | * @author Phil Schatzmann 4 | * @brief Plays the included demo SID files to the defined output (e.g. on a regurlar ESP32) 5 | * Dependencies: 6 | * - https://github.com/pschatzmann/SIDPlayer 7 | * - https://github.com/pschatzmann/arduino-audio-tools 8 | * @version 0.1 9 | * @date 2023-03-02 10 | * 11 | * @copyright Copyright (c) 2023 12 | * 13 | */ 14 | #include "SIDPlayer.h" 15 | 16 | SIDAudioSource source(DemoSongs, DemoSongsCount); 17 | SIDSizeSource sidSize(source); 18 | I2SStream out; // or AnalogAudioStream or PWMStream etc 19 | AudioActions actions; 20 | SIDPlayer sid(source, out, sidSize); 21 | 22 | void previous(bool, int, void*) { sid.previous(); } 23 | void next(bool, int, void*) { sid.next(); } 24 | void volumeUp(bool, int, void*) { sid.setVolume(sid.volume()+0.2); } 25 | void volumeDown(bool, int, void*) { sid.setVolume(sid.volume()-0.2); } 26 | 27 | void setup() { 28 | Serial.begin(115200); 29 | AudioLogger::instance().begin(Serial, AudioLogger::Info); 30 | 31 | // setup button pins 32 | actions.add(12, previous); 33 | actions.add(13, next); 34 | actions.add(14, volumeUp); 35 | actions.add(15, volumeDown); 36 | 37 | auto cfg = out.defaultConfig(TX_MODE); 38 | out.begin(cfg); 39 | 40 | // move to next song after playing for 5 minuts 41 | sid.setTimeout(60*5); 42 | sid.begin(); 43 | 44 | } 45 | 46 | void loop() { 47 | sid.copy(); 48 | actions.processActions(); 49 | 50 | } 51 | -------------------------------------------------------------------------------- /examples/stream/stream.ino: -------------------------------------------------------------------------------- 1 | /** 2 | * @file stream.ino 3 | * @author Phil Schatzmann 4 | * @brief Copies the Audio from Sid to an output device 5 | * @version 0.1 6 | * @date 2023-03-03 7 | * 8 | * @copyright Copyright (c) 2023 9 | * 10 | */ 11 | #include "AudioTools.h" 12 | #include "SIDStream.h" 13 | #include "AudioLibs/AudioBoardStream.h" 14 | #include "audio/commando.h" 15 | 16 | uint16_t sample_rate=32000; 17 | uint8_t channels = 2; 18 | AudioBoardStream out(AudioKitEs8388V1); 19 | SIDStream sid(music_Commando_sid, music_Commando_sid_len); 20 | StreamCopy copier(out, sid); 21 | 22 | // Arduino Setup 23 | void setup(void) { 24 | // Open Serial 25 | Serial.begin(115200); 26 | AudioLogger::instance().begin(Serial, AudioLogger::Info); 27 | 28 | // start I2S 29 | Serial.println("starting I2S..."); 30 | auto config = out.defaultConfig(TX_MODE); 31 | config.sample_rate = sample_rate; 32 | config.channels = channels; 33 | config.bits_per_sample = 16; 34 | out.begin(config); 35 | 36 | // Setup SID 37 | auto scfg = sid.defaultConfig(); 38 | scfg.copyFrom(config); 39 | sid.begin(scfg); 40 | //sid.setSID(music_Commando_sid, music_Commando_sid_len); 41 | 42 | } 43 | 44 | // Arduino loop - copy sound to out 45 | void loop() { 46 | copier.copy(); 47 | } 48 | -------------------------------------------------------------------------------- /library.properties: -------------------------------------------------------------------------------- 1 | name=SIDPlayer 2 | version=0.0.1 3 | author=Phil Schatzmann 4 | maintainer=Phil Schatzmann 5 | sentence=Player for SID files 6 | paragraph=Player for SID files based on the Arduino Audio Tools 7 | category=Signal Input/Output 8 | url=https://github.com/pschatzmann/SIDPlayer 9 | architectures=* 10 | -------------------------------------------------------------------------------- /src/SIDAudioSource.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #ifdef ARDUINO 3 | #include "SD.h" 4 | #endif 5 | #include 6 | #include 7 | 8 | #include "audio/comic.h" 9 | #include "audio/commando.h" // Good! 10 | #include "audio/ik.h" // Good! 11 | #include "audio/mikie.h" // Good! 12 | #include "audio/ocean.h" // Good! 13 | #include "audio/yie.h" // Good! 14 | 15 | namespace audio_tools { 16 | 17 | /** 18 | * @brief Information about an individual SID song title 19 | * @author Phil Schatzmann 20 | * @copyright GPLv3 21 | */ 22 | struct SidTitle { 23 | uint8_t *data; 24 | size_t size; 25 | int no; 26 | }; 27 | 28 | const SidTitle DemoSongs[] = { 29 | {(uint8_t *)music_Commando_sid, music_Commando_sid_len, 0}, 30 | {(uint8_t *)Yie_Ar_Kung_Fu_sid, Yie_Ar_Kung_Fu_sid_len, 18}, 31 | {(uint8_t *)Mikie_sid, Mikie_sid_len, 0}, 32 | {(uint8_t *)Ocean_Loader_2_sid, Ocean_Loader_2_sid_len, 0}, 33 | {(uint8_t *)International_Karate_sid, International_Karate_sid_len, 0}, 34 | {(uint8_t *)Comic_Bakery_sid, Comic_Bakery_sid_len, 0} 35 | }; 36 | const int DemoSongsCount = 6; 37 | 38 | /** 39 | * @brief AudioSource with SID files which are stored in PROGMEM 40 | * @author Phil Schatzmann 41 | * @copyright GPLv3 42 | */ 43 | class SIDAudioSource : public AudioSource { 44 | public: 45 | SIDAudioSource() = default; 46 | SIDAudioSource(const SidTitle *songs, int count) { 47 | for (int j = 0; j < count; j++) { 48 | addSong(songs[j]); 49 | } 50 | } 51 | 52 | void addSong(SidTitle song) { songs.push_back(song); } 53 | 54 | /// Reset actual stream and move to root 55 | virtual void begin() { 56 | index = 0; 57 | stream.begin(); 58 | } 59 | 60 | /// Returns next audio stream 61 | virtual Stream *nextStream(int offset) { 62 | index += offset; 63 | if (index >= songs.size()) { 64 | index = 0; 65 | } 66 | if (index < 0) { 67 | index = songs.size() - 1; 68 | } 69 | return selectStream(index); 70 | } 71 | 72 | /// Returns audio stream at the indicated index (the index is zero based, so 73 | /// the first value is 0!) 74 | virtual Stream *selectStream(int index) { 75 | LOGI("selectStream: %d", index); 76 | SidTitle& title = songs[index]; 77 | stream.setValue(title.data, title.size, FLASH_RAM); 78 | title_size = title.size; 79 | LOGI("actualFileSize: %d", (int)title_size); 80 | return &stream; 81 | } 82 | 83 | size_t actualFileSize() { return title_size; } 84 | 85 | /// File size of actual file 86 | int size() { return songs.size(); } 87 | 88 | /// Clears all songs 89 | void clear() { songs.clear(); } 90 | 91 | /// Returns audio stream by path 92 | virtual Stream *selectStream(const char *path) { return nullptr; } 93 | 94 | protected: 95 | int index = 0; 96 | Vector songs{0}; 97 | MemoryStream stream{nullptr,0,true, FLASH_RAM}; 98 | size_t title_size = 0; 99 | }; 100 | 101 | /** 102 | * @brief Logic to determine the Size of the Stream: File ? 103 | * @author Phil Schatzmann 104 | * @copyright GPLv3 105 | */ 106 | class SizeSource { 107 | public: 108 | virtual size_t size() = 0; 109 | }; 110 | 111 | #ifdef ARDUINO 112 | 113 | /** 114 | * @brief Provides the size if the audio source is using Files 115 | * @author Phil Schatzmann 116 | * @copyright GPLv3 117 | */ 118 | class SizeSourceFile : public SizeSource { 119 | public: 120 | SizeSourceFile(AudioSource &source) { p_source = &source; } 121 | size_t size() override { 122 | // get the current stream (which is actually a file) 123 | File *p_file = (File *)p_source->nextStream(0); 124 | return p_file->size(); 125 | }; 126 | 127 | protected: 128 | AudioSource *p_source; 129 | }; 130 | 131 | #endif 132 | 133 | /** 134 | * @brief Provides the size of the current file for a SIDAudioSource 135 | * @author Phil Schatzmann 136 | * @copyright GPLv3 137 | */ 138 | class SIDSizeSource : public SizeSource { 139 | public: 140 | SIDSizeSource(SIDAudioSource &source) { p_source = &source; } 141 | size_t size() { return p_source->actualFileSize(); } 142 | 143 | protected: 144 | SIDAudioSource *p_source; 145 | }; 146 | 147 | 148 | } // namespace audiotools -------------------------------------------------------------------------------- /src/SIDConfig.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | /** 4 | * @brief Defines the size of the memory which is allocated 5 | * 6 | */ 7 | #ifndef MAX_DATA_LEN 8 | # define MAX_DATA_LEN 65536 9 | #endif 10 | 11 | /** 12 | * Prevent that we use file sizes which are too big 13 | */ 14 | #ifndef MAX_FILE_SIZE 15 | # define MAX_FILE_SIZE 20000 16 | #endif 17 | 18 | /** 19 | * Memory Allocation Logic 20 | * 1) dynamic allocation with malloc 21 | * 2) ESP32 using PSRAM (psmalloc) 22 | * 3) static allocation 23 | * 4) mapped memory (Experimental/avoiding allocations) 24 | * 25 | */ 26 | #ifndef MEMORY_ALLOCATION_LOGIC 27 | # define MEMORY_ALLOCATION_LOGIC 3 28 | #endif 29 | 30 | 31 | -------------------------------------------------------------------------------- /src/sid-api/libcsid.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "SIDConfig.h" 3 | 4 | //#define MAX_DATA_LEN 65536 5 | 6 | #define SIDMODEL_8580 8580 7 | #define SIDMODEL_6581 6581 8 | 9 | #define DEFAULT_SAMPLERATE 44100 10 | #define DEFAULT_SIDMODEL SIDMODEL_6581 11 | 12 | extern void libcsid_init(int samplerate, int sidmodel); 13 | extern void libcsid_free(); 14 | 15 | //extern int libcsid_load(unsigned char *buffer, int bufferlen, int subtune); 16 | extern int libcsid_load(unsigned char *buffer, int bufferlen); 17 | extern void libcsid_play(int tune_index); 18 | 19 | extern const char *libcsid_getauthor(); 20 | extern const char *libcsid_getinfo(); 21 | extern const char *libcsid_gettitle(); 22 | extern uint8_t libcsid_get_total_tunes_number(); 23 | extern uint8_t libcsid_get_default_tune_number(); 24 | 25 | extern void libcsid_render(unsigned short *output, int numsamples); 26 | 27 | -------------------------------------------------------------------------------- /src/sid-api/sidmemory.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | /* 5 | * Memory Manager that avoids to copy any data. We dynamically allocate any accessed 6 | * memory that is not mapped in segments of 256 bytes 7 | * @author Phil Schatzmann 8 | * @copyright GPLv3 9 | */ 10 | class SIDMemory { 11 | public: 12 | SIDMemory() = default; 13 | 14 | /// Map data 15 | void set(int start, int offset, uint8_t *data, size_t len) { 16 | fprintf(stderr, "Start: 0x%x\n", start); 17 | fprintf(stderr, "Offset: 0x%x\n", offset); 18 | this->start = start; 19 | this->offset = offset; 20 | this->data = data + offset + 2; 21 | this->len = len - offset - 2; 22 | } 23 | 24 | /// Access via index 25 | uint8_t &operator[](int idx) { 26 | // data e.g. stored in PROGMEM 27 | if (idx >= start && idx < start + len) { 28 | return data[idx - start]; 29 | } 30 | 31 | // Addresses that are not mapped yet 32 | int dyn_idx = idx / 256; 33 | int dyn_offset = idx % 256; 34 | uint8_t *tmp = dynamic_data[dyn_idx]; 35 | if (tmp == 0) { 36 | // Dynamically allocate memory based on the requested address 37 | tmp = dynamic_data[dyn_idx] = (uint8_t *)calloc(1, 256); 38 | fprintf(stderr, "Allocate: 0x%04x\n", idx); 39 | } 40 | return tmp[dyn_offset]; 41 | } 42 | 43 | /// Release all allocated memory 44 | void clear() { 45 | for (int j = 0; j < 256; j++) { 46 | uint8_t *tmp = dynamic_data[j]; 47 | if (tmp != nullptr) { 48 | free(tmp); 49 | dynamic_data[j] = nullptr; 50 | } 51 | } 52 | } 53 | 54 | protected: 55 | int start; 56 | int offset; 57 | int len; 58 | uint8_t *data; 59 | uint8_t *dynamic_data[256]; 60 | }; --------------------------------------------------------------------------------