shaka-project / shaka-player-embedded

Shaka Player in a C++ Framework
Apache License 2.0
239 stars 62 forks source link

Swift improvements #121

Closed jgongo closed 4 years ago

jgongo commented 4 years ago

Solves #94, #116, #117 and #118. Supersedes #119 and #120.

This PR includes all the changes in #119 and #120 with all the requested changes during the review, and it also adds nullability tags to improve integration with Swift code. I have closed the previous pull requests, but the branches are still available in case you want to merge the changes progressively and be able to inspect the changes introduced in just this PR.

Please note that I have set the nullability tags upon code and documentation inspection, so I may have made some mistake (hopefully not). I'm not completely sure about ShakaPlayer.h#307 returning a nullable NSString *, but I guess it's correct in case the provided namePath doesn't exist.

I also had to add a line in the initWithError initialiser of the ShakaPlayerError class to check for a nil message. I tried to use the nil coalescing operator (?:) but it gives a compilation error due to the options used in the build.

There are other classes that need similar modifications (ShakaPlayerStorage comes to mind), but I leave them for a later PR... or for you 😝