@@ -108,21 +108,21 @@ void Layout::getBounds(
108108}
109109
110110std::vector<std::pair<int , int >> Layout::getTrackOrdering (
111- unsigned guessedTracks, unsigned guessedSides)
111+ LayoutProto::Order ordering, unsigned guessedTracks, unsigned guessedSides)
112112{
113113 auto layout = globalConfig ()->layout ();
114114 int tracks = layout.has_tracks () ? layout.tracks () : guessedTracks;
115115 int sides = layout.has_sides () ? layout.sides () : guessedSides;
116116
117- std::vector<std::pair<int , int >> ordering ;
118- switch (layout. order () )
117+ std::vector<std::pair<int , int >> trackList ;
118+ switch (ordering )
119119 {
120120 case LayoutProto::CHS:
121121 {
122122 for (int track = 0 ; track < tracks; track++)
123123 {
124124 for (int side = 0 ; side < sides; side++)
125- ordering .push_back (std::make_pair (track, side));
125+ trackList .push_back (std::make_pair (track, side));
126126 }
127127 break ;
128128 }
@@ -132,16 +132,30 @@ std::vector<std::pair<int, int>> Layout::getTrackOrdering(
132132 for (int side = 0 ; side < sides; side++)
133133 {
134134 for (int track = 0 ; track < tracks; track++)
135- ordering.push_back (std::make_pair (track, side));
135+ trackList.push_back (std::make_pair (track, side));
136+ }
137+ break ;
138+ }
139+
140+ case LayoutProto::HCS_RH1:
141+ {
142+ for (int side = 0 ; side < sides; side++)
143+ {
144+ if (side == 0 )
145+ for (int track = 0 ; track < tracks; track++)
146+ trackList.push_back (std::make_pair (track, side));
147+ if (side == 1 )
148+ for (int track = tracks; track >= 0 ; track--)
149+ trackList.push_back (std::make_pair (track - 1 , side));
136150 }
137151 break ;
138152 }
139153
140154 default :
141- error (" LAYOUT: invalid track ordering " );
155+ error (" LAYOUT: invalid track trackList " );
142156 }
143157
144- return ordering ;
158+ return trackList ;
145159}
146160
147161std::vector<unsigned > Layout::expandSectorList (
0 commit comments