diff --git a/CHANGELOG b/CHANGELOG index e3f5001d..be845033 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -7,10 +7,38 @@ Run git log --oneline for more details -┍━━━━┫ 2020-??-?? ┣━━━━┫ 5.3.0 ┣━━━━━━━━╍╍ +┍━━━━┫ 2020-08-01 ┣━━━━┫ 6.0.0 ┣━━━━━━━━╍╍ ┝━ MAJOR CHANGES +│ - [MusicAI] Removed (The framework I used is no longer maintained and does not work with modern Tensorflow anymore) +│ - [MusicDB] Removed unused columns: qskips, qadds, qremoves, qrndadds +│ + [MSBWSI/WebUI] In packages, all values behind the name key get beautified (U+2215->"/", "-"->N-Dash) +│ - [MusicCache] MusicCache Removed. Was never used. │ ┝━ MINOR CHANGES +│ * Log output ends with setting terminal color to default (\e[0m) +│ * [Artwork] Fixes issue with mutagenx package and importing artworks from mp3 files +│ * [Add] Highlight in the summary when there are invalid song names +│ * [Add] Exceptions during album import were captured to create better error messages +│ + [Add] In case there is invalid unicode in a song file name, the module exits immediately +│ + [Add] Detect and remove " [Explicit]" tags from song names +│ * [Add] Fix a bug that get triggered when a song file comes with no meta data +│ - [Add] MusicAI processing removed +│ - [mdbstate] Deprecated check/warning removed: israndom is now a mandatory key for song queue files +│ - [mdbstate] Deprecated check/warning removed: timestamp is now a mandatory key for blacklist files +│ - [MDBWSI] Deprecated function removed: GetMPDState, SetMPDState +│ * [MDBWSI] Bugfix in warning inside SetStreamState +│ - [database] Deprecated function removed: UpdateSongPath +│ - [Installation] All MusicAI related tasks removed +│ - [Configuration] All MusicAI related settings removed +│ * [MP3Transcoder] File descriptor leak fixed. GStreamer pipes get closed after file transcoding. +│ * [MP3Transcoder] File descriptor leak fixed. GStreamer object got not garbage-collected and left a file handler open +│ + [lib/metadata] Detect Amazon and Google as possible song origin +│ * [lib/metadata] Detect CD information from mp3 files +│ + [install-scripts] check.sh prints some helpful hints +│ * [install-scripts] Select correct music owner +│ * [install-scripts] Create music directory when it does not exists +│ * [upgrade] Upgrade CLI-Module does not load and use MusicDatabase (Fixes version conflicts) +│ * [font] Source Sans Pro has an issue with different sizes for smileys. I switched to DejaVuSans for mood-tags. └───────────────────────────────────────╌╌ diff --git a/README.md b/README.md index 5a5795ce..91f8dbef 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -![MusicDB Logo](https://rstemmer.github.io/musicdb/landingpage/img/logo.png) +![MusicDB Logo](graphics/MusicDB/mdblogo.png?raw=true) # MusicDB @@ -19,6 +19,24 @@ A detailed description of MusicDB and its components can be found in the documen For news, follow [@MusicDBProject](https://twitter.com/MusicDBProject) on Twitter. +## Table of Contents + +* [MusicDB](#musicdb) + * [Table of Contents](#table-of-contents) + * [Important News](#important-news) + * [Social](#social) +* [Using MusicDB](#using-musicdb) + * [Requirements](#requirements) + * [Download](#download) + * [Installation and Update](#installation-and-update) + * [Usage](#usage) +* [Development](#development) + * [Documentation](#documentation) + * [Contributing](#contributing) +* [Roadmap](#roadmap) + * [Branches](#branches) + * [Releases](#releases) + ## Important News @@ -28,8 +46,15 @@ Furthermore those changes may break scripts you wrote around MusicDB. Lines starting with "**:wrench: Change:**" are steps you have to do *before* or *after* updating via `install.sh` script. +**01.08.2020: 5.x.x → 6.0.0+** + +* Changes in the configuration file and music database (See CHANGELOG for details) + * **:wrench: Change:** Remember to call `musicdb upgrade` *after* installation when using the `update.sh` script + * **:wrench: Change:** Reload WebUI *after* update +* MusicAI will no longer work. Everything related to MusicAI got removed. Reason: The used framework _tflearn_ is no longer under development and got not ported to TensorFlow 2.0. +
- 20.01.19: 4.x.x → 5.0.0+ + 20.01.2019: 4.x.x → 5.0.0+ * Some changes in the configuration file * **:wrench: Change:** Remember to call `musicdb upgrade` *after* installation when using the `update.sh` script @@ -41,7 +66,7 @@ Lines starting with "**:wrench: Change:**" are steps you have to do *before* or
- 28.07.18: 3.x.x → 4.0.0+ + 28.07.2018: 3.x.x → 4.0.0+ * Rebuild of the installation process. * **:wrench: Change:** Make a backup of the MusicDB data directory! @@ -91,7 +116,7 @@ In case MusicDB does not run on outdated operating systems, update your system : * [Debian](https://www.debian.org/distrib/) for x86-64 (not recommended because it comes with lots of ~~old~~ "stable" software) * [Arch Linux ARM](https://archlinuxarm.org/) for AArch64 with [ODROID-C2](https://wiki.odroid.com/odroid-c2/odroid-c2) * [Arch Linux ARM](https://archlinuxarm.org/) for ARMv7 with [Raspberry Pi 3](https://www.raspberrypi.org/products/raspberry-pi-3-model-b/) -* [Python3](https://www.python.org/) (At least Python 3.5. I test with Python 3.7) +* [Python3](https://www.python.org/) (At least Python 3.5. I test with Python 3.8) * [Icecast](https://icecast.org/) and [GStreamer](https://gstreamer.freedesktop.org/) for streaming * A modern web browser for accessing the WebUI: * [Firefox](https://www.mozilla.org/en-US/) (recommended) @@ -104,28 +129,63 @@ The `install.sh` script checks for tools needed to install MusicDB. Furthermore `check.sh` list all tools and Python modules needed by MusicDB. You can run the check-script at any time. -Execute `pip install -r requirements.txt` to install a basic set of Python modules needed for MusicDB. +A detailed list can be found on [:notebook: How to Install MusicDB](https://rstemmer.github.io/musicdb/build/html/usage/install.html) in the documentation. -## Download +Execute `pip install -r requirements.txt` to install a basic set of Python modules needed for MusicDB. +I recommend to try to get the modules from the distributions package manager. -To get the latest version of MusicDB, clone this repository. -The *master* branch can be considered stable. - -```sh -git clone https://github.com/rstemmer/musicdb.git -``` +You should use the latest versions of these dependencies and update them regularly. +When MusicDB breaks because of an updated dependency create a ticket. +I then will fix MusicDB as soon as possible. ## Installation and Update To install MusicDB, read [:notebook: How to Install MusicDB](https://rstemmer.github.io/musicdb/build/html/usage/install.html) in the documentation. -For updating, you can also execute `cd scripts && ./install.sh && musicdb upgrade`. +For updating, you can do one of the following steps. Read the *Important News* for manual steps to do before updating to a new major release. +Only execute the scripts as root, that are followed by the comment "as root"! + +### Update to a New Minor Version + +``` bash +git checkout master # Only install from master branch! +git pull + +cd scripts +./update.sh # as root +``` + +### Update to a New Major Version + +For major upgrades there exists two strategies. +Strategy 1 is recommended. + +``` bash +git checkout master # Only install from master branch! +git pull + +cd scripts -Updating to the next minor version can be done by simply executing `git pull && cd scripts && ./update.sh` (Be sure you are on the master branch). +# Statgey 1 +./update.sh --major # as root +# Statrgy 2 +./install.sh # as root +musicdb upgrade +``` + + +## Download + +To get the latest version of MusicDB, clone this repository. +The *master* branch can be considered stable. + +```sh +git clone https://github.com/rstemmer/musicdb.git +``` ## Usage @@ -161,7 +221,7 @@ If there are any problems setting up MusicDB, create an issue. ## Docker-Based Demo -It is possible to run a Demo installation via Docker container. +It is possible to run a *Demo* installation via Docker container. Just clone this repository and execute the scripts in the docker sub-directory. ```sh @@ -171,6 +231,10 @@ cd musicdb ./docker/run.sh ``` +**Important:** I do not longer support docker and will no longer update or test the files in the docker directory. +I let the scripts untouched as they were for version 5.2.2. +In case they do not work with later versions of MusicDB please create an Issue. + # Development @@ -207,23 +271,25 @@ Every help is welcome. * Please don't commit *docs/build*, -# Versioning and Branches +# Roadmap + +*MusicDB* is under active development. +Beside maintaining this software, I also think about improving it or adding new features if necessary. +The following list contains all huge improvements I'm planning to add to MusicDB. + +* Integrate music videos into the MusicDB infrastructure. The UI should be switch to video-mode. Then, instead of showing artists and their albums, artists and their videos will be shown. The videos can then be put into a video-queue that get streamed. + * A first prototype exists in the *feature-video* branch. + * Development progress can be seen on the [corresponding GitHub Project page](https://github.com/rstemmer/musicdb/projects/1). -I work on MusicDB in three sprints per year. Each sprint is about one and a half week long. -The rest of the year I only want to concentrate on fixing critical bugs. -There are no classic releases. The MusicDB core has some kind of version number (see VERSION file), -but this number does not cover changes in the WebUI, for example. +* Next generation of *MusicAI*. I already miss the old one that was surprisingly helpful tagging songs. The next generation might base on TensorFlow 2.0 directly. I will have the same or similar architecture since it worked in the past. -Major "releases" are not compatible with the previous version of MusicDB. -How to update to a next major version will be described in the *Important News* section at the beginning of this README. +* New Frontend. Early ideas are around WebAssembly based technology or a native client. Even with a native client the WebUI still needs to be updated. The code base is very ugly and the used coding strategy does not fit to the complexity of the application and abilities of JavaScript. -A reliable change log can be generated by calling `git log --oneline`. :wink: +The following subsections cover more information regarding releases and branches. -It is recommended to update whenever there are changes on *master*. -You better not use any other branch than *master*. :wink: +## Branches -**Best dates for updating MusicDB are end of January, end of May and end of September.** The following branches exist in the MusicDB git repository contains. @@ -249,6 +315,17 @@ Make a backup of your MusicDB data directory before using installing MusicDB fro
+
+feature-??? + +These branches are for adding *game-changing* features into MusicDB. +They are not strictly bound to a release. +It is not even clear if the features will be finished at all. + +Do never use code from this branch in production! + +
+
mobileapp - The mobile app is dead @@ -262,9 +339,10 @@ The build environment used proprietary 32bit executables and may more problems l
-## GitHub Releases +## Releases -Some special old releases are tagged in the git repository. +With version 5.0.0 I started to use the Releases feature of GitHub. They can be found in [GitHubs Releases Section](https://github.com/rstemmer/musicdb/releases). -These are not the latest version of MusicDB and I do not recommend to use them. +Some special old releases are tagged in the git repository as well. + diff --git a/VERSION b/VERSION index fb068551..9e44be41 100644 --- a/VERSION +++ b/VERSION @@ -1,3 +1,4 @@ +6.0.0 - SEE CHANGELOG 5.2.2 - [artwork] Fixed wrong interpretation of relative path arguments 5.2.1 - [artwork] Fixed a bug that make the --album or --artwork option crash 5.2.0 - SEE CHANGELOG diff --git a/docs/build/html/.buildinfo b/docs/build/html/.buildinfo index e286ef33..4d51d346 100644 --- a/docs/build/html/.buildinfo +++ b/docs/build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: df59c7adc9c336bf33df3da3198e0b5f +config: ea5b9a583d837b305f841c1f3d1ec530 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/build/html/_images/graphviz-077d3b94421b8816e4b9e74a9e577bd0832ddec2.svg b/docs/build/html/_images/graphviz-077d3b94421b8816e4b9e74a9e577bd0832ddec2.svg index 7c194c7c..eea85acd 100644 --- a/docs/build/html/_images/graphviz-077d3b94421b8816e4b9e74a9e577bd0832ddec2.svg +++ b/docs/build/html/_images/graphviz-077d3b94421b8816e4b9e74a9e577bd0832ddec2.svg @@ -1,39 +1,39 @@ - - + hierarchy - + filesystem - -Filesystem - - - - + +Filesystem + + + + fileprocessing - -Fileprocessing - - - - + +Fileprocessing + + + + filesystem->fileprocessing - - + + diff --git a/docs/build/html/_images/graphviz-2108fd3faa0dcb66ec1499c51df6e1514bc6874c.svg b/docs/build/html/_images/graphviz-2108fd3faa0dcb66ec1499c51df6e1514bc6874c.svg index 671f5396..6f78d2c8 100644 --- a/docs/build/html/_images/graphviz-2108fd3faa0dcb66ec1499c51df6e1514bc6874c.svg +++ b/docs/build/html/_images/graphviz-2108fd3faa0dcb66ec1499c51df6e1514bc6874c.svg @@ -1,128 +1,128 @@ - - - + + hierarchy - + start - -Start + +Start hasalbumid - -albumid == None + +albumid == None start->hasalbumid - - + + getallalbums - -Get all Album IDs + +Get all Album IDs hasalbumid->getallalbums - - -Yes + + +Yes getallsongs - -Get all songs of selected albums + +Get all songs of selected albums hasalbumid->getallsongs - - -No + + +No getalltags - -Get list of Tag IDs -from filterlist + +Get list of Tag IDs +from filterlist getallalbums->getalltags - - + + hasfilterlist - -Is there a filter list + +Is there a filter list getalltags->hasfilterlist - - + + removealbums - -Remove albums without -tags of filter + +Remove albums without +tags of filter hasfilterlist->removealbums - - -Yes + + +Yes hasfilterlist->getallsongs - - -No + + +No removealbums->removealbums - - -For each album + + +For each album removealbums->getallsongs - - + + selectsong - -Select random song + +Select random song getallsongs->selectsong - - + + diff --git a/docs/build/html/_images/graphviz-4a4295c9de60ee3748759e5cfa7b0aee2a48d056.svg b/docs/build/html/_images/graphviz-4a4295c9de60ee3748759e5cfa7b0aee2a48d056.svg index 7cfa0bc1..c2872f0b 100644 --- a/docs/build/html/_images/graphviz-4a4295c9de60ee3748759e5cfa7b0aee2a48d056.svg +++ b/docs/build/html/_images/graphviz-4a4295c9de60ee3748759e5cfa7b0aee2a48d056.svg @@ -1,213 +1,213 @@ - - - + + controlflow - + cluster_OnLoad - -window.onload + +window.onload cluster_SocketOpen - -socket.onopen + +socket.onopen cluster_SocketClose - -socket.onclose + +socket.onclose cluster_SocketError - -socket.onerror + +socket.onerror cluster_SocketMessage - -socket.onmessage + +socket.onmessage JS - - -JavaScript -Engine + + +JavaScript +Engine OL_ConnectToMDB - -ConnectToMusicDB + +ConnectToMusicDB JS->OL_ConnectToMDB - - -When loaded + + +When loaded SO_onOpen - -…ConnectionOpen + +…ConnectionOpen JS->SO_onOpen - - -on open + + +on open SC_StopWatchdog - -MDB_StopWatchdog + +MDB_StopWatchdog JS->SC_StopWatchdog - - -on close + + +on close SE_StopWatchdog - -MDB_StopWatchdog + +MDB_StopWatchdog JS->SE_StopWatchdog - - -on error + + +on error SM_ResetWatchdog - -MDB_ResetWatchdog + +MDB_ResetWatchdog JS->SM_ResetWatchdog - - -on message + + +on message SC_IF - -is readyState -CLOASING or CLOSED + +is readyState +CLOASING or CLOSED SC_StopWatchdog->SC_IF - - + + SC_onError - -…ConnectionError + +…ConnectionError SC_IF->SC_onError - - -no + + +no SC_onClosed - -…ConnectionClosed + +…ConnectionClosed SC_IF->SC_onClosed - - -yes + + +yes SE_onError - -…ConnectionError + +…ConnectionError SE_StopWatchdog->SE_onError - - + + SM_Decode - -Parse received -JSON string + +Parse received +JSON string SM_ResetWatchdog->SM_Decode - - + + SM_IF - -Check method variable + +Check method variable SM_Decode->SM_IF - - + + SM_onNotification - -…Notification + +…Notification SM_IF->SM_onNotification - - -method == "notification" + + +method == "notification" SM_onMessage - -…Message + +…Message SM_IF->SM_onMessage - - -else + + +else diff --git a/docs/build/html/_images/graphviz-4c64cef2ca6cda53846b7d30d0e643c7d0c06e0a.svg b/docs/build/html/_images/graphviz-4c64cef2ca6cda53846b7d30d0e643c7d0c06e0a.svg index d63c7e68..d9cdae62 100644 --- a/docs/build/html/_images/graphviz-4c64cef2ca6cda53846b7d30d0e643c7d0c06e0a.svg +++ b/docs/build/html/_images/graphviz-4c64cef2ca6cda53846b7d30d0e643c7d0c06e0a.svg @@ -1,145 +1,145 @@ - - + hierarchy - + start - -Start + +Start loadmp3 - -Load mp3 file + +Load mp3 file start->loadmp3 - - + + getframe - -Get next frame + +Get next frame loadmp3->getframe - - + + ismuted - -state == muted ? + +state == muted ? getframe->ismuted - - -Frame available + + +Frame available end - -Stop generator + +Stop generator getframe->end - - -No further frames + + +No further frames streamsilence - -Stream silence + +Stream silence ismuted->streamsilence - - -Yes + + +Yes streamframe - -Stream frame + +Stream frame ismuted->streamframe - - -No + + +No yieldnextframe - -Return frame + +Return frame streamsilence->yieldnextframe - - + + streamsilence->end - - -On error + + +On error yieldnextframe->ismuted - - + + yieldframe - -Return frame + +Return frame streamframe->yieldframe - - + + streamframe->end - - -On error + + +On error yieldframe->getframe - - + + diff --git a/docs/build/html/_images/graphviz-5d9feb83c9bf14e25e6d72c80181e142e33bd252.svg b/docs/build/html/_images/graphviz-5d9feb83c9bf14e25e6d72c80181e142e33bd252.svg index 16a123aa..c297e341 100644 --- a/docs/build/html/_images/graphviz-5d9feb83c9bf14e25e6d72c80181e142e33bd252.svg +++ b/docs/build/html/_images/graphviz-5d9feb83c9bf14e25e6d72c80181e142e33bd252.svg @@ -1,41 +1,41 @@ - - + hierarchy - + mdbmod - -MDBModule - - - -+ MDBM_CreateArgumentParser() -+ MDBM_Main() + +MDBModule + + + ++ MDBM_CreateArgumentParser() ++ MDBM_Main() example - -module - - - -/+ MDBM_CreateArgumentParser() -/+ MDBM_Main() + +module + + + +/+ MDBM_CreateArgumentParser() +/+ MDBM_Main() mdbmod->example - - + + diff --git a/docs/build/html/_images/graphviz-676db0c56b06730e2098e4326cf216d8b783527b.svg b/docs/build/html/_images/graphviz-676db0c56b06730e2098e4326cf216d8b783527b.svg index 2721f5c0..14787d3a 100644 --- a/docs/build/html/_images/graphviz-676db0c56b06730e2098e4326cf216d8b783527b.svg +++ b/docs/build/html/_images/graphviz-676db0c56b06730e2098e4326cf216d8b783527b.svg @@ -1,134 +1,134 @@ - - - + + hierarchy - + wssp - -WebSocketServerProtocol - - - - + +WebSocketServerProtocol + + + + ws - -WebSocket - - - -+ SendPacket() -+ BroadcastPacket() -/- onOpen() -/- onClose() -/- onMessage() + +WebSocket + + + ++ SendPacket() ++ BroadcastPacket() +/- onOpen() +/- onClose() +/- onMessage() wssp->ws - - + + mdbwsp - -MusicDBWebSocketProtoctol - - - - + +MusicDBWebSocketProtoctol + + + + ws->mdbwsp - - + + mdbwsi - -MusicDBWebSocketInterface - - - -# onWSConnect() -# onWSDisconnect() -# onCall() -- onStreamEvent() -- onQueueEvent + +MusicDBWebSocketInterface + + + +# onWSConnect() +# onWSDisconnect() +# onCall() +- onStreamEvent() +- onQueueEvent mdbwsi->mdbwsp - - + + mdbwsf - -MusicDBWebSocketFactory - -- clients - -+ AddToBroadcast() -+ RemoveFromBroadcast() -+ BroadcastPacket() -+ CloseConnections() + +MusicDBWebSocketFactory + +- clients + ++ AddToBroadcast() ++ RemoveFromBroadcast() ++ BroadcastPacket() ++ CloseConnections() mdbwsp->mdbwsf - - + + wssf - -WebSocketServerFactory - - - - + +WebSocketServerFactory + + + + wssf->mdbwsf - - + + mdbwss - -MusicDBWebSocketServer - -- factory -- factory.protocol - -+ Setup() -+ Start() -+ Stop() -+ HandleEvents() + +MusicDBWebSocketServer + +- factory +- factory.protocol + ++ Setup() ++ Start() ++ Stop() ++ HandleEvents() mdbwsf->mdbwss - - + + diff --git a/docs/build/html/_images/graphviz-704c806f4b8494ab9db5d468631f64da6a86b643.svg b/docs/build/html/_images/graphviz-704c806f4b8494ab9db5d468631f64da6a86b643.svg index 4d33e441..cc6aa508 100644 --- a/docs/build/html/_images/graphviz-704c806f4b8494ab9db5d468631f64da6a86b643.svg +++ b/docs/build/html/_images/graphviz-704c806f4b8494ab9db5d468631f64da6a86b643.svg @@ -1,67 +1,67 @@ - hierarchy - + filesrc - -filesrc + +filesrc decodebin - -decodebin + +decodebin filesrc->decodebin - - + + audioconvert - -audioconvert + +audioconvert decodebin->audioconvert - - + + lamemp3enc - -lamemp3enc + +lamemp3enc audioconvert->lamemp3enc - - + + fdsink - -fdsink + +fdsink lamemp3enc->fdsink - - + + diff --git a/docs/build/html/_images/graphviz-7799d3771012803ba00be67c9baa471d4dda695f.svg b/docs/build/html/_images/graphviz-7799d3771012803ba00be67c9baa471d4dda695f.svg index cccb5842..867cbb25 100644 --- a/docs/build/html/_images/graphviz-7799d3771012803ba00be67c9baa471d4dda695f.svg +++ b/docs/build/html/_images/graphviz-7799d3771012803ba00be67c9baa471d4dda695f.svg @@ -1,86 +1,86 @@ - - - + + hierarchy - + start - -Start + +Start readmp3header - -Read MP3 Frame Header + +Read MP3 Frame Header start->readmp3header - - + + analyzeheader - -Analyze MP3 Frame Header + +Analyze MP3 Frame Header readmp3header->analyzeheader - - + + end - -End + +End readmp3header->end - - -No further data + + +No further data readmp3frame - -Read MP3 Frame + +Read MP3 Frame analyzeheader->readmp3frame - - + + savemp3frame - -Yield MP3 Frame + +Yield MP3 Frame readmp3frame->savemp3frame - - + + savemp3frame->readmp3header - - + + diff --git a/docs/build/html/_images/graphviz-7a2ee7f9782082a33488b0371f2546e89bda047e.svg b/docs/build/html/_images/graphviz-7a2ee7f9782082a33488b0371f2546e89bda047e.svg index e58e4107..1454c1f6 100644 --- a/docs/build/html/_images/graphviz-7a2ee7f9782082a33488b0371f2546e89bda047e.svg +++ b/docs/build/html/_images/graphviz-7a2ee7f9782082a33488b0371f2546e89bda047e.svg @@ -1,42 +1,42 @@ - - + hierarchy - + api - -LycraCrawler - -# name -# version -# db - -+ Crawl -# DoCrawl + +LycraCrawler + +# name +# version +# db + ++ Crawl +# DoCrawl crawler - -ExampleCrawler - - - -/# DoCrawl + +ExampleCrawler + + + +/# DoCrawl api->crawler - - + + diff --git a/docs/build/html/_images/graphviz-817a21982df1e93a0be86766c5448cc407e56edd.svg b/docs/build/html/_images/graphviz-817a21982df1e93a0be86766c5448cc407e56edd.svg index 12b65dd9..cd3695ab 100644 --- a/docs/build/html/_images/graphviz-817a21982df1e93a0be86766c5448cc407e56edd.svg +++ b/docs/build/html/_images/graphviz-817a21982df1e93a0be86766c5448cc407e56edd.svg @@ -1,74 +1,74 @@ - - + hierarchy - + files - -Audio files -(mp3, m4a, flac) + +Audio files +(mp3, m4a, flac) gstreamer - -GStreamer + +GStreamer files->gstreamer - - -Using GStreamer -filesrc element + + +Using GStreamer +filesrc element mp3stream - -MP3 stream -(mp3) + +MP3 stream +(mp3) gstreamer->mp3stream - - -Using UNIX Pipe + + +Using UNIX Pipe icecast - -Icecast + +Icecast mp3stream->icecast - - -Using libshout + + +Using libshout listener - -Listener + +Listener icecast->listener - - -via HTTP + + +via HTTP diff --git a/docs/build/html/_images/graphviz-94e7170254b94a5776d1577f51326bf39c325154.svg b/docs/build/html/_images/graphviz-94e7170254b94a5776d1577f51326bf39c325154.svg index 5b89d07d..a11cc26d 100644 --- a/docs/build/html/_images/graphviz-94e7170254b94a5776d1577f51326bf39c325154.svg +++ b/docs/build/html/_images/graphviz-94e7170254b94a5776d1577f51326bf39c325154.svg @@ -1,149 +1,149 @@ - - + viewBox="0.00 0.00 360.00 333.44" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + hierarchy - + start - -Start + +Start read - -Read data from pipe + +Read data from pipe start->read - - + + isrunningstate - -Is GStreamer Pipeline -process still running? + +Is GStreamer Pipeline +process still running? read->isrunningstate - - -Blocking IO Exception + + +Blocking IO Exception isempty - -No further bytes -to expect from pipe? + +No further bytes +to expect from pipe? read->isempty - - + + sleep - -Sleep for 0.1s + +Sleep for 0.1s isrunningstate->sleep - - -yes + + +yes end - -Return chunk + +Return chunk isrunningstate->end - - -no + + +no calcrest - -Calculate remaining bytes + +Calculate remaining bytes isempty->calcrest - - -no + + +no isempty->end - - -yes + + +yes appendbytes - -Collect already read bytes + +Collect already read bytes calcrest->appendbytes - - + + bytesremaining - -Remaining -bytes? + +Remaining +bytes? appendbytes->bytesremaining - - + + bytesremaining->sleep - - -yes + + +yes bytesremaining->end - - -no + + +no sleep->read - - + + diff --git a/docs/build/html/_images/graphviz-96311e6850a9b40266d30b32999aa4e45de97fa7.svg b/docs/build/html/_images/graphviz-96311e6850a9b40266d30b32999aa4e45de97fa7.svg index cc1c6fb6..d575a5cc 100644 --- a/docs/build/html/_images/graphviz-96311e6850a9b40266d30b32999aa4e45de97fa7.svg +++ b/docs/build/html/_images/graphviz-96311e6850a9b40266d30b32999aa4e45de97fa7.svg @@ -1,246 +1,246 @@ - - - + + finite_state_machine - + Listen_on_port - - -Listen -on port + + +Listen +on port __init__ - -__init__ + +__init__ Listen_on_port->__init__ - - -access port + + +access port CB__init__ - -__init__ + +__init__ CB__init__->__init__ - - + + __init__->CB__init__ - - -create derived -class object + + +create derived +class object Connecting - -Connecting + +Connecting __init__->Connecting - - + + onOpen - -onOpen + +onOpen Connecting->onOpen - - -open Handshake + + +open Handshake onOpenHandshakeTimeout - -onOpenHandschakeTimeout + +onOpenHandschakeTimeout Connecting->onOpenHandshakeTimeout - - -timeout + + +timeout onWSConnect - -onWSConnect + +onWSConnect onOpen->onWSConnect - - -initialize handler + + +initialize handler Active - -Autobahn -Magic + +Autobahn +Magic onOpen->Active - - -successful handshake + + +successful handshake onWSConnect->onOpen - - + + onClose - -onClose + +onClose onClose->Listen_on_port - - + + onWSDisconnect - -onWSDisconnect + +onWSDisconnect onClose->onWSDisconnect - - -clean up -when connected + + +clean up +when connected onWSDisconnect->onClose - - + + onOpenHandshakeTimeout->onClose - - -close + + +close Active->onClose - - -close connection + + +close connection onMessage - -onMessage + +onMessage Active->onMessage - - -got data -from client + + +got data +from client onCall - -onCall + +onCall onMessage->onCall - - + + onCall->Active - - -no response + + +no response SendPacket - -SendPacket + +SendPacket onCall->SendPacket - - -response + + +response BroadcastPacket - -BroadcastPacket + +BroadcastPacket onCall->BroadcastPacket - - -response to all + + +response to all SendPacket->Active - - -send data -to client + + +send data +to client BroadcastPacket->Active - - -send data -to all clients + + +send data +to all clients diff --git a/docs/build/html/_images/graphviz-c07282fc72c227afc0bd34cd363adc8ea916df42.svg b/docs/build/html/_images/graphviz-c07282fc72c227afc0bd34cd363adc8ea916df42.svg index 5ac1214b..a2ffcc31 100644 --- a/docs/build/html/_images/graphviz-c07282fc72c227afc0bd34cd363adc8ea916df42.svg +++ b/docs/build/html/_images/graphviz-c07282fc72c227afc0bd34cd363adc8ea916df42.svg @@ -1,124 +1,124 @@ - - - + + hierarchy - + start - -Start + +Start readid3header - -Read ID3 Header + +Read ID3 Header start->readid3header - - + + decodeid3size - -Decode the length -of the ID3 Tag + +Decode the length +of the ID3 Tag readid3header->decodeid3size - - + + readid3tag - -Read ID3 Tag + +Read ID3 Tag decodeid3size->readid3tag - - + + readmp3header - -Read MP3 Frame Header + +Read MP3 Frame Header readid3tag->readmp3header - - + + analyzeheader - -Analyze MP3 Frame Header + +Analyze MP3 Frame Header readmp3header->analyzeheader - - + + end - -End + +End readmp3header->end - - -No further data + + +No further data readmp3frame - -Read MP3 Frame + +Read MP3 Frame analyzeheader->readmp3frame - - + + savemp3frame - -Store MP3 Frame -in internal list + +Store MP3 Frame +in internal list readmp3frame->savemp3frame - - + + savemp3frame->readmp3header - - + + diff --git a/docs/build/html/_images/graphviz-dd48b361b841fa667d538ed4dbcd5ec00adf8e0f.svg b/docs/build/html/_images/graphviz-dd48b361b841fa667d538ed4dbcd5ec00adf8e0f.svg index 088de969..b0d3c541 100644 --- a/docs/build/html/_images/graphviz-dd48b361b841fa667d538ed4dbcd5ec00adf8e0f.svg +++ b/docs/build/html/_images/graphviz-dd48b361b841fa667d538ed4dbcd5ec00adf8e0f.svg @@ -1,94 +1,94 @@ - - - + + hierarchy - + csv - -CSVFile - - - -+ Read() -+ Write() + +CSVFile + + + ++ Read() ++ Write() mdbstate - -MDBState - - - -+ GetFilterlist() + +MDBState + + + ++ GetFilterlist() csv->mdbstate - - + + config - -Config - - - -+ Load() -+ Reload() -+ Save() -+ OptionAvailable() -+ Get() -+ Set() + +Config + + + ++ Load() ++ Reload() ++ Save() ++ OptionAvailable() ++ Get() ++ Set() musicdb - -MusicDBConfig - - - -- GetDirectory() -- GetFile() + +MusicDBConfig + + + +- GetDirectory() +- GetFile() config->musicdb - - + + extern - -ExternConfig - - - - + +ExternConfig + + + + config->extern - - + + config->mdbstate - - + + diff --git a/docs/build/html/_images/graphviz-ed90cafc7d4efffd6e2405d387c5d960336cca1e.svg b/docs/build/html/_images/graphviz-ed90cafc7d4efffd6e2405d387c5d960336cca1e.svg index c8770cb6..45ad14d1 100644 --- a/docs/build/html/_images/graphviz-ed90cafc7d4efffd6e2405d387c5d960336cca1e.svg +++ b/docs/build/html/_images/graphviz-ed90cafc7d4efffd6e2405d387c5d960336cca1e.svg @@ -1,185 +1,185 @@ - - - + + hierarchy - + Text - -Text - - - - + +Text + + + + Frame - -Frame - - - -+ Draw() + +Frame + + + ++ Draw() Text->Frame - - + + ButtonView - -ButtonView - - - -+ Draw() + +ButtonView + + + ++ Draw() Text->ButtonView - - + + TextInput - -TextInput - - - -+ Draw() -+ HandleKey + +TextInput + + + ++ Draw() ++ HandleKey Text->TextInput - - + + BoolInput - -BoolInput - - - -+ Draw() -+ HandleKey + +BoolInput + + + ++ Draw() ++ HandleKey Text->BoolInput - - + + Pane - -Pane - - - -+ Draw() + +Pane + + + ++ Draw() Frame->Pane - - + + ListView - -ListView - - - -+ Draw() -+ HandleKey() -# onDraw() -# onAction() + +ListView + + + ++ Draw() ++ HandleKey() +# onDraw() +# onAction() Pane->ListView - - + + Group - -Group + +Group Pane->Group - - + + Dialog - -Dialog - - - -/+ Draw() -/+ HandleKey() + +Dialog + + + +/+ Draw() +/+ HandleKey() ButtonView->Dialog - - + + ListView->Dialog - - + + TabGroup - -TabGroup - - - -+ HandleKey() + +TabGroup + + + ++ HandleKey() NoTextInput - -NoTextInput - - - -/+ HandleKey + +NoTextInput + + + +/+ HandleKey TextInput->NoTextInput - - + + diff --git a/docs/build/html/_images/graphviz-f8f63040edca1749341a9c783e1aa92b1607f968.svg b/docs/build/html/_images/graphviz-f8f63040edca1749341a9c783e1aa92b1607f968.svg index ab52efd6..0b820b98 100644 --- a/docs/build/html/_images/graphviz-f8f63040edca1749341a9c783e1aa92b1607f968.svg +++ b/docs/build/html/_images/graphviz-f8f63040edca1749341a9c783e1aa92b1607f968.svg @@ -1,87 +1,87 @@ - - - + + finite_state_machine - + idle - -IDLE + +IDLE running - -RUNNING + +RUNNING idle->running - - -GStreamerInterface.Execute() -/ GStreamer Pipeline State := PLAYING + + +GStreamerInterface.Execute() +/ GStreamer Pipeline State := PLAYING error - -ERROR + +ERROR idle->error - - -Starting GStreamer Pipeline failed + + +Starting GStreamer Pipeline failed cancel - -CANCEL + +CANCEL running->cancel - - -GStreamer Error Message + + +GStreamer Error Message running->cancel - - -GStreamer EOS Message + + +GStreamer EOS Message running->error - - -Tried to start pipeline that was not IDLE + + +Tried to start pipeline that was not IDLE cancel->idle - - -/ GStreamer Pipeline State := NULL + + +/ GStreamer Pipeline State := NULL cancel->error - - -Tried to start pipeline that was not IDLE + + +Tried to start pipeline that was not IDLE diff --git a/docs/build/html/_images/math/009d6c3a5fb50c70611cc70c4e8a368e88057d71.png b/docs/build/html/_images/math/009d6c3a5fb50c70611cc70c4e8a368e88057d71.png deleted file mode 100644 index e2b13ae4..00000000 Binary files a/docs/build/html/_images/math/009d6c3a5fb50c70611cc70c4e8a368e88057d71.png and /dev/null differ diff --git a/docs/build/html/_images/math/04fb6b39c1a2e78eb5217d62a98489d673612687.png b/docs/build/html/_images/math/04fb6b39c1a2e78eb5217d62a98489d673612687.png deleted file mode 100644 index 50b22b16..00000000 Binary files a/docs/build/html/_images/math/04fb6b39c1a2e78eb5217d62a98489d673612687.png and /dev/null differ diff --git a/docs/build/html/_images/math/125ee1ac52382b3c4f346524432517c8751b55d8.png b/docs/build/html/_images/math/125ee1ac52382b3c4f346524432517c8751b55d8.png deleted file mode 100644 index 92596757..00000000 Binary files a/docs/build/html/_images/math/125ee1ac52382b3c4f346524432517c8751b55d8.png and /dev/null differ diff --git a/docs/build/html/_images/math/583ffe389069d04b91e6c029244747b84913aaf5.png b/docs/build/html/_images/math/583ffe389069d04b91e6c029244747b84913aaf5.png deleted file mode 100644 index 9ec762c1..00000000 Binary files a/docs/build/html/_images/math/583ffe389069d04b91e6c029244747b84913aaf5.png and /dev/null differ diff --git a/docs/build/html/_images/math/69024e8cf16c619aa179cd35a03500c7a2bad331.png b/docs/build/html/_images/math/69024e8cf16c619aa179cd35a03500c7a2bad331.png deleted file mode 100644 index 1a91178b..00000000 Binary files a/docs/build/html/_images/math/69024e8cf16c619aa179cd35a03500c7a2bad331.png and /dev/null differ diff --git a/docs/build/html/_images/math/ab1298fa4bdbf2a89a27b96771fe714102884a00.png b/docs/build/html/_images/math/ab1298fa4bdbf2a89a27b96771fe714102884a00.png deleted file mode 100644 index 4f6615b5..00000000 Binary files a/docs/build/html/_images/math/ab1298fa4bdbf2a89a27b96771fe714102884a00.png and /dev/null differ diff --git a/docs/build/html/_images/math/ad67dc2d29d13cfb3b4220a1e84608c14402d0ab.png b/docs/build/html/_images/math/ad67dc2d29d13cfb3b4220a1e84608c14402d0ab.png deleted file mode 100644 index 1de80099..00000000 Binary files a/docs/build/html/_images/math/ad67dc2d29d13cfb3b4220a1e84608c14402d0ab.png and /dev/null differ diff --git a/docs/build/html/_images/math/b49e8ab5a86e47fa5fca377bcff73648d82f1ba9.png b/docs/build/html/_images/math/b49e8ab5a86e47fa5fca377bcff73648d82f1ba9.png deleted file mode 100644 index cde64c78..00000000 Binary files a/docs/build/html/_images/math/b49e8ab5a86e47fa5fca377bcff73648d82f1ba9.png and /dev/null differ diff --git a/docs/build/html/_images/math/bc805322736ff5e09b9ce9f439ed41cbdd01dab7.png b/docs/build/html/_images/math/bc805322736ff5e09b9ce9f439ed41cbdd01dab7.png deleted file mode 100644 index 39277abc..00000000 Binary files a/docs/build/html/_images/math/bc805322736ff5e09b9ce9f439ed41cbdd01dab7.png and /dev/null differ diff --git a/docs/build/html/_images/math/e9c5df5d354904b78dbb5da5f998dda1cf6b0f63.png b/docs/build/html/_images/math/e9c5df5d354904b78dbb5da5f998dda1cf6b0f63.png deleted file mode 100644 index aa99e0f7..00000000 Binary files a/docs/build/html/_images/math/e9c5df5d354904b78dbb5da5f998dda1cf6b0f63.png and /dev/null differ diff --git a/docs/build/html/_images/mdblogo.png b/docs/build/html/_images/mdblogo.png new file mode 100644 index 00000000..7494caa5 Binary files /dev/null and b/docs/build/html/_images/mdblogo.png differ diff --git a/docs/build/html/_modules/index.html b/docs/build/html/_modules/index.html index 6e5227ff..21ffde28 100644 --- a/docs/build/html/_modules/index.html +++ b/docs/build/html/_modules/index.html @@ -8,7 +8,7 @@ - Overview: module code — MusicDB 5.2.0 documentation + Overview: module code — MusicDB 6.0.0 documentation @@ -37,7 +37,7 @@ - + @@ -66,7 +66,7 @@
- 5.2 + 6.0
@@ -112,7 +112,6 @@
  • tracker
  • lycra
  • Icecast
  • -
  • MusicAI
  • Randy
  • log
  • debug
  • @@ -220,14 +219,22 @@
  • Installation & Update
  • Music
  • -
  • cache - Music Cache Manager -
  • database - Music DB Management
  • extern - Music File Uploader
  • -
  • musicai - MusicAI -
  • repair - Repair Database Entries
  • -
  • MusicAI -
  • -
  • MusicCache -
  • Randomizer