Add OpenSubsonic channelCount

This commit is contained in:
Deluan 2024-04-26 17:51:04 -04:00
parent f5df948eb1
commit f7fc17c0f7
25 changed files with 39 additions and 25 deletions

View File

@ -183,6 +183,7 @@ func childFromMediaFile(ctx context.Context, mf model.MediaFile) responses.Child
TrackPeak: mf.RgTrackPeak, TrackPeak: mf.RgTrackPeak,
AlbumPeak: mf.RgAlbumPeak, AlbumPeak: mf.RgAlbumPeak,
} }
child.ChannelCount = int32(mf.Channels)
return child return child
} }

View File

@ -17,7 +17,8 @@
"mediaType": "", "mediaType": "",
"musicBrainzId": "", "musicBrainzId": "",
"genres": [], "genres": [],
"replayGain": {} "replayGain": {},
"channelCount": 0
} }
] ]
} }

View File

@ -1,6 +1,6 @@
<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"> <subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
<albumList> <albumList>
<album id="1" isDir="false" title="title" isVideo="false" bpm="0" comment="" sortName="" mediaType="" musicBrainzId=""> <album id="1" isDir="false" title="title" isVideo="false" bpm="0" comment="" sortName="" mediaType="" musicBrainzId="" channelCount="0">
<replayGain></replayGain> <replayGain></replayGain>
</album> </album>
</albumList> </albumList>

View File

@ -85,7 +85,8 @@
"albumPeak": 4, "albumPeak": 4,
"baseGain": 5, "baseGain": 5,
"fallbackGain": 6 "fallbackGain": 6
} },
"channelCount": 0
} }
] ]
} }

View File

@ -7,7 +7,7 @@
<discTitles disc="3" title=""></discTitles> <discTitles disc="3" title=""></discTitles>
<originalReleaseDate year="1994" month="2" day="4"></originalReleaseDate> <originalReleaseDate year="1994" month="2" day="4"></originalReleaseDate>
<releaseDate year="2000" month="5" day="10"></releaseDate> <releaseDate year="2000" month="5" day="10"></releaseDate>
<song id="1" isDir="true" title="title" album="album" artist="artist" track="1" year="1985" genre="Rock" coverArt="1" size="8421341" contentType="audio/flac" suffix="flac" starred="2016-03-02T20:30:00Z" transcodedContentType="audio/mpeg" transcodedSuffix="mp3" duration="146" bitRate="320" isVideo="false" bpm="127" comment="a comment" sortName="sorted song" mediaType="song" musicBrainzId="4321"> <song id="1" isDir="true" title="title" album="album" artist="artist" track="1" year="1985" genre="Rock" coverArt="1" size="8421341" contentType="audio/flac" suffix="flac" starred="2016-03-02T20:30:00Z" transcodedContentType="audio/mpeg" transcodedSuffix="mp3" duration="146" bitRate="320" isVideo="false" bpm="127" comment="a comment" sortName="sorted song" mediaType="song" musicBrainzId="4321" channelCount="0">
<genres name="rock"></genres> <genres name="rock"></genres>
<genres name="progressive"></genres> <genres name="progressive"></genres>
<replayGain trackGain="1" albumGain="2" trackPeak="3" albumPeak="4" baseGain="5" fallbackGain="6"></replayGain> <replayGain trackGain="1" albumGain="2" trackPeak="3" albumPeak="4" baseGain="5" fallbackGain="6"></replayGain>

View File

@ -18,7 +18,8 @@
"mediaType": "", "mediaType": "",
"musicBrainzId": "", "musicBrainzId": "",
"genres": [], "genres": [],
"replayGain": {} "replayGain": {},
"channelCount": 0
}, },
"position": 123, "position": 123,
"username": "user2", "username": "user2",

View File

@ -1,7 +1,7 @@
<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"> <subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
<bookmarks> <bookmarks>
<bookmark position="123" username="user2" comment="a comment" created="0001-01-01T00:00:00Z" changed="0001-01-01T00:00:00Z"> <bookmark position="123" username="user2" comment="a comment" created="0001-01-01T00:00:00Z" changed="0001-01-01T00:00:00Z">
<entry id="1" isDir="false" title="title" isVideo="false" bpm="0" comment="" sortName="" mediaType="" musicBrainzId=""> <entry id="1" isDir="false" title="title" isVideo="false" bpm="0" comment="" sortName="" mediaType="" musicBrainzId="" channelCount="0">
<replayGain></replayGain> <replayGain></replayGain>
</entry> </entry>
</bookmark> </bookmark>

View File

@ -45,7 +45,8 @@
"albumPeak": 4, "albumPeak": 4,
"baseGain": 5, "baseGain": 5,
"fallbackGain": 6 "fallbackGain": 6
} },
"channelCount": 2
} }
], ],
"id": "1", "id": "1",

View File

@ -1,6 +1,6 @@
<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"> <subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
<directory id="1" name="N"> <directory id="1" name="N">
<child id="1" isDir="true" title="title" album="album" artist="artist" track="1" year="1985" genre="Rock" coverArt="1" size="8421341" contentType="audio/flac" suffix="flac" starred="2016-03-02T20:30:00Z" transcodedContentType="audio/mpeg" transcodedSuffix="mp3" duration="146" bitRate="320" isVideo="false" bpm="127" comment="a comment" sortName="" mediaType="song" musicBrainzId="4321"> <child id="1" isDir="true" title="title" album="album" artist="artist" track="1" year="1985" genre="Rock" coverArt="1" size="8421341" contentType="audio/flac" suffix="flac" starred="2016-03-02T20:30:00Z" transcodedContentType="audio/mpeg" transcodedSuffix="mp3" duration="146" bitRate="320" isVideo="false" bpm="127" comment="a comment" sortName="" mediaType="song" musicBrainzId="4321" channelCount="2">
<genres name="rock"></genres> <genres name="rock"></genres>
<genres name="progressive"></genres> <genres name="progressive"></genres>
<replayGain trackGain="1" albumGain="2" trackPeak="3" albumPeak="4" baseGain="5" fallbackGain="6"></replayGain> <replayGain trackGain="1" albumGain="2" trackPeak="3" albumPeak="4" baseGain="5" fallbackGain="6"></replayGain>

View File

@ -16,7 +16,8 @@
"mediaType": "", "mediaType": "",
"musicBrainzId": "", "musicBrainzId": "",
"genres": [], "genres": [],
"replayGain": {} "replayGain": {},
"channelCount": 0
} }
], ],
"id": "", "id": "",

View File

@ -1,6 +1,6 @@
<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"> <subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
<directory id="" name=""> <directory id="" name="">
<child id="1" isDir="false" isVideo="false" bpm="0" comment="" sortName="" mediaType="" musicBrainzId=""> <child id="1" isDir="false" isVideo="false" bpm="0" comment="" sortName="" mediaType="" musicBrainzId="" channelCount="0">
<replayGain></replayGain> <replayGain></replayGain>
</child> </child>
</directory> </directory>

View File

@ -17,7 +17,8 @@
"mediaType": "", "mediaType": "",
"musicBrainzId": "", "musicBrainzId": "",
"genres": [], "genres": [],
"replayGain": {} "replayGain": {},
"channelCount": 0
} }
], ],
"id": "1", "id": "1",

View File

@ -1,6 +1,6 @@
<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"> <subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
<directory id="1" name="N"> <directory id="1" name="N">
<child id="1" isDir="false" title="title" isVideo="false" bpm="0" comment="" sortName="" mediaType="" musicBrainzId=""> <child id="1" isDir="false" title="title" isVideo="false" bpm="0" comment="" sortName="" mediaType="" musicBrainzId="" channelCount="0">
<replayGain></replayGain> <replayGain></replayGain>
</child> </child>
</directory> </directory>

View File

@ -17,7 +17,8 @@
"mediaType": "", "mediaType": "",
"musicBrainzId": "", "musicBrainzId": "",
"genres": [], "genres": [],
"replayGain": {} "replayGain": {},
"channelCount": 0
} }
], ],
"current": "111", "current": "111",

View File

@ -1,6 +1,6 @@
<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"> <subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
<playQueue current="111" position="243" username="user1" changed="0001-01-01T00:00:00Z" changedBy="a_client"> <playQueue current="111" position="243" username="user1" changed="0001-01-01T00:00:00Z" changedBy="a_client">
<entry id="1" isDir="false" title="title" isVideo="false" bpm="0" comment="" sortName="" mediaType="" musicBrainzId=""> <entry id="1" isDir="false" title="title" isVideo="false" bpm="0" comment="" sortName="" mediaType="" musicBrainzId="" channelCount="0">
<replayGain></replayGain> <replayGain></replayGain>
</entry> </entry>
</playQueue> </playQueue>

View File

@ -22,7 +22,8 @@
"mediaType": "", "mediaType": "",
"musicBrainzId": "", "musicBrainzId": "",
"genres": [], "genres": [],
"replayGain": {} "replayGain": {},
"channelCount": 0
}, },
{ {
"id": "2", "id": "2",
@ -38,7 +39,8 @@
"mediaType": "", "mediaType": "",
"musicBrainzId": "", "musicBrainzId": "",
"genres": [], "genres": [],
"replayGain": {} "replayGain": {},
"channelCount": 0
} }
], ],
"id": "ABC123", "id": "ABC123",

View File

@ -1,10 +1,10 @@
<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"> <subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
<shares> <shares>
<share id="ABC123" url="http://localhost/p/ABC123" description="Check it out!" username="deluan" created="0001-01-01T00:00:00Z" expires="0001-01-01T00:00:00Z" lastVisited="0001-01-01T00:00:00Z" visitCount="2"> <share id="ABC123" url="http://localhost/p/ABC123" description="Check it out!" username="deluan" created="0001-01-01T00:00:00Z" expires="0001-01-01T00:00:00Z" lastVisited="0001-01-01T00:00:00Z" visitCount="2">
<entry id="1" isDir="false" title="title" album="album" artist="artist" duration="120" isVideo="false" bpm="0" comment="" sortName="" mediaType="" musicBrainzId=""> <entry id="1" isDir="false" title="title" album="album" artist="artist" duration="120" isVideo="false" bpm="0" comment="" sortName="" mediaType="" musicBrainzId="" channelCount="0">
<replayGain></replayGain> <replayGain></replayGain>
</entry> </entry>
<entry id="2" isDir="false" title="title 2" album="album" artist="artist" duration="300" isVideo="false" bpm="0" comment="" sortName="" mediaType="" musicBrainzId=""> <entry id="2" isDir="false" title="title 2" album="album" artist="artist" duration="300" isVideo="false" bpm="0" comment="" sortName="" mediaType="" musicBrainzId="" channelCount="0">
<replayGain></replayGain> <replayGain></replayGain>
</entry> </entry>
</share> </share>

View File

@ -17,7 +17,8 @@
"mediaType": "", "mediaType": "",
"musicBrainzId": "", "musicBrainzId": "",
"genres": [], "genres": [],
"replayGain": {} "replayGain": {},
"channelCount": 0
} }
] ]
} }

View File

@ -1,6 +1,6 @@
<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"> <subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
<similarSongs> <similarSongs>
<song id="1" isDir="false" title="title" isVideo="false" bpm="0" comment="" sortName="" mediaType="" musicBrainzId=""> <song id="1" isDir="false" title="title" isVideo="false" bpm="0" comment="" sortName="" mediaType="" musicBrainzId="" channelCount="0">
<replayGain></replayGain> <replayGain></replayGain>
</song> </song>
</similarSongs> </similarSongs>

View File

@ -17,7 +17,8 @@
"mediaType": "", "mediaType": "",
"musicBrainzId": "", "musicBrainzId": "",
"genres": [], "genres": [],
"replayGain": {} "replayGain": {},
"channelCount": 0
} }
] ]
} }

View File

@ -1,6 +1,6 @@
<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"> <subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
<similarSongs2> <similarSongs2>
<song id="1" isDir="false" title="title" isVideo="false" bpm="0" comment="" sortName="" mediaType="" musicBrainzId=""> <song id="1" isDir="false" title="title" isVideo="false" bpm="0" comment="" sortName="" mediaType="" musicBrainzId="" channelCount="0">
<replayGain></replayGain> <replayGain></replayGain>
</song> </song>
</similarSongs2> </similarSongs2>

View File

@ -17,7 +17,8 @@
"mediaType": "", "mediaType": "",
"musicBrainzId": "", "musicBrainzId": "",
"genres": [], "genres": [],
"replayGain": {} "replayGain": {},
"channelCount": 0
} }
] ]
} }

View File

@ -1,6 +1,6 @@
<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"> <subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
<topSongs> <topSongs>
<song id="1" isDir="false" title="title" isVideo="false" bpm="0" comment="" sortName="" mediaType="" musicBrainzId=""> <song id="1" isDir="false" title="title" isVideo="false" bpm="0" comment="" sortName="" mediaType="" musicBrainzId="" channelCount="0">
<replayGain></replayGain> <replayGain></replayGain>
</song> </song>
</topSongs> </topSongs>

View File

@ -163,6 +163,7 @@ type Child struct {
MusicBrainzId string `xml:"musicBrainzId,attr" json:"musicBrainzId"` MusicBrainzId string `xml:"musicBrainzId,attr" json:"musicBrainzId"`
Genres ItemGenres `xml:"genres" json:"genres"` Genres ItemGenres `xml:"genres" json:"genres"`
ReplayGain ReplayGain `xml:"replayGain" json:"replayGain"` ReplayGain ReplayGain `xml:"replayGain" json:"replayGain"`
ChannelCount int32 `xml:"channelCount,attr" json:"channelCount"`
} }
type Songs struct { type Songs struct {

View File

@ -142,7 +142,7 @@ var _ = Describe("Responses", func() {
Year: 1985, Genre: "Rock", CoverArt: "1", Size: 8421341, ContentType: "audio/flac", Year: 1985, Genre: "Rock", CoverArt: "1", Size: 8421341, ContentType: "audio/flac",
Suffix: "flac", TranscodedContentType: "audio/mpeg", TranscodedSuffix: "mp3", Suffix: "flac", TranscodedContentType: "audio/mpeg", TranscodedSuffix: "mp3",
Duration: 146, BitRate: 320, Starred: &t, Genres: []ItemGenre{{Name: "rock"}, {Name: "progressive"}}, Duration: 146, BitRate: 320, Starred: &t, Genres: []ItemGenre{{Name: "rock"}, {Name: "progressive"}},
Comment: "a comment", Bpm: 127, MediaType: MediaTypeSong, MusicBrainzId: "4321", Comment: "a comment", Bpm: 127, MediaType: MediaTypeSong, MusicBrainzId: "4321", ChannelCount: 2,
ReplayGain: ReplayGain{TrackGain: 1, AlbumGain: 2, TrackPeak: 3, AlbumPeak: 4, BaseGain: 5, FallbackGain: 6}, ReplayGain: ReplayGain{TrackGain: 1, AlbumGain: 2, TrackPeak: 3, AlbumPeak: 4, BaseGain: 5, FallbackGain: 6},
} }
response.Directory.Child = child response.Directory.Child = child