Skip to content

Conversation

@minetoblend
Copy link
Contributor

@minetoblend minetoblend commented Mar 24, 2024

Uses the system clipboard when copy-pasting hitobjects in the editor. When copying hitobjects, 2 clipboard entries will be created:

  • text/plain: contains the timestamp
  • osu/hitobjects: contains the json-serialized version of the copied hitobjects

This allows copy-pasting objects between osu and external tools.

2024-03-24.02-04-50.mp4

Copy link
Collaborator

@bdach bdach left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

aside from the framework prereq

[JsonConverter(typeof(TypedListConverter<HitObject>))]
public IList<HitObject> HitObjects;

public const string CLIPBOARD_FORMAT = "osu/hitobjects";
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not a valid mime format, should probably be something like application/x-osu-hitobjects

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://www.rfc-editor.org/rfc/rfc6838.html#section-3.4

Subtype names with "x." as the first facet may be used for types
intended exclusively for use in private, local environments.

https://www.rfc-editor.org/rfc/rfc6838.html#section-4.2.8

Since this was published, the de facto practice has arisen for using
this suffix convention for other well-known structuring syntaxes. In
particular, media types have been registered with suffixes such as
"+der", "+fastinfoset", and "+json". This specification formalizes
this practice and sets up a registry for structured type name
suffixes.

So it should be application/x.osu.hitobjects+json.

Please note that web custom formats are prefixed with web in the javascript API (an image/png and web image/png can be different things). I'm still thinking about how this should be handled.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants